{
  "id": "linear",
  "version": "1.0.0",
  "name": "Linear",
  "description": "Linear is a project and issue-tracking tool built for software teams — \"the purpose-built tool for planning and building products.\" The brand voice is precise, calm, and craft-forward: dark-first product surfaces, an angular sans-serif wordmark, a single desaturated indigo accent (#5E6AD2), and a near-monochrome neutral system that lets motion and typography carry the brand. Where competing trackers shout, Linear whispers.\n",
  "provenance": {
    "source": "https://linear.app",
    "license": "Proprietary — All Rights Reserved",
    "attribution": "Linear and the Linear mark are trademarks of Linear Orbit, Inc. The primary brand color (#5E6AD2) is verified via the simple-icons brand database, which cites linear.app as the source. Mercury White (#F4F5F8) and Nordic Gray (#222326) are documented directly on Linear's brand page (linear.app/brand). Linear's brand guidance describes the primary as \"a subtle desaturated blue,\" consistent with #5E6AD2.\n",
    "importedDate": "2026-05-17",
    "notes": "Linear is a dark-first brand: the canonical product surface is Nordic Gray. The reference for body and display typography is Inter (for body) and Inter Tight (for tighter display lockups) — the closest open-source approximations to Linear's bespoke \"Inter Display\" cut. Both are already in the brand-atoms catalog.\n"
  },
  "tags": [
    "saas",
    "productivity",
    "linear",
    "dark-first",
    "minimal",
    "developer-tools"
  ],
  "palette": {
    "ref": "linear@1.0.0",
    "swatches": [
      {
        "id": "linear-indigo",
        "name": "Linear Indigo",
        "value": "#5E6AD2",
        "description": "Signature desaturated indigo-violet. Primary brand accent — used on the wordmark, primary buttons, and key interactive surfaces.\n",
        "aliases": []
      },
      {
        "id": "mercury-white",
        "name": "Mercury White",
        "value": "#F4F5F8",
        "description": "Light-mode canvas — a cool off-white documented in Linear's brand guide.",
        "aliases": []
      },
      {
        "id": "nordic-gray",
        "name": "Nordic Gray",
        "value": "#222326",
        "description": "Dark-mode canvas — the canonical product surface for Linear's dark-first identity.",
        "aliases": []
      },
      {
        "id": "linear-near-black",
        "name": "Linear Near-Black",
        "value": "#08090A",
        "description": "Authored deepest canvas — used below Nordic Gray for the most-recessed surfaces.",
        "aliases": []
      },
      {
        "id": "linear-surface-dark",
        "name": "Linear Surface Dark",
        "value": "#1A1B1F",
        "description": "Authored elevated surface on dark mode.",
        "aliases": []
      },
      {
        "id": "linear-surface-elevated-dark",
        "name": "Linear Surface Elevated (Dark)",
        "value": "#2C2D31",
        "description": "Authored modal / popover surface on dark mode.",
        "aliases": []
      },
      {
        "id": "linear-text-on-dark",
        "name": "Linear Text on Dark",
        "value": "#F7F8F8",
        "description": "Primary text on Nordic Gray.",
        "aliases": []
      },
      {
        "id": "linear-text-secondary-dark",
        "name": "Linear Text Secondary (Dark)",
        "value": "#B4BCD0",
        "description": "Secondary text on dark canvas.",
        "aliases": []
      },
      {
        "id": "linear-text-tertiary-dark",
        "name": "Linear Text Tertiary (Dark)",
        "value": "#8A8F98",
        "description": "Tertiary / muted text on dark canvas.",
        "aliases": []
      },
      {
        "id": "linear-text-on-light",
        "name": "Linear Text on Light",
        "value": "#0B0C10",
        "description": "Primary text on Mercury White.",
        "aliases": []
      },
      {
        "id": "linear-text-secondary-light",
        "name": "Linear Text Secondary (Light)",
        "value": "#3F4350",
        "description": "Secondary text on Mercury White.",
        "aliases": []
      },
      {
        "id": "linear-text-tertiary-light",
        "name": "Linear Text Tertiary (Light)",
        "value": "#6B7280",
        "description": "Tertiary / muted text on Mercury White.",
        "aliases": []
      },
      {
        "id": "linear-surface-light-elevated",
        "name": "Linear Surface Elevated (Light)",
        "value": "#FFFFFF",
        "description": "Authored elevated surface for light mode.",
        "aliases": []
      },
      {
        "id": "linear-indigo-hover",
        "name": "Linear Indigo Hover",
        "value": "#7A87F0",
        "description": "Authored softer indigo for hover / active states.",
        "aliases": []
      },
      {
        "id": "linear-success",
        "name": "Linear Success",
        "value": "#4CB782",
        "description": "Authored success / completed accent.",
        "aliases": []
      },
      {
        "id": "linear-warning",
        "name": "Linear Warning",
        "value": "#F2C94C",
        "description": "Authored warning accent.",
        "aliases": []
      },
      {
        "id": "linear-error",
        "name": "Linear Error",
        "value": "#E5484D",
        "description": "Authored error accent.",
        "aliases": []
      }
    ],
    "modes": {
      "light": {
        "roles": {
          "background": "mercury-white",
          "surface": "linear-surface-light-elevated",
          "surface-elevated": "linear-surface-light-elevated",
          "text-primary": "linear-text-on-light",
          "text-secondary": "linear-text-secondary-light",
          "text-tertiary": "linear-text-tertiary-light",
          "primary": "linear-indigo",
          "primary-hover": "linear-indigo-hover",
          "accent": "linear-indigo",
          "accent-hover": "linear-indigo-hover",
          "warning": "linear-warning",
          "warning-hover": "linear-warning",
          "error": "linear-error",
          "success": "linear-success"
        }
      },
      "dark": {
        "roles": {
          "background": "nordic-gray",
          "surface": "linear-surface-dark",
          "surface-elevated": "linear-surface-elevated-dark",
          "text-primary": "linear-text-on-dark",
          "text-secondary": "linear-text-secondary-dark",
          "text-tertiary": "linear-text-tertiary-dark",
          "primary": "linear-indigo",
          "primary-hover": "linear-indigo-hover",
          "accent": "linear-indigo",
          "accent-hover": "linear-indigo-hover",
          "warning": "linear-warning",
          "warning-hover": "linear-warning",
          "error": "linear-error",
          "success": "linear-success"
        }
      }
    }
  },
  "fonts": [
    {
      "role": "heading",
      "ref": "inter-tight@1.0.0",
      "family": "Inter Tight",
      "classification": "sans-serif",
      "source": {
        "kind": "google-fonts",
        "family": "Inter Tight",
        "url": "https://fonts.googleapis.com/css2?family=Inter+Tight:ital,wght@0,100..900;1,100..900&display=swap"
      },
      "fallbackStack": [
        "-apple-system",
        "BlinkMacSystemFont",
        "Segoe UI",
        "Roboto",
        "Helvetica Neue",
        "Arial",
        "sans-serif"
      ],
      "availableStyles": [
        {
          "weight": 100,
          "style": "normal"
        },
        {
          "weight": 100,
          "style": "italic"
        },
        {
          "weight": 200,
          "style": "normal"
        },
        {
          "weight": 200,
          "style": "italic"
        },
        {
          "weight": 300,
          "style": "normal"
        },
        {
          "weight": 300,
          "style": "italic"
        },
        {
          "weight": 400,
          "style": "normal"
        },
        {
          "weight": 400,
          "style": "italic"
        },
        {
          "weight": 500,
          "style": "normal"
        },
        {
          "weight": 500,
          "style": "italic"
        },
        {
          "weight": 600,
          "style": "normal"
        },
        {
          "weight": 600,
          "style": "italic"
        },
        {
          "weight": 700,
          "style": "normal"
        },
        {
          "weight": 700,
          "style": "italic"
        },
        {
          "weight": 800,
          "style": "normal"
        },
        {
          "weight": 800,
          "style": "italic"
        },
        {
          "weight": 900,
          "style": "normal"
        },
        {
          "weight": 900,
          "style": "italic"
        }
      ]
    },
    {
      "role": "body",
      "ref": "inter@1.0.0",
      "family": "Inter",
      "classification": "sans-serif",
      "source": {
        "kind": "google-fonts",
        "family": "Inter",
        "url": "https://fonts.googleapis.com/css2?family=Inter:ital,opsz,wght@0,14..32,100..900;1,14..32,100..900&display=swap"
      },
      "fallbackStack": [
        "-apple-system",
        "BlinkMacSystemFont",
        "Segoe UI",
        "Roboto",
        "Helvetica Neue",
        "Arial",
        "sans-serif"
      ],
      "availableStyles": [
        {
          "weight": 100,
          "style": "normal"
        },
        {
          "weight": 100,
          "style": "italic"
        },
        {
          "weight": 200,
          "style": "normal"
        },
        {
          "weight": 200,
          "style": "italic"
        },
        {
          "weight": 300,
          "style": "normal"
        },
        {
          "weight": 300,
          "style": "italic"
        },
        {
          "weight": 400,
          "style": "normal"
        },
        {
          "weight": 400,
          "style": "italic"
        },
        {
          "weight": 500,
          "style": "normal"
        },
        {
          "weight": 500,
          "style": "italic"
        },
        {
          "weight": 600,
          "style": "normal"
        },
        {
          "weight": 600,
          "style": "italic"
        },
        {
          "weight": 700,
          "style": "normal"
        },
        {
          "weight": 700,
          "style": "italic"
        },
        {
          "weight": 800,
          "style": "normal"
        },
        {
          "weight": 800,
          "style": "italic"
        },
        {
          "weight": 900,
          "style": "normal"
        },
        {
          "weight": 900,
          "style": "italic"
        }
      ]
    },
    {
      "role": "mono",
      "ref": "jetbrainsmono-nerdfont@1.0.0",
      "family": "JetBrainsMono Nerd Font",
      "classification": "monospace",
      "source": {
        "kind": "external",
        "family": "JetBrainsMono Nerd Font",
        "notes": "Nerd-Font-patched build of JetBrains Mono. Not available via Google Fonts. Download woff2/ttf files from the Nerd Fonts GitHub release and self-host, or install system-wide for terminal/IDE use.\n"
      },
      "fallbackStack": [
        "JetBrains Mono",
        "Fira Code",
        "Menlo",
        "Monaco",
        "Consolas",
        "Liberation Mono",
        "monospace"
      ],
      "availableStyles": [
        {
          "weight": 100,
          "style": "normal"
        },
        {
          "weight": 100,
          "style": "italic"
        },
        {
          "weight": 200,
          "style": "normal"
        },
        {
          "weight": 200,
          "style": "italic"
        },
        {
          "weight": 300,
          "style": "normal"
        },
        {
          "weight": 300,
          "style": "italic"
        },
        {
          "weight": 400,
          "style": "normal"
        },
        {
          "weight": 400,
          "style": "italic"
        },
        {
          "weight": 500,
          "style": "normal"
        },
        {
          "weight": 500,
          "style": "italic"
        },
        {
          "weight": 600,
          "style": "normal"
        },
        {
          "weight": 600,
          "style": "italic"
        },
        {
          "weight": 700,
          "style": "normal"
        },
        {
          "weight": 700,
          "style": "italic"
        },
        {
          "weight": 800,
          "style": "normal"
        },
        {
          "weight": 800,
          "style": "italic"
        }
      ]
    }
  ],
  "roles": {
    "colors": {
      "identity": "nordic-gray",
      "on-identity": "linear-text-on-dark",
      "background": "nordic-gray",
      "surface": "linear-surface-dark",
      "surface-elevated": "linear-surface-elevated-dark",
      "text-primary": "linear-text-on-dark",
      "text-secondary": "linear-text-secondary-dark",
      "text-tertiary": "linear-text-tertiary-dark",
      "primary": "linear-indigo",
      "primary-hover": "linear-indigo-hover",
      "accent": "linear-indigo",
      "accent-hover": "linear-indigo-hover",
      "success": "linear-success",
      "warning": "linear-warning",
      "error": "linear-error"
    },
    "typography": {
      "display": "heading",
      "prose": "body",
      "code": "mono"
    }
  },
  "assets": [],
  "rules": [
    {
      "type": "colorChoice",
      "target": "logo.mark",
      "severity": "error",
      "rationale": "Linear's brand guidance prefers monochrome wordmark usage; the indigo primary is the only accent color sanctioned for the mark. Recoloring into off-brand hues violates Linear's brand-use policy (\"do not alter these files in any way\").\n",
      "allowed": [
        "linear-indigo",
        "linear-text-on-dark",
        "linear-text-on-light",
        "mercury-white",
        "nordic-gray"
      ],
      "forbidden": [
        "any-non-brand-color"
      ]
    },
    {
      "type": "forbiddenTreatment",
      "target": "logo",
      "severity": "error",
      "rationale": "Linear's brand guidelines instruct consumers to \"provide plenty of space around Linear assets\" and forbid alteration of the logo files.\n",
      "treatments": [
        "stretched",
        "rotated",
        "recolored",
        "drop-shadow",
        "on-busy-photo",
        "cramped-clearspace"
      ]
    },
    {
      "type": "contrastRatio",
      "target": "text-primary",
      "severity": "error",
      "rationale": "WCAG 2.1 Level AA contrast minimum for body text. Linear's near-white-on-Nordic-Gray reads at very high contrast, comfortably above AA.\n",
      "against": "background",
      "minRatio": 4.5,
      "standard": "WCAG-AA"
    },
    {
      "type": "variantSelection",
      "target": "logo",
      "severity": "error",
      "rationale": "On dark surfaces (the canonical Nordic Gray canvas), use the light-fill wordmark variant for legibility.\n",
      "when": {
        "backgroundColorScheme": "dark"
      },
      "use": "wordmark-light"
    },
    {
      "type": "variantSelection",
      "target": "logo",
      "severity": "error",
      "rationale": "On Mercury White or other light surfaces, use the dark-fill wordmark variant.\n",
      "when": {
        "backgroundColorScheme": "light"
      },
      "use": "wordmark-dark"
    },
    {
      "type": "contextRestriction",
      "target": "roles.colors.identity",
      "severity": "error",
      "rationale": "Linear's brand guidance prohibits use of the mark in ways that imply endorsement or appear without permission on competing-product surfaces.\n",
      "forbiddenContexts": [
        "decorative-only",
        "product-of-competitor",
        "endorsement-implication"
      ]
    },
    {
      "type": "compositionConstraint",
      "target": "roles.colors.primary",
      "severity": "recommendation",
      "rationale": "The indigo primary is calibrated to read on both Nordic Gray and Mercury White. Pairing it with a third dominant hue breaks the calibrated quiet of Linear's identity.\n",
      "pairsWith": [
        "nordic-gray",
        "mercury-white"
      ]
    },
    {
      "type": "enumMembership",
      "target": "typography.heading.fontWeight",
      "severity": "warning",
      "rationale": "Linear's wordmark and display lockups use medium-to-bold weights in the 500–700 band; lighter weights compromise the precise, institutional voice.\n",
      "allowed": [
        "500",
        "600",
        "700"
      ]
    },
    {
      "type": "numericRatio",
      "target": "typography.body.lineHeight",
      "severity": "recommendation",
      "rationale": "Linear's product surface reads with disciplined line-height in the 1.5–1.65 band. Tighter values feel cramped; looser values break the calm rhythm.\n",
      "min": 1.5,
      "max": 1.65
    },
    {
      "type": "accessibilityRequirement",
      "target": "*",
      "severity": "error",
      "rationale": "WCAG 2.1 Success Criterion 1.4.3 (Contrast Minimum) — Level AA. Linear's near-monochrome surfaces start well above AA; consumers must hold that floor.\n",
      "standard": "WCAG-AA",
      "criterion": "1.4.3"
    }
  ]
}
