Linear

graphite instrument panel after midnight

Linear feels like a precision tool shown in a dark room: near-black surfaces, cool off-white type and almost no colour, so the product UI does most of the talking. What sets it apart is restraint. Big, tightly tracked medium-weight headlines sit over dim grey copy, and a real app screenshot takes the place of illustration. Colour only shows up where it means something: an indigo toggle, a status dot, a single acid-lime testimonial card.

Technically it runs on Inter Variable at in-between weights (510 for headings, 590 for strong titles, 400 for body), with negative letter-spacing that grows with size (-1.584px at 72px). Surfaces step from #08090a to #0f1011 to #161718, and edges are hairlines of rgba(255,255,255,0.05–0.08) rather than solid greys. Buttons are 32–44px pills. Cards are flat with 8–12px corners and faint inset highlights. Layout is a wide 1436px frame with thin vertical column rules, generous section breaks, Berkeley Mono for code, and small 13–15px text throughout.

https://linear.app

Colors

Click a swatch to copy

Typography

  • display
    Inter
    510 · 590 · falls back to Inter Variable, SF Pro Display, -apple-system, system-ui, sans-serif
    The variable font is set to 510 for all large headlines, never a round 500 or 600. Tracking tightens with size to about -0.022em; line-height is 1.0 on display sizes.
  • body
    Inter
    300 · 400 · 450 · 510 · 590 · falls back to Inter Variable, SF Pro Text, -apple-system, system-ui, sans-serif
    Body copy defaults to 15px/1.6 with -0.165px tracking. UI labels use 510, not bold. The 300 weight appears only in chat-message mockups.
  • mono
    Berkeley Mono
    400 · falls back to JetBrains Mono, IBM Plex Mono, ui-monospace, monospace
    Used for code diffs, inline code tokens (vehicle_state) and technical identifiers, at 14px/1.71.
Display
72px / 1
510 · -1.584px
Linear
H1 / Hero
64px / 1
510 · -1.408px
Linear
H2 / Section
48px / 1
510 · -1.056px
Linear
H3 / Card title
24px / 1.33
590 · -0.288px
Graphite instrument panel after midnight
Title
20px / 1.33
510 · -0.24px
The quick brown fox jumps over the lazy dog
Lead
18px / 1.6
400 · -0.165px
The quick brown fox jumps over the lazy dog
Body
15px / 1.6
400 · -0.165px
The quick brown fox jumps over the lazy dog
Small
14px / 1.5
400 · -0.182px
The quick brown fox jumps over the lazy dog
Caption / Button
13px / 1.5
510 · normal
The quick brown fox jumps over the lazy dog
Mono
14px / 1.71
400 · normal
The quick brown fox jumps over the lazy dog

Spacing & Shape

Spacing
Base unit
4px
Density
comfortable
Container
1436px (content column ≈1245px with ~77px side gutters at 1440)
Section gap
96–112px vertical between major sections
Card padding
16px (compact cards) to 24px (feature/testimonial cards); 32px inside large panels
2
4
6
8
12
16
20
24
32
48
64
96
Radius
  • Buttons, nav CTAs, toggles 9999px
  • Cards, docs tiles, testimonial blocks 8px
  • Product app frame / large panels 12px
  • Inner app cards and menus 9px
  • Label chips (Performance, iOS) 16px
  • Inline code, kbd, small icons 4px
  • Avatars and status dots 50%
Shadows
Glass edge Translucent secondary pill buttons ('Contact sales'): an inner top highlight plus a black outer ring
rgba(255, 255, 255, 0.03) 0px 0px 0px 1px inset, rgba(255, 255, 255, 0.04) 0px 1px 0px 0px inset, rgba(0, 0, 0, 0.6) 0px 0px 0px 1px, rgba(0, 0, 0, 0.1) 0px 4px 4px 0px
Pill lift Light primary pill buttons: a barely visible layered drop
rgba(0, 0, 0, 0) 0px 8px 2px 0px, rgba(0, 0, 0, 0.01) 0px 5px 2px 0px, rgba(0, 0, 0, 0.04) 0px 3px 2px 0px, rgba(0, 0, 0, 0.07) 0px 1px 1px 0px, rgba(0, 0, 0, 0.08) 0px 0px 1px 0px
Hairline ring Panel cards on #0f1011, paired with a 1px rgba(255,255,255,0.08) border
rgba(0, 0, 0, 0.2) 0px 0px 0px 1px
Inset well Recessed areas inside product mockups and inputs
rgba(0, 0, 0, 0.2) 0px 0px 12px 0px inset
Float Floating overlays such as the agent chat window over the app screenshot
rgba(0, 0, 0, 0.25) 0px 2px 32px 0px

Components

Live previews rendered from recipes
Linear Get started
Buttons
Tags
New Productivity dark
Ghost nav link
Ghost nav link
Card
Everything in one ledger

Reconcile every account overnight and close the month in an afternoon instead of a fortnight.

Get started
  • Primary pill button — The only light-filled element in the nav, and the sole high-contrast CTA on each view. Pair it with a ghost 'Log in' link.
  • Secondary glass button — 44px tall. Sits beside a primary pill in closing CTAs ('Get started' / 'Contact sales').
  • Ghost nav link — 32px hit area. The active page is shown in #f7f8f8 with no underline or background.
  • Panel card — Used for app mockups and docs tiles. Docs tiles lighten to #161718 and split an icon area from a title and description block with a hairline.
  • Quiet card — Nearly invisible containers for secondary content. Pricing and customer grids often drop the box entirely and use 1px vertical column rules instead.
  • Highlight testimonial card — A single burst of colour on an otherwise monochrome page. Place it next to a #f8f8f9 light card of the same size.
  • Label chip — 24px tall. Often led by a 6–8px coloured status dot. Small tags like 'Opus 5' use a 4px radius with a hairline border.
  • Top navigation — Fixed. Logo on the left; links right-aligned with a thin vertical divider before 'Log in' and the primary pill.

Do / Don't

  • Set headlines in Inter at weight 510 with negative tracking that scales with size (-1.056px at 48px, -1.408px at 64px) and line-height 1.
  • Build depth with surface steps (#08090a → #0f1011 → #161718) and 1px rgba(255,255,255,0.05–0.08) hairlines, not drop shadows.
  • Make every button a 9999px pill; use #e5e5e6 with #08090a text for the one primary action per view.
  • Keep most copy small and muted: 15px/1.6 body in #8a8f98, with #f7f8f8 saved for titles and active states.
  • Show real product UI in dark panels as the main visual, cropped and overlapping.
  • Divide grid columns with thin vertical rules and let content float without boxes.
  • Use Berkeley Mono only for code and identifiers.
  • Don't add brand-colour gradients, glows or coloured backgrounds to page chrome; the page stays monochrome.
  • Don't use bold 700 weights or plain 500/600. Stick to the variable in-between weights 510 and 590.
  • Don't use pure black #000000 or pure white #ffffff for large surfaces or body text.
  • Don't use more than one saturated highlight per page; the lime #e4f222 card is a one-off accent, not a theme colour.
  • Don't centre marketing headlines. Left-align them to the content edge.
  • Don't give cards large radii (over 12px) or heavy shadows; corners stay at 8–12px and elevation stays subtle.

Screens

Linear – The system for product development /
Linear Customers /customers
Pricing – Linear /pricing
Linear Docs /docs
Linear /login
Mobile 390×844
Mobile navigation menu open