curated design system
linear.app
Extracted from linear.app and curated against the Linear brand. Every value below is real tokens read from examples/linear/tokens.json.
colors· 43
Primary
40×Accent
492×Brand Dark
22×Ink
164×Canvas
25002×Canvas Alt
1491×Muted
4050×Hairline
2230×Error
22×long-tail · 34
click to copy
typography· 31
Display XXL72pxw510Inter Variable
Display XXL64pxw510Inter Variable
Display XL48pxw510Inter Variable
Display MD32pxw400Inter Variable
Body LG24pxw400Inter Variable
Heading LG24pxw590Inter Variable
Body LG24pxw510Inter Variable
Heading MD20pxw590Inter Variable
Body MD17pxw590Inter Variable
Body MD17pxw510Inter Variable
Body MD16pxw400Inter Variable
Heading SM16pxw590Inter Variable
Body MD16pxw510Inter Variable
Body MD15pxw400Inter Variable
Body MD15pxw510Inter Variable
Body MD15pxw590Inter Variable
Body MD15pxw300Inter Variable
Body SM14pxw590Inter Variable
Body SM14pxw400Inter Variable
Body SM14pxw510Inter Variable
Body SM14pxw400Berkeley Mono
Body SM13pxw400Inter Variable
Body SM13pxw510Inter Variable
Body SM13pxw400Berkeley Mono
Caption12pxw510Inter Variable
Overline12pxw400Berkeley Mono
Caption12pxw400Inter Variable
Caption12pxw590Inter Variable
Caption11pxw510Inter Variable
Overline10pxw400Inter Variable
Micro10pxw510Inter Variable
buttons· 3
Real DOM observations from linear.appat crawl time. Backgrounds, paddings, borders, even the sample text all captured, none invented. Buttons sit on the brand's own canvas colour so transparent and translucent variants render the way they do on the live page.
Ghost130× observed
Secondary32× observed
Primary4× observed
spacing· 19
base unit · 4px
- 4px
- 8px
- 12px
- 16px
- 20px
- 24px
- 28px
- 32px
- 36px
- 40px
- 48px
- 56px
- 60px
- 64px
- 68px
- 72px
- 80px
- 96px
- 128px
max content width: 100%
border radius· 19
4px
94× used
6px
85× used
2px
84× used
50%
76× used
12px
25× used
8px
24× used
12px 12px 0px 0px
22× used
22px
10× used
9999px
8× used
2px 0px 0px 2px
8× used
0px 2px 2px 0px
8× used
16px
6× used
shadows· 16
complex-stack4× used
rgba(8, 9, 10, 0.6) 0px 4px 32px 0pxcomplex-stack2× used
rgba(0, 0, 0, 0.2) 0px 4px 24px 0pxcomplex-stack12× used
rgba(0, 0, 0, 0.2) 0px 0px 12px 0px insetcomplex-stack32× used
rgba(0, 0, 0, 0.4) 0px 2px 4px 0pxcomplex-stack6× used
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 0pxcomplex-stack1× used
rgba(94, 106, 210, 0.03) 0px 0px 0px 7.10205pxcomplex-stack2× used
rgba(0, 0, 0, 0.1) 0px 0px 0px 2pxcomplex-stack6× used
rgba(0, 0, 0, 0.2) 0px 0px 0px 1pxcomplex-stack10× used
rgb(35, 37, 42) 0px 0px 0px 1px inset
cards
Reference card patterns composed from linear.app's extracted canvas + hairline + signature shadow + base radius. Useful as a recipe when an agent rebuilds the brand style; not pretending these specific layouts were captured from the DOM.
Interactive demo
Explore the interactive demo
This demonstration shows how easy of use and instant insights empower teams to make quick, confident decisions the canonical product-tile layout this brand uses on its marketing surface.
Take the interactive demo
Brand newsroom
Editorial tile feature recipe with icon, eyebrow, and inline CTA.
Read the blog
links
2 variants captured
Ghost166× observed
Primary7× observed
also captured
The engine identified these additional component groups in the page DOM. They aren't rendered visually here because structural components (footer, navigation) need their containing layout to display meaningfully and the engine doesn't yet capture that.
- Footer2 variants
- Input2 variants
- Navigation1 variant
- Card1 variant
- Badge1 variant
DESIGN.md
examples/linear/DESIGN.md
· 328 linesDesign System: Linear
1. Visual Theme & Atmosphere
Linear's website is a masterclass in dark-mode-first product design -- a near-black canvas (#08090a) where content emerges from darkness like starlight. The overall impression is one of extreme precision engineering: every element exists in a carefully calibrated hierarchy of luminance, from barely-visible borders (rgba(255,255,255,0.05)) to soft, luminous text (#f7f8f8). This is not a dark theme applied to a light design -- it is darkness as the native medium, where information density is managed through subtle gradations of white opacity rather than color variation.
The typography system is built entirely on Inter Variable with OpenType features "cv01" and "ss03" enabled globally, giving the typeface a geometric, single-story 'a' and adjusted letterforms that transform Inter into something distinctly Linear. The system uses three weights with strict roles: 400 for reading, 510 for emphasis and navigation, 590 for strong headings. The 510 weight is the signature -- it sits between regular and medium, creating a subtle emphasis that avoids the heaviness of traditional medium or semibold. At display sizes (72px, 64px, 48px), Inter uses aggressive negative letter-spacing (-1.584px to -1.056px), producing compressed, authoritative headlines that feel engineered rather than designed.
The color system is almost entirely achromatic -- near-black backgrounds with white-gray text -- punctuated by a single brand accent: Linear's indigo-violet (#5e6ad2). This accent color is used sparingly and intentionally, appearing only on CTAs, active states, and brand elements. The border system uses ultra-thin, semi-transparent white borders (rgba(255,255,255,0.05) to rgba(255,255,255,0.08)) that create structure without visual noise.
Key Characteristics:
- Dark-mode-native:
#08090amarketing background,#0f1011panel background,#202122elevated surfaces - Inter Variable with
"cv01", "ss03"globally -- geometric alternates that transform Inter into Linear's proprietary typeface - Signature weight 510 (between regular and medium) for emphasis and UI -- the workhorse weight
- Aggressive negative letter-spacing at display sizes: -1.584px at 72px, -1.408px at 64px, -1.056px at 48px
- Brand indigo-violet
#5e6ad2-- the only chromatic color in the entire system - Semi-transparent white borders throughout:
rgba(255,255,255,0.05)torgba(255,255,255,0.08) - Button backgrounds at near-zero opacity:
rgba(255,255,255,0.05)withrgba(0,0,0,0.03) 0px 1.2px 0pxmicro-shadow - Multi-layered shadow stacks with inset variants for depth on dark surfaces
- Radix UI primitives as the component foundation
Berkeley Monoas the monospace companion for code and technical labels
2. Color Palette & Roles
Background Surfaces
- Marketing Black (
#08090a): The deepest background -- the canvas for hero sections and marketing pages. Near-pure black with an imperceptible blue-cool undertone. - Panel Dark (
#0f1011): Sidebar and panel backgrounds. One step up from the marketing black, used exclusively forbgColor(18 occurrences). - Surface Dark (
#161718): Recessed panel backgrounds. A subtle lift from panel dark for nested containers. - Elevated Surface (
#202122): Card backgrounds, dropdowns, and elevated regions. The lightest structural dark with gradient and border usage across all pages. - Secondary Surface (
#28282c): Hover states and slightly elevated components. Appears on all three crawled pages as a background color. - Border Dark (
#323334): Solid dark border color and icon tint. Used where semi-transparent borders would be too subtle. - Mid Surface (
#383b3f): The lightest dark structural color -- used for borders (36 occurrences) and occasional icon fills.
Text & Content
- Primary Text (
#f7f8f8): Near-white with a barely-warm cast. The dominant text color across 8,265 text instances -- not pure white, preventing eye strain on dark backgrounds. Also mapped to--normal-bg. - Light Text (
#e2e4e7): Slightly subdued white for secondary headings and emphasized body text. 488 text occurrences. - Silver Body (
#d0d6e0): Cool silver-gray for descriptions and secondary content. 784 text instances with a blue undertone that keeps it cool against the warm primary text. - Mid Gray (
#9c9da1): Neutral mid-tone for icons and subtle background fills. Appears across all pages. - Tertiary Text (
#8a8f98): Muted cool-gray for placeholders, metadata, and de-emphasized content. 726 text occurrences. - Quaternary Text (
#62666d): The most subdued text -- timestamps, disabled states, subtle labels. 1,435 text instances, also heavily used as a border color (2,612).
Brand & Accent
- Brand Indigo (
#5e6ad2): Primary brand color -- CTA button backgrounds, brand marks, and interactive surfaces. The only saturated hue in the system. Used as background (6), shadow (2), and icon (2). - Indigo Periwinkle (
#6d78d5): Slightly lighter indigo variant for text accents (4 occurrences) and secondary brand elements. - Indigo Bright (
#6366f1): Higher-saturation indigo variant used exclusively for backgrounds (10 occurrences). Tailwind'sindigo-500. - Violet (
#8b5cf6): Purple variant for accent backgrounds. Used exclusively as background color (6 occurrences). - Periwinkle Light (
#8fa4ff): Desaturated blue-violet for text highlights and border accents. 108 total frequency.
Workflow Colors
- Soft Green (
#89d196): Muted sage green for completion and progress states. Used as text (32) and border (64). - Active Green (
#27a644): Saturated green for active/in-progress status indicators. - Forest Green (
#008d2c): Deep green for confirmed success states. - Emerald (
#10b981): Secondary success -- pill badges, completion dots. Tailwind'semerald-500. - Sky Blue (
#55cdff): Bright cyan-blue for informational highlights. 88 text occurrences. - Warm Amber (
#ffc47c): Soft gold for warning states and attention indicators. - Hot Pink (
#f79ce0): Bright pink for labels and category differentiation. 164 text occurrences. - Alert Red (
#d6303d): Error and destructive action indicator. - Coral Red (
#eb5757): Secondary error -- used for both text (4) and background (6).
Overlay
- Shadow Base (
rgba(0,0,0,0.2)): Primary shadow opacity for elevated elements and ring shadows. - Deep Shadow (
rgba(0,0,0,0.4)): Modal backdrops and floating element shadows. - Brand Shadow (
rgba(8,9,10,0.6)): Branded dark shadow using the marketing black hue at 60% opacity.
3. Typography Rules
Font Family
- Primary:
Inter Variable, with fallbacks:SF Pro Display, -apple-system, system-ui, Segoe UI, Roboto, Oxygen, Ubuntu, Cantarell, Open Sans, Helvetica Neue - Monospace:
Berkeley Mono, with fallbacks:ui-monospace, SF Mono, Menlo - OpenType Features:
"cv01", "ss03"enabled globally -- cv01 provides a single-story 'a', ss03 adjusts letterforms for a geometric appearance.
Hierarchy
| Role | Font | Size | Weight | Line Height | Letter Spacing | Notes |
|---|---|---|---|---|---|---|
| Display XL | Inter Variable | 72px (4.50rem) | 510 | 1.00 (tight) | -1.584px | Hero headlines, maximum impact |
| Display Large | Inter Variable | 64px (4.00rem) | 510 | 1.00 (tight) | -1.408px | Secondary hero text |
| Display | Inter Variable | 48px (3.00rem) | 510 | 1.00 (tight) | -1.056px | Section headlines |
| Heading 1 | Inter Variable | 32px (2.00rem) | 400 | 1.13 | -0.704px | Major section titles, testimonial quotes |
| Heading 2 | Inter Variable | 24px (1.50rem) | 590 | 1.33 | -0.288px | Sub-section headings, pricing tier names |
| Heading 2 Medium | Inter Variable | 24px (1.50rem) | 510 | 1.33 | -0.288px | Feature labels, tab headings |
| Heading 3 | Inter Variable | 20px (1.25rem) | 590 | 1.33 | -0.24px | Feature titles, card headers |
| Body Emphasis | Inter Variable | 17px (1.06rem) | 590 | 1.60 (relaxed) | normal | Emphasized body, pricing values |
| Body Medium | Inter Variable | 17px (1.06rem) | 510 | 1.60 (relaxed) | normal | Price labels, emphasized inline |
| Body | Inter Variable | 16px (1.00rem) | 400 | 1.50 | normal | Standard reading text, base size |
| Body Semibold | Inter Variable | 16px (1.00rem) | 590 | 1.50 | normal | Strong emphasis, subheadings |
| Body Nav | Inter Variable | 16px (1.00rem) | 510 | 1.50 | normal | Navigation labels, names |
| Small | Inter Variable | 15px (0.94rem) | 400 | 1.60 (relaxed) | -0.165px | Secondary body, descriptions |
| Small Medium | Inter Variable | 15px (0.94rem) | 510 | 1.60 (relaxed) | -0.165px | Emphasized small text, CTAs |
| Small Semibold | Inter Variable | 15px (0.94rem) | 590 | 1.60 (relaxed) | -0.165px | Strong small text, user names |
| Small Light | Inter Variable | 15px (0.94rem) | 300 | 1.47 | -0.165px | De-emphasized body, chat messages |
| Caption | Inter Variable | 14px (0.88rem) | 400-590 | 1.50 | -0.182px | Metadata, labels, thread references |
| Nav Item | Inter Variable | 13px (0.81rem) | 400 | 1.50 | -0.13px | Navigation links, button labels |
| Nav Emphasis | Inter Variable | 13px (0.81rem) | 510 | normal | normal | Sign-up CTA, sidebar items |
| Label | Inter Variable | 12px (0.75rem) | 400-590 | 1.40 | normal | Activity timestamps, small labels |
| Micro | Inter Variable | 11px (0.69rem) | 510 | 1.40 | normal | Sidebar metadata labels |
| Tiny | Inter Variable | 10px (0.63rem) | 400-510 | 1.50 | -0.15px | Issue IDs, badge labels, text-transform: uppercase |
| Mono Body | Berkeley Mono | 14px (0.88rem) | 400 | 1.71 | normal | Code blocks, terminal output |
| Mono Caption | Berkeley Mono | 13px (0.81rem) | 400 | 1.50 | normal | Issue identifiers (e.g. ENG-2703) |
| Mono Label | Berkeley Mono | 12px (0.75rem) | 400 | 1.40 | normal | Code metadata, text-transform: uppercase |
Principles
- 510 is the signature weight: Linear uses Inter Variable's 510 weight (between regular 400 and medium 500) as its default emphasis weight. This creates a subtly bolded feel without the heaviness of traditional medium or semibold -- it appears in 12 of 25 typography levels.
- Compression at scale: Display sizes use progressively tighter letter-spacing: -1.584px at 72px, -1.408px at 64px, -1.056px at 48px, -0.704px at 32px. Below 24px, spacing relaxes toward normal.
- OpenType as identity:
"cv01", "ss03"are not decorative -- they transform Inter into Linear's distinctive typeface, giving it a geometric, purposeful character across every text element. - Three-tier weight system: 400 (reading), 510 (emphasis/UI), 590 (strong emphasis). The 300 weight appears only in deliberately de-emphasized contexts like chat message previews.
4. Component Stylings
Buttons
Ghost Button (Default)
- Background:
rgba(0,0,0,0) - Text:
#ffffff - Padding: 0px 4px
- Radius: 4px
- Transition:
background 0.16s cubic-bezier(0.25, 0.46, 0.45, 0.94) - Use: Toolbar actions, icon-only controls, contextual buttons
Secondary Button
- Background:
rgba(255,255,255,0.05) - Text:
#62666d(quaternary) - Radius: 2px
- Border:
1px solid rgba(255,255,255,0.05) - Shadow:
rgba(0,0,0,0.03) 0px 1.2px 0px 0px - Use: Toolbar buttons, quick-access controls
Primary Link Button
- Background:
rgba(255,255,255,0.05) - Text:
#f7f8f8 - Font: 13px weight 510
- Radius: 4px
- Shadow:
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 - Transition:
background 0.1s - Use: Primary CTAs ("Get started", "Contact sales")
Icon Button (Circle)
- Background:
rgba(255,255,255,0.05) - Text:
#ffffff - Radius: 50%
- Use: Close, menu toggle, icon-only actions
Cards & Containers
- Background:
rgba(255,255,255,0.05)(never solid -- always translucent) - Border:
1px solid rgba(255,255,255,0.08)(standard) or inset shadowrgb(35,37,42) 0px 0px 0px 1px inset - Radius: 8px (standard), 12px (featured), 22px (large panels)
- Shadow:
rgba(0,0,0,0.2) 0px 0px 0px 1pxring shadow orrgba(0,0,0,0.4) 0px 2px 4px 0pxelevation - Hover: subtle background opacity increase
Inputs & Forms
Text Area
- Background:
rgba(255,255,255,0.05) - Text:
#f7f8f8 - Border:
rgba(0,0,0,0.2) 0px 0px 0px 1pxring shadow - Padding: 12px 14px
- Radius: 6px
- Font: 14px
Berkeley Monoweight 400
Badges & Pills
Status Pill
- Background: transparent
- Text:
#62666dor workflow color - Radius: 9999px
- Font: 10px Inter Variable weight 510
- Use: Tags, filter chips, status labels
Subtle Badge
- Background:
rgba(255,255,255,0.05) - Text:
#f7f8f8 - Radius: 2px
- Border:
1px solid rgba(255,255,255,0.05) - Shadow:
rgba(0,0,0,0.03) 0px 1.2px 0px 0px - Font: 12px weight 510
- Use: Inline labels, category tags
Navigation
- Dark sticky header on
#08090abackground - Bottom shadow:
rgba(0,0,0,0.4) 0px 1px 0px 0px - Links: Inter Variable 13px weight 400,
#f7f8f8text,-0.13pxletter-spacing - CTA: 13px weight 510 with multi-layer inset shadow stack
- Top-rounded panels:
12px 12px 0px 0pxradius
Image Treatment
- Product screenshots on dark backgrounds with inset shadow:
rgba(0,0,0,0.2) 0px 0px 12px 0px inset - Top-rounded images:
12px 12px 0px 0pxradius - Shadow beneath screenshots:
rgba(0,0,0,0.4) 0px 2px 4px 0px
5. Layout Principles
Spacing System
- Base unit: 4px (detected from frequency analysis)
- Primary scale: 4px, 8px, 12px, 16px, 20px, 24px, 28px, 32px, 36px, 40px, 48px, 56px, 60px, 64px, 80px, 96px, 128px
- Highest frequency values: 32px (825 occurrences), 8px (617), 14px (412), 12px (215), 24px (175)
- The 8px and 32px values dominate -- the system uses an 8px grid with 32px as the primary structural spacing unit
Grid & Container
- Max content width: 100% with internal constraints
- Hero: centered single-column with generous vertical padding
- Feature sections: 2-3 column grids for feature cards
- Full-width dark sections with internal max-width constraints
Whitespace Philosophy
- Darkness as space: On Linear's dark canvas, empty space is not white -- it is absence. The near-black background (
#08090a) IS the whitespace, and content emerges from it through luminance steps. - Compressed headlines, expanded surroundings: Display text at 72px with -1.584px tracking is dense and compressed, but sits within vast dark padding. Section spacing reaches 128px+ at the largest breakpoints.
- Section isolation: Each feature section is separated by generous vertical padding (80px-128px) with no visible dividers -- the dark background provides natural separation.
Border Radius Scale
- Micro (2px): Inline badges, toolbar buttons, subtle tags
- Standard (4px): Navigation links, code snippets, small containers
- Comfortable (5-6px): Buttons, inputs, functional elements
- Card (8px): Cards, dropdowns, popovers
- Panel (12px): Panels, featured cards, section containers
- Large (22px): Large panel elements
- Full Pill (9999px): Chips, filter pills, status tags
- Circle (50%): Icon buttons, avatars, status dots
6. Depth & Elevation
| Level | Treatment | Use |
|---|---|---|
| Flat (Level 0) | No shadow, #08090a bg | Page background, deepest canvas |
| Subtle (Level 1) | rgba(0,0,0,0.03) 0px 1.2px 0px 0px | Toolbar buttons, micro-elevation (62 occurrences) |
| Ring (Level 2) | rgba(0,0,0,0.2) 0px 0px 0px 1px | Border-as-shadow technique for cards and inputs |
| Inset (Level 2b) | rgba(0,0,0,0.2) 0px 0px 12px 0px inset | Recessed panels, inner shadows (12 occurrences) |
| Elevated (Level 3) | rgba(0,0,0,0.4) 0px 2px 4px 0px | Floating elements, dropdowns (32 occurrences) |
| Deep (Level 4) | rgba(8,9,10,0.6) 0px 4px 32px 0px | Deep elevation, prominent floating panels |
| Dialog (Level 5) | rgba(0,0,0,0) 0px 8px 2px, rgba(0,0,0,0.01) 0px 5px 2px, rgba(0,0,0,0.04) 0px 3px 2px, rgba(0,0,0,0.07) 0px 1px 1px, rgba(0,0,0,0.08) 0px 0px 1px | Multi-layer stack for popovers, command palette |
Shadow Philosophy: On dark surfaces, traditional shadows (dark on dark) are nearly invisible. Linear solves this through two complementary strategies: semi-transparent white borders as the primary depth indicator, and background luminance stepping where each elevation level slightly increases the white opacity of the surface (rgba(255,255,255,0.05)). The inset shadow technique (rgba(0,0,0,0.2) 0px 0px 12px 0px inset) creates a unique "sunken" effect for embedded content areas. The primary CTA buttons use a four-layer shadow stack combining inset white highlights (rgba(255,255,255,0.03) and rgba(255,255,255,0.04)) with outer dark rings (rgba(0,0,0,0.6)) to create a three-dimensional bevel on flat dark surfaces.
7. Do's and Don'ts
Do
- Use
Inter Variablewithfont-feature-settings: "cv01", "ss03"on ALL text -- these features are fundamental to Linear's typeface identity and appear on every detected typography level - Use weight 510 as your default emphasis weight -- it is Linear's signature between-weight, appearing in navigation, labels, badges, and headings
- Apply aggressive negative letter-spacing at display sizes: -1.584px at 72px, -1.408px at 64px, -1.056px at 48px, -0.704px at 32px
- Build on near-black backgrounds:
#08090afor marketing,#0f1011for panels,#202122for elevated surfaces - Use semi-transparent white borders (
rgba(255,255,255,0.05)torgba(255,255,255,0.08)) instead of solid dark borders -- they create structure that breathes - Keep button backgrounds nearly transparent:
rgba(255,255,255,0.05)withrgba(0,0,0,0.03) 0px 1.2px 0pxmicro-shadow - Reserve brand indigo (
#5e6ad2) for primary CTAs and brand marks only -- it is the sole chromatic color in the system - Use
#f7f8f8for primary text -- not pure#ffffff, which would be too harsh on the near-black canvas - Apply the luminance stacking model for elevation: deeper = darker bg, elevated = slightly lighter bg via white opacity
- Use
Berkeley Monofor any code or technical content -- it appears in code blocks, issue IDs, and terminal output
Don't
- Don't use pure white (
#ffffff) as primary text --#f7f8f8prevents eye strain and has 25,002 frequency vs occasional#ffffffusage - Don't use solid colored backgrounds for buttons -- transparency is the system (
rgba(255,255,255,0.05)), never a flat hex - Don't apply the brand indigo (
#5e6ad2) decoratively -- it is reserved for interactive/CTA elements only, with just 10 total frequency - Don't use positive letter-spacing on display text -- Inter at sizes above 24px always runs negative (-0.288px to -1.584px)
- Don't use visible opaque borders on dark backgrounds -- borders should be semi-transparent white or shadow-based ring borders (
rgba(0,0,0,0.2) 0px 0px 0px 1px) - Don't skip the OpenType features
"cv01", "ss03"-- without them, it is generic Inter, not Linear's Inter - Don't use weight 700 (bold) -- Linear's maximum weight is 590, with 510 as the workhorse
- Don't introduce warm colors into the UI chrome -- the palette is cool gray (
#62666d,#8a8f98,#d0d6e0) with blue-violet accent only - Don't use drop shadows for primary elevation on dark surfaces -- use background luminance stepping and inset shadows instead
- Don't use positive radius values above 22px except for full-pill (9999px) and circle (50%) patterns
8. Responsive Behavior
Breakpoints
| Name | Width | Key Changes |
|---|---|---|
| Mobile Small | <600px | Single column, compact padding, display text scales down |
| Mobile | 600-640px | Standard mobile layout |
| Tablet | 640-768px | Two-column grids begin |
| Desktop Small | 768-1024px | Full card grids, expanded padding |
| Desktop | 1024-1280px | Standard desktop, full navigation |
| Large Desktop | >1280px | Full layout, generous margins, section spacing up to 128px |
Touch Targets
- Ghost buttons use minimum 4px horizontal padding with 4px radius
- Secondary buttons have
rgba(0,0,0,0.03) 0px 1.2px 0pxshadow for tactile affordance - Navigation links at 13px with adequate spacing for mobile tap targets
- Pill elements use 9999px radius for easy thumb targeting
- Icon buttons at 50% radius ensure circular, easy-to-tap targets
Collapsing Strategy
- Hero: 72px display -> 48px -> 32px text, letter-spacing adjusts proportionally (-1.584px -> -1.056px -> -0.704px)
- Navigation: horizontal links + CTA -> hamburger menu at 768px
- Feature cards: 3-column -> 2-column -> single column stacked
- Product screenshots: maintain aspect ratio and inset shadow treatment
- Section spacing: 128px+ -> 80px -> 48px on mobile
- Footer: multi-column -> stacked single column
Image Behavior
- Product screenshots maintain
rgba(0,0,0,0.2) 0px 0px 12px 0px insetshadow at all sizes - Top-rounded images use
12px 12px 0px 0pxradius consistently - Dark background ensures screenshots blend naturally at any viewport
- Floating UI element complexity may reduce on mobile for performance
9. Agent Prompt Guide
Quick Color Reference
- Primary CTA: Brand Indigo (
#5e6ad2) - Page Background: Marketing Black (
#08090a) - Panel Background: Panel Dark (
#0f1011) - Elevated Surface: (
#202122) - Heading text: Primary White (
#f7f8f8) - Body text: Silver Body (
#d0d6e0) - Muted text: Tertiary Gray (
#8a8f98) - Subtle text: Quaternary Gray (
#62666d) - Light heading: Light Text (
#e2e4e7) - Workflow green: Soft Green (
#89d196) - Workflow blue: Sky Blue (
#55cdff) - Workflow pink: Hot Pink (
#f79ce0)
Example Component Prompts
- "Create a hero section on
#08090abackground. Headline at 48px Inter Variable weight 510, line-height 1.00, letter-spacing -1.056px, color#f7f8f8, font-feature-settings'cv01', 'ss03'. Subtitle at 15px weight 400, line-height 1.60, letter-spacing -0.165px, color#8a8f98. Primary CTA button:rgba(255,255,255,0.05)background,#f7f8f8text, 13px weight 510, 4px radius, shadowrgba(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." - "Design a feature card on dark background:
rgba(255,255,255,0.05)background, inset shadowrgb(35,37,42) 0px 0px 0px 1px inset, 12px radius. Title at 20px Inter Variable weight 590, letter-spacing -0.24px, color#f7f8f8, font-feature-settings'cv01', 'ss03'. Body at 15px weight 400, color#8a8f98, letter-spacing -0.165px, line-height 1.60." - "Build a status pill: transparent background,
#62666dtext, 9999px radius, 10px Inter Variable weight 510, font-feature-settings'cv01', 'ss03'. For active status, use#89d196text with the same structure." - "Create navigation: dark sticky header on
#08090a. Inter Variable 13px weight 400 for links,#f7f8f8text, letter-spacing -0.13px, font-feature-settings'cv01', 'ss03'. CTA link: 13px weight 510,rgba(255,255,255,0.05)background, 4px radius, four-layer shadow stack. Bottom border:rgba(0,0,0,0.4) 0px 1px 0px 0pxshadow." - "Design a command palette / panel:
#202122background, inset shadowrgb(35,37,42) 0px 0px 0px 1px inset, 12px radius, outer shadowrgba(0,0,0,0.4) 0px 2px 4px 0px. Input at 14px Berkeley Mono weight 400,#f7f8f8text. Results list with 13px Inter Variable weight 510 labels in#d0d6e0and 12px metadata in#62666d, font-feature-settings'cv01', 'ss03'." - "Build a toolbar button:
rgba(255,255,255,0.05)background,#62666dtext, 2px radius,1px solid rgba(255,255,255,0.05)border, shadowrgba(0,0,0,0.03) 0px 1.2px 0px 0px, 12px Inter Variable weight 510, font-feature-settings'cv01', 'ss03'."
Iteration Guide
- Always set
font-feature-settings: "cv01", "ss03"on allInter Variabletext -- this is non-negotiable for Linear's look - Letter-spacing scales with font size: -1.584px at 72px, -1.408px at 64px, -1.056px at 48px, -0.704px at 32px, -0.288px at 24px, -0.165px at 15px, normal below 14px
- Three weights, strict roles: 400 (read), 510 (emphasize/navigate), 590 (announce). Never use 700.
- Surface elevation via background opacity:
rgba(255,255,255,0.05)on dark backgrounds -- never solid background colors - Brand indigo (
#5e6ad2) is the only chromatic color -- everything else is grayscale with cool blue undertone - Borders use two techniques: semi-transparent white (
rgba(255,255,255,0.05)) or inset ring shadows (rgb(35,37,42) 0px 0px 0px 1px inset) -- never solidborder-coloron dark surfaces Berkeley Monofor any code or technical content,Inter Variablefor everything else- Button transitions use
background 0.16s cubic-bezier(0.25, 0.46, 0.45, 0.94)for ghost variants andbackground 0.1sfor primary CTAs