
Linear — The opinionated productivity system whose visual language defined a decade of dev-tool UI.
Linear's design language emerged with the product itself in 2019 — a deliberately small founding team building a project tracker for engineers, with a designer-engineer-CEO triangle at the centre. The system was never published as a separate set of docs; it lives inside the product and the engineering brand. Its influence shows up in every dev tool launched after 2021 — the keyboard-first command palette, the inline diff motion, the muted neutral palette with a single tuned accent, the typographic restraint with one display weight and one monospace.
Centralized by default — a small core design team owns the system, and the same engineers who build the product implement the components. There is no public design-system site, no open contribution path, no semver discipline visible externally. The system evolves with the product release cadence (weekly). Documentation is internal; the public surface is the product itself and the occasional engineering blog post.
The identity-bearing decisions, rendered. Names and values are illustrative — refer to the system's official tokens reference for the canonical, current set.
color-background
Canvas (dark, default)
color-text-primary
Body text on dark
color-text-tertiary
Secondary text, metadata, timestamps
color-accent
Linear violet — single accent, used as punctuation
color-border
Hairline between rows, panels, modal frames
font-family-sans
UI typography — single family, two display weights
motion-fast
Default transition for state changes
The full picture — palette, type ramp, spacing grid, radius, elevation and motion, restated in our own structure from Linear's public references. Factual values for study; the official docs remain canonical.
Linear Indigo
Brand accent and primary actions
--linear-accent
Text (dark theme)
Primary text on dark
--linear-text
Secondary Text
Secondary text
--linear-text-secondary
Background Dark
Default dark canvas
--linear-bg
Surface
Panels and cards
--linear-surface
Border
Hairlines on dark
--linear-border
Success Green
Completed states
--linear-success
Warning Orange
At-risk states
--linear-warning
Error Red
Errors and urgent priority
--linear-error
'Inter Variable', 'SF Pro Display', -apple-system, sans-serif
Weights: 400, 510, 590, 680
Base unit 4px
Floating
Exactly what ships in linear-design.md — plus the same token snapshot restated as CSS custom properties. Copy either, or feed the Markdown straight to an AI coding tool as styling context.
# Linear — Design Style Reference
> **Unofficial, community-authored reference.** Compiled by [designsystems.one](https://www.designsystems.one). Not affiliated with, endorsed by, or sponsored by Linear. "Linear" and related marks belong to their respective owners. This document describes publicly observable style attributes in original words — it contains no copied documentation, logos, icon artwork, or original token files. Always defer to the official source for canonical, current values.
**System:** Linear
**Owner:** Linear
**Official documentation:** https://linear.app
**Visual character:** Dark-mode-first velocity: micro-tuned Inter weights, keyboard-speed motion, and the indigo glow every dev tool now chases.
---
## Summary
The opinionated productivity system whose visual language defined a decade of dev-tool UI.
_Confidence: medium. Most values are publicly documented; a few are best-effort readings of the live product. Linear's system (Orbiter) is internal; values are a careful reading of the served product._
## Color tokens
| Color | Value | CSS variable | Role |
| --- | --- | --- | --- |
| Linear Indigo | `#5e6ad2` | `--linear-accent` | Brand accent and primary actions |
| Text (dark theme) | `#f7f8f8` | `--linear-text` | Primary text on dark |
| Secondary Text | `#8a8f98` | `--linear-text-secondary` | Secondary text |
| Background Dark | `#08090a` | `--linear-bg` | Default dark canvas |
| Surface | `#1c1c1f` | `--linear-surface` | Panels and cards |
| Border | `#26262a` | `--linear-border` | Hairlines on dark |
| Success Green | `#4cb782` | `--linear-success` | Completed states |
| Warning Orange | `#f2994a` | `--linear-warning` | At-risk states |
| Error Red | `#eb5757` | `--linear-error` | Errors and urgent priority |
## Typography
- **Body:** Inter Variable — weights 400, 510, 590, 680 — `'Inter Variable', 'SF Pro Display', -apple-system, sans-serif`
## Type scale
| Step | Size | Line height |
| --- | --- | --- |
| title-1 | `56px` | `61px` |
| title-3 | `24px` | `32px` |
| text-regular | `15px` | `24px` |
| text-small | `13px` | `19px` |
| micro | `12px` | `16px` |
## Spacing
Base unit: `4px`
Scale: `4px` · `8px` · `12px` · `16px` · `24px` · `32px`
## Corner radius
| Name | Value |
| --- | --- |
| small | `4px` |
| medium | `8px` |
| large | `12px` |
| pill | `9999px` |
## Elevation / shadows
| Name | Value |
| --- | --- |
| floating | `0 8px 32px rgba(0,0,0,0.35)` |
## Motion
| Name | Value |
| --- | --- |
| fast | `100ms ease-out` |
| default | `250ms cubic-bezier(0.25, 0.46, 0.45, 0.94)` |
## Quick start (CSS)
```css
/* Linear — illustrative tokens, restated as CSS custom properties.
Unofficial reference by designsystems.one; values are indicative, not
canonical. Official reference: https://linear.app */
:root {
/* Color */
--linear-accent: #5e6ad2; /* Brand accent and primary actions */
--linear-text: #f7f8f8; /* Primary text on dark */
--linear-text-secondary: #8a8f98; /* Secondary text */
--linear-bg: #08090a; /* Default dark canvas */
--linear-surface: #1c1c1f; /* Panels and cards */
--linear-border: #26262a; /* Hairlines on dark */
--linear-success: #4cb782; /* Completed states */
--linear-warning: #f2994a; /* At-risk states */
--linear-error: #eb5757; /* Errors and urgent priority */
/* Typography */
--font-body: 'Inter Variable', 'SF Pro Display', -apple-system, sans-serif;
/* Type scale */
--text-title-1: 56px /* line-height 61px */;
--text-title-3: 24px /* line-height 32px */;
--text-text-regular: 15px /* line-height 24px */;
--text-text-small: 13px /* line-height 19px */;
--text-micro: 12px /* line-height 16px */;
/* Spacing */
--space-1: 4px;
--space-2: 8px;
--space-3: 12px;
--space-4: 16px;
--space-5: 24px;
--space-6: 32px;
/* Radius */
--radius-small: 4px;
--radius-medium: 8px;
--radius-large: 12px;
--radius-pill: 9999px;
/* Elevation */
--shadow-floating: 0 8px 32px rgba(0,0,0,0.35);
/* Motion */
--motion-fast: 100ms ease-out;
--motion-default: 250ms cubic-bezier(0.25, 0.46, 0.45, 0.94);
}
```
## Origin
Linear's design language emerged with the product itself in 2019 — a deliberately small founding team building a project tracker for engineers, with a designer-engineer-CEO triangle at the centre. The system was never published as a separate set of docs; it lives inside the product and the engineering brand. Its influence shows up in every dev tool launched after 2021 — the keyboard-first command palette, the inline diff motion, the muted neutral palette with a single tuned accent, the typographic restraint with one display weight and one monospace.
## Governance
Centralized by default — a small core design team owns the system, and the same engineers who build the product implement the components. There is no public design-system site, no open contribution path, no semver discipline visible externally. The system evolves with the product release cadence (weekly). Documentation is internal; the public surface is the product itself and the occasional engineering blog post.
## Known for
- Keyboard-first command bar — ⌘K opens a unified surface for navigation, action invocation, and search. Linear normalized this pattern for productivity tools after it migrated from code editors.
- Motion as feedback — view transitions, list reorders, and modal entrances all use 120–180ms eased motion that signals state change without delaying the user. Other tools imitate the look; few match the timing.
- Restraint with a single accent — the palette is mostly neutral, with one tuned accent (often violet or product-purple) used as punctuation. The signature look that became the default for indie SaaS.
## Underrated
- The empty states have real personality — a single sentence, a hairline illustration, no marketing copy. They read as confident, not chirpy.
- Number formatting is consistent throughout — tabular numerics in tables, sentence-case durations ("2 weeks ago", not "2w"), no decoration around metric values. Reads as engineering-grade by avoiding fluff.
- Density choices are unusually consistent — list rows, table rows, and form rows share a 32px-or-40px rhythm. The system has fewer densities than competitors and uses them more deliberately.
## Watch out for
- There is no published design system. Learning Linear means reading the product surface and reverse-engineering — useful as study, not as a drop-in reference.
- The aesthetic is so distinctive that direct copies read as "Linear-clone" rather than your own brand. Treat as architectural reference, not visual template.
- Patterns assume engineering teams as the user — fast keyboard users, comfortable with density, working in long sessions. Lifting them onto consumer products imports those assumptions.
## Components worth studying
- **Command Menu** — ⌘K-summoned command palette with scoped contexts (issue, project, member), recent actions, and async search. The reference implementation for productivity-tool command bars.
- **Issue View** — Inline-editable issue surface with status pill, assignee, labels, priority, and a stream of activity — the dense detail view that other trackers benchmark against.
- **Triage Inbox** — Keyboard-first issue triage with bulk actions, status pivot, and timeline scrubbing — sets the bar for queue-style productivity UI.
- **Roadmap timeline** — Multi-track Gantt with project rollups, milestone diamonds, and zoom levels that snap to week / month / quarter — designed for long-horizon planning without the heaviness of Microsoft Project.
## When to choose Linear
Study Linear if you're building productivity or dev-tool surfaces — issue trackers, dashboards, project workspaces. The lessons travel best at the interaction layer (keyboard flows, motion timing, density rhythm) rather than the visual layer. Don't try to lift the look whole; lift the discipline.
## Apply this style with an AI tool
Paste this into your AI coding assistant as a direction, then iterate:
> Design in the spirit of Linear by Linear — The opinionated productivity system whose visual language defined a decade of dev-tool UI. Character: Dark-mode-first velocity: micro-tuned Inter weights, keyboard-speed motion, and the indigo glow every dev tool now chases. Use a primary colour near #5e6ad2, the typeface "Inter Variable" (or a close equivalent), corner radius around 4px, a spacing rhythm on a 4px base. Lean into what it's known for: Keyboard-first command bar — ⌘K opens a unified surface for navigation, action invocation, and search. Linear normalized this pattern for productivity tools after it migrated from code editors. Match the intent, not the pixels; adapt it to my product rather than cloning it.
## Official references
- [Linear](https://linear.app)
- [Linear engineering blog](https://linear.app/blog)
- [Linear method (operating principles)](https://linear.app/method)
---
_Generated by [designsystems.one](https://www.designsystems.one/design-systems/linear) — a catalogue of public design systems. Style facts are reported for reference and education; adapt them to your own product. Report issues or takedown requests via the site._
If you're evaluating this system
Study Linear if you're building productivity or dev-tool surfaces — issue trackers, dashboards, project workspaces. The lessons travel best at the interaction layer (keyboard flows, motion timing, density rhythm) rather than the visual layer. Don't try to lift the look whole; lift the discipline.