skills/creative/popular-web-designs/templates/linear.app.md
Hermes Agent — Implementation Notes
The original site uses proprietary fonts. For self-contained HTML output, use these CDN substitutes:
- Primary:
Inter| Mono:JetBrains Mono- Font stack (CSS):
font-family: 'Inter', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;- Mono stack (CSS):
font-family: 'JetBrains Mono', ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace;html<link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600&family=JetBrains+Mono:wght@400;500&display=swap" rel="stylesheet">Use
write_fileto create HTML, serve viagenerative-widgetsskill (cloudflared tunnel). Verify visual accuracy withbrowser_visionafter generating.
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 cleaner, more geometric character. Inter is used at a remarkable range of weights — from 300 (light body) through 510 (medium, Linear's signature weight) to 590 (semibold emphasis). The 510 weight is particularly distinctive: it sits between regular and medium, creating a subtle emphasis that doesn't shout. At display sizes (72px, 64px, 48px), Inter uses aggressive negative letter-spacing (-1.584px to -1.056px), creating compressed, authoritative headlines that feel engineered rather than designed. Berkeley Mono serves as the monospace companion for code and technical labels, with fallbacks to ui-monospace, SF Mono, and Menlo.
The color system is almost entirely achromatic — dark backgrounds with white/gray text — punctuated by a single brand accent: Linear's signature indigo-violet (#5e6ad2 for backgrounds, #7170ff for interactive accents). 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, like wireframes drawn in moonlight.
Key Characteristics:
#08090a marketing background, #0f1011 panel background, #191a1b elevated surfaces"cv01", "ss03" globally — geometric alternates for a cleaner aesthetic#5e6ad2 (bg) / #7170ff (accent) / #828fff (hover) — the only chromatic color in the systemrgba(255,255,255,0.05) to rgba(255,255,255,0.08)rgba(255,255,255,0.02) to rgba(255,255,255,0.05)#27a644, #10b981) used only for status indicators#010102 / #08090a): The deepest background — the canvas for hero sections and marketing pages. Near-pure black with an imperceptible blue-cool undertone.#0f1011): Sidebar and panel backgrounds. One step up from the marketing black.#191a1b): Elevated surface areas, card backgrounds, dropdowns.#28282c): The lightest dark surface — used for hover states and slightly elevated components.#f7f8f8): Near-white with a barely-warm cast. The default text color — not pure white, preventing eye strain on dark backgrounds.#d0d6e0): Cool silver-gray for body text, descriptions, and secondary content.#8a8f98): Muted gray for placeholders, metadata, and de-emphasized content.#62666d): The most subdued text — timestamps, disabled states, subtle labels.#5e6ad2): Primary brand color — used for CTA button backgrounds, brand marks, and key interactive surfaces.#7170ff): Brighter variant for interactive elements — links, active states, selected items.#828fff): Lighter, more saturated variant for hover states on accent elements.#7a7fad): Muted indigo used specifically for security-related UI elements.#27a644): Primary success/active status. Used for "in progress" indicators.#10b981): Secondary success — pill badges, completion states.#23252a): Solid dark border for prominent separations.#34343a): Slightly lighter solid border.#3e3e44): Lightest solid border variant.rgba(255,255,255,0.05)): Ultra-subtle semi-transparent border — the default.rgba(255,255,255,0.08)): Standard semi-transparent border for cards, inputs, code blocks.#141516): Nearly invisible line for the subtlest divisions.#18191a): Slightly more visible divider line.#f7f8f8): Page background in light mode.#f3f4f5 / #f5f6f7): Subtle surface tinting.#d0d6e0): Visible border in light contexts.#e6e6e6): Alternative lighter border.#ffffff): Card surfaces, highlights.rgba(0,0,0,0.85)): Modal/dialog backdrop — extremely dark for focus isolation.Inter Variable, with fallbacks: SF Pro Display, -apple-system, system-ui, Segoe UI, Roboto, Oxygen, Ubuntu, Cantarell, Open Sans, Helvetica NeueBerkeley Mono, with fallbacks: ui-monospace, SF Mono, Menlo"cv01", "ss03" enabled globally — cv01 provides an alternate lowercase 'a' (single-story), ss03 adjusts specific letterforms for a cleaner geometric appearance.| 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 (tight) | -0.704px | Major section titles |
| Heading 2 | Inter Variable | 24px (1.50rem) | 400 | 1.33 | -0.288px | Sub-section headings |
| Heading 3 | Inter Variable | 20px (1.25rem) | 590 | 1.33 | -0.24px | Feature titles, card headers |
| Body Large | Inter Variable | 18px (1.13rem) | 400 | 1.60 (relaxed) | -0.165px | Introduction text, feature descriptions |
| Body Emphasis | Inter Variable | 17px (1.06rem) | 590 | 1.60 (relaxed) | normal | Emphasized body, sub-headings in content |
| Body | Inter Variable | 16px (1.00rem) | 400 | 1.50 | normal | Standard reading text |
| Body Medium | Inter Variable | 16px (1.00rem) | 510 | 1.50 | normal | Navigation, labels |
| Body Semibold | Inter Variable | 16px (1.00rem) | 590 | 1.50 | normal | Strong emphasis |
| Small | Inter Variable | 15px (0.94rem) | 400 | 1.60 (relaxed) | -0.165px | Secondary body text |
| Small Medium | Inter Variable | 15px (0.94rem) | 510 | 1.60 (relaxed) | -0.165px | Emphasized small text |
| Small Semibold | Inter Variable | 15px (0.94rem) | 590 | 1.60 (relaxed) | -0.165px | Strong small text |
| Small Light | Inter Variable | 15px (0.94rem) | 300 | 1.47 | -0.165px | De-emphasized body |
| Caption Large | Inter Variable | 14px (0.88rem) | 510–590 | 1.50 | -0.182px | Sub-labels, category headers |
| Caption | Inter Variable | 13px (0.81rem) | 400–510 | 1.50 | -0.13px | Metadata, timestamps |
| Label | Inter Variable | 12px (0.75rem) | 400–590 | 1.40 | normal | Button text, small labels |
| Micro | Inter Variable | 11px (0.69rem) | 510 | 1.40 | normal | Tiny labels |
| Tiny | Inter Variable | 10px (0.63rem) | 400–510 | 1.50 | -0.15px | Overline text, sometimes uppercase |
| Link Large | Inter Variable | 16px (1.00rem) | 400 | 1.50 | normal | Standard links |
| Link Medium | Inter Variable | 15px (0.94rem) | 510 | 2.67 | normal | Spaced navigation links |
| Link Small | Inter Variable | 14px (0.88rem) | 510 | 1.50 | normal | Compact links |
| Link Caption | Inter Variable | 13px (0.81rem) | 400–510 | 1.50 | -0.13px | Footer, metadata links |
| Mono Body | Berkeley Mono | 14px (0.88rem) | 400 | 1.50 | normal | Code blocks |
| Mono Caption | Berkeley Mono | 13px (0.81rem) | 400 | 1.50 | normal | Code labels |
| Mono Label | Berkeley Mono | 12px (0.75rem) | 400 | 1.40 | normal | Code metadata, sometimes uppercase |
"cv01", "ss03" aren't decorative — they transform Inter into Linear's distinctive typeface, giving it a more geometric, purposeful character.Ghost Button (Default)
rgba(255,255,255,0.02)#e2e4e7 (near-white)1px solid rgb(36, 40, 44)rgba(0,0,0,0.1) 0px 4px 12pxSubtle Button
rgba(255,255,255,0.04)#d0d6e0 (silver-gray)Primary Brand Button (Inferred)
#5e6ad2 (brand indigo)#ffffff#828fff shiftIcon Button (Circle)
rgba(255,255,255,0.03) or rgba(255,255,255,0.05)#f7f8f8 or #ffffff1px solid rgba(255,255,255,0.08)Pill Button
#d0d6e01px solid rgb(35, 37, 42)Small Toolbar Button
rgba(255,255,255,0.05)#62666d (muted)1px solid rgba(255,255,255,0.05)rgba(0,0,0,0.03) 0px 1.2px 0px 0pxrgba(255,255,255,0.02) to rgba(255,255,255,0.05) (never solid — always translucent)1px solid rgba(255,255,255,0.08) (standard) or 1px solid rgba(255,255,255,0.05) (subtle)rgba(0,0,0,0.2) 0px 0px 0px 1px or layered multi-shadow stacksText Area
rgba(255,255,255,0.02)#d0d6e01px solid rgba(255,255,255,0.08)Search Input
#f7f8f8Button-style Input
#8a8f98Success Pill
#10b981#f7f8f8Neutral Pill
#d0d6e01px solid rgb(35, 37, 42)Subtle Badge
rgba(255,255,255,0.05)#f7f8f81px solid rgba(255,255,255,0.05)#d0d6e0 text#f7f8f8/ or Cmd+K)rgba(255,255,255,0.08))12px 12px 0px 0px radiusrgba(0,0,0,0.4) 0px 2px 4px| Level | Treatment | Use |
|---|---|---|
| Flat (Level 0) | No shadow, #010102 bg | Page background, deepest canvas |
| Subtle (Level 1) | rgba(0,0,0,0.03) 0px 1.2px 0px | Toolbar buttons, micro-elevation |
| Surface (Level 2) | rgba(255,255,255,0.05) bg + 1px solid rgba(255,255,255,0.08) border | Cards, input fields, containers |
| Inset (Level 2b) | rgba(0,0,0,0.2) 0px 0px 12px 0px inset | Recessed panels, inner shadows |
| Ring (Level 3) | rgba(0,0,0,0.2) 0px 0px 0px 1px | Border-as-shadow technique |
| Elevated (Level 4) | rgba(0,0,0,0.4) 0px 2px 4px | Floating elements, dropdowns |
| Dialog (Level 5) | Multi-layer stack: 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 | Popovers, command palette, modals |
| Focus | rgba(0,0,0,0.1) 0px 4px 12px + additional layers | Keyboard focus on interactive elements |
Shadow Philosophy: On dark surfaces, traditional shadows (dark on dark) are nearly invisible. Linear solves this by using semi-transparent white borders as the primary depth indicator. Elevation isn't communicated through shadow darkness but through background luminance steps — each level slightly increases the white opacity of the surface background (0.02 → 0.04 → 0.05), creating a subtle stacking effect. The inset shadow technique (rgba(0,0,0,0.2) 0px 0px 12px 0px inset) creates a unique "sunken" effect for recessed panels, adding dimensional depth that traditional dark themes lack.
"cv01", "ss03" on ALL text — these features are fundamental to Linear's typeface identity#08090a for marketing, #0f1011 for panels, #191a1b for elevated surfacesrgba(255,255,255,0.05) to rgba(255,255,255,0.08)) instead of solid dark bordersrgba(255,255,255,0.02) to rgba(255,255,255,0.05)#5e6ad2 / #7170ff) for primary CTAs and interactive accents only#f7f8f8 for primary text — not pure #ffffff, which would be too harsh#ffffff) as primary text — #f7f8f8 prevents eye strain"cv01", "ss03") — without them, it's generic Inter, not Linear's Inter| Name | Width | Key Changes |
|---|---|---|
| Mobile Small | <600px | Single column, compact padding |
| 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 |
#5e6ad2)#08090a)#0f1011)#191a1b)#f7f8f8)#d0d6e0)#8a8f98)#62666d)#7170ff)#828fff)rgba(255,255,255,0.08)rgba(255,255,255,0.05)#08090a background. Headline at 48px Inter Variable weight 510, line-height 1.00, letter-spacing -1.056px, color #f7f8f8, font-feature-settings 'cv01', 'ss03'. Subtitle at 18px weight 400, line-height 1.60, color #8a8f98. Brand CTA button (#5e6ad2, 6px radius, 8px 16px padding) and ghost button (rgba(255,255,255,0.02) bg, 1px solid rgba(255,255,255,0.08) border, 6px radius)."rgba(255,255,255,0.02) background, 1px solid rgba(255,255,255,0.08) border, 8px radius. Title at 20px Inter Variable weight 590, letter-spacing -0.24px, color #f7f8f8. Body at 15px weight 400, color #8a8f98, letter-spacing -0.165px."#d0d6e0 text, 9999px radius, 0px 10px padding, 1px solid #23252a border, 12px Inter Variable weight 510."#0f1011. Inter Variable 13px weight 510 for links, #d0d6e0 text. Brand indigo CTA #5e6ad2 right-aligned with 6px radius. Bottom border: 1px solid rgba(255,255,255,0.05)."#191a1b background, 1px solid rgba(255,255,255,0.08) border, 12px radius, multi-layer shadow stack. Input at 16px Inter Variable weight 400, #f7f8f8 text. Results list with 13px weight 510 labels in #d0d6e0 and 12px metadata in #62666d.""cv01", "ss03" on all Inter text — this is non-negotiable for Linear's lookrgba(255,255,255, 0.02 → 0.04 → 0.05) — never solid backgrounds on dark#5e6ad2 / #7170ff) is the only chromatic color — everything else is grayscale