Terminal Green
#297a3aGreen text accent for links, tags, and emphasized short phrases. Use as a supporting accent, not as a status color
Vercel's design system is an exercise in disciplined monochrome: a near-white canvas (#fafafa), black typography, hairline borders, and the complete absence of decorative color. The visual language reads like a developer terminal rendered in print — Geist Sans whispers at hero scale with weight 400-450 and -0.06em tracking, while Geist Mono stamps labels, metadata, and code samples in 11-13px caps. Buttons are sharp 6px-radius pills or rectangles in pure black-on-white or white-on-black. The system trusts contrast and typography hierarchy over color, using the triangle mark (▲) and a two-line wordmark as the only brand ornament. Surfaces stack as #fafafa → #ebebeb → #171717, creating depth through tonal value shifts rather than shadow or color. Every element is built on a 4px grid with compact density, producing an interface that feels like an engineer's notebook — precise, functional, and unafraid of empty space.
#297a3aGreen text accent for links, tags, and emphasized short phrases. Use as a supporting accent, not as a status color
#ff1744Decorative gradient sweep for marketing hero accents — the only place color is permitted to exist
#ffdc30Decorative two-stop gradient for feature callouts — yellow-to-blue sweep
#fafafaPage canvas, card surfaces, light button fills — the default background that everything else sits on
#ffffffElevated card surfaces, inset highlights, input fields
#ebebeb1px borders on buttons, links, and cards — visible at high zoom, invisible at speed
#c9c9c9Disabled text, muted labels, brand name watermarks in customer logos
#a8a8a8Tertiary text, placeholder copy, subtle icon fills
#8f8f8fFooter micro-copy, secondary metadata
#7d7d7dCustomer brand names in logo strips, muted heading variants
#666666Muted captions, helper text, and de-emphasized UI labels.
#4d4d4dBody paragraph text, card descriptions, button secondary labels — where reading weight lives
#171717Primary headings, nav borders, dark button fills, list markers — near-black that avoids pure #000 harshness
#000000SVG icon fills, logo marks, the triangle brand glyph — pure black reserved for graphic elements only
64px · 400 · 1 · -3.84px trackingThe quick brown fox jumps
56px · 450 · 1 · -3.36px trackingThe quick brown fox jumps
30px · 400 · 1.1 · -1.5px trackingThe quick brown fox jumps
16px · 400 · 1.5The quick brown fox jumps
14px · 400 · 1.43The quick brown fox jumps
13px · 400 · 1.54The quick brown fox jumps
12px · 400 · 1.33The quick brown fox jumps
11px · 400 · 1.5The quick brown fox jumps
Font samples use locally available fonts and fallbacks.
Primary interface and display typeface — custom geometric sans from Vercel with tight tracking on large sizes (-0.06em at 56-64px, -0.05em at 30px). Weight 450 for hero headlines is the signature choice: heavier than a light but lighter than a semibold, producing a tone that is confident without shouting.
Monospace secondary typeface for labels, code blocks, CLI output panels, metadata tags, and uppercase eyebrows. The 8px/600/uppercase combination stamps tiny wordmarks with mechanical precision. Wide letter-spacing (0.071em) in mono gives uppercase labels breathing room.
2px6px9999px6px1px2px3px4px6px8px12px14px16px20px24px32px40px44px208px256px276pxBackground #171717, text #ffffff, 6px radius, 12px horizontal padding, Geist Sans 14px/400. Used for Deploy Now, Sign Up. The only element that reaches 'Obsidian' black, making it unmistakable as the page's primary call.
Background transparent, text #4d4d4d, 1px border #ebebeb (rendered via box-shadow ring), 6px radius, 20px all padding, Geist Sans 14px/400. Used for Talk to Sales, Get a Demo. Reads as 'available' without asserting hierarchy.
Background #171717 or #ffffff, text contrasting, 9999px radius (full pill), 12px horizontal padding, 0 vertical padding for tight header use.
No background, no border, 0px radius, color #171717 or #4d4d4d, 14-16px Geist Sans. Used for nav items and inline references.
Background #ffffff, 6px radius, 1px border via stacked box-shadows: inset ring rgba(0,0,0,0.08) + outer ring #fafafa, 16px padding. The double-ring technique creates a border that survives any background — a signature Vercel trick.
Background #171717, white text, 6px radius. Used sparingly (e.g., the Passport card) to break the monotony of an all-light layout.
Light background with Geist Mono 12-13px text in #171717, prefixed with ▲ triangle marker in #171717 for commands, ✓ checkmark in #297a3a for confirmations. The terminal IS the marketing.
7+ logos in a row with 24-32px gaps. Customer names render in Geist Sans at the customer's actual brand treatment, faded to #7d7d7d for the page's neutral context.
Geist Mono 11px/400, 0.071em letter-spacing, uppercase, color #171717. Pairs with a 12px gap before the heading it announces. Examples: 'FOR CODING AGENTS', 'TO SHIP APPS AND AGENTS'.
Height 64px, sticky, background #fafafa with backdrop-blur (20-48px), wordmark left (▲ + Vercel), nav items center-left at 14px Geist Sans #171717, action cluster right (Get a Demo ghost, Log In ghost, Sign Up filled). No bottom border — separation comes from spacing alone.
Three-column asymmetric layout: headline (56-64px, -0.06em tracking, weight 450) left, black triangle glyph center, eyebrow stack right. No background image. The triangle floats with no border or fill — pure black silhouette.
Large cards with the Bordered Card treatment, 16-24px padding, title at 30px heading weight, description at 14-16px body in #4d4d4d. Each card contains a small product mockup (CLI output, passport, framework logo) as visual evidence.
#fafafaDefault page background — the warm off-white that makes the system feel paper-like rather than screen-like
#ffffffElevated cards sit one step above canvas in brightness, distinguished by hairline border not shadow
#171717Dark inverted panels (e.g., Passport card) flip the value scale for visual punctuation in a grid
Vercel deliberately avoids drop shadows as a depth mechanism. Elevation is communicated through a hairline-border system: a 1px ring of rgba(0,0,0,0.08) wrapped in a 1px ring of canvas color (#fafafa) creates borders that survive any background without darkening the content beneath. This produces a flat, print-like aesthetic where 'above the surface' means 'outlined', never 'shadowed'.
0 0 0 1px rgba(0,0,0,0.08), 0 0 0 2px #fafafa
0 0 0 1px #ebebeb
Max-width 1280px centered container with generous horizontal padding (24-48px). The hero uses an asymmetric three-zone composition: oversized headline left, brand glyph center, eyebrow stack right. Below the hero, content flows in alternating bands: a full-width customer logo strip, then a two-column 'build agents' section with heading left and product mockup right, then a three-up feature card grid. Sections are separated by 96-128px vertical gaps with no dividers or background shifts. The nav is a single 64px sticky bar with backdrop blur. Card grids consistently use a 2-column or 3-column layout with 16-24px gaps. The overall density is compact — text is comfortable to read, whitespace is generous, but the type scale and component sizing keep the page from feeling airy.
Imagery is sparse and always functional. The primary visual element is the black triangle (▲) — a geometric brand mark that appears at hero scale as a floating silhouette. Customer logos in the social-proof strip use each brand's actual wordmark in grayscale. Product mockups (Notion chat UI, CLI terminal output, passport card) are embedded as light-mode screenshots within bordered cards. There is no photography, no illustration, no 3D — the system is pure typography and geometric shapes on white paper.
**Quick Color Reference** - Background: #fafafa - Text: #171717 - Border: #ebebeb - Accent: #000000 (triangle mark only) - primary action: #171717 (filled action) **Example Component Prompts** 1. Create a hero headline: Geist Sans 56px weight 450, color #171717, letter-spacing -3.36px, line-height 1.0. Below it, a filled black button (background #171717, text #ffffff, 6px radius, 12px 20px padding, Geist Sans 14px weight 400) and a ghost button beside it (background transparent, text #4d4d4d, 1px border #ebebeb, 6px radius, 20px padding). 2. Create a feature card: background #ffffff, 6px radius, border via stacked box-shadows (0 0 0 1px rgba(0,0,0,0.08), 0 0 0 2px #fafafa), 16px padding. Title in Geist Sans 30px weight 400 with -1.5px tracking, color #171717. Description in Geist Sans 14px weight 400, color #4d4d4d. 3. Create an eyebrow label: Geist Mono 11px weight 400, 0.071em letter-spacing, uppercase, color #171717. Pair with 12px margin-bottom before the heading it introduces. 4. Create a CLI output panel: background #ffffff with 1px border #ebebeb, 6px radius, 16px padding. Commands prefixed with ▲ in #171717, confirmations prefixed with ✓ in #297a3a, all text in Geist Mono 12px weight 400, color #171717. 5. Create a top nav bar: height 64px, background #fafafa with backdrop-filter blur(20px), flex row. Left: ▲ glyph in #000000 + 'Vercel' in Geist Sans 14px weight 500. Center-left: nav items in Geist Sans 14px weight 400, color #171717, 24px gaps. Right: ghost button (border #ebebeb, text #4d4d4d, 6px radius) + filled button (background #171717, text #ffffff, 6px radius, pill-shaped at 9999px radius for tight header use).
The type system has only two families and 8 sizes. Headlines are weight 400-450 (not 700), tracking tight at -0.06em, line-height 1.0 — they sit on a single line, dense and confident. Body is 14-16px weight 400 at 1.43-1.5 line-height. The only color in the type system is the value shift from #171717 to #4d4d4d to #666666 — never a chromatic tint. Labels and metadata are ALWAYS monospace, ALWAYS uppercase, ALWAYS small (8-12px). This binary — Geist Sans for reading, Geist Mono for stamping — is the system's most recognizable rule.
The ▲ glyph is the brand's most deployed element. It appears as: the wordmark icon, the CLI command prefix, a decorative hero silhouette, a loading indicator, and an interactive collapse marker. Always rendered in #000000 at 1:1 aspect ratio, never with a border, never with a fill other than black. It is the only element in the system permitted to be pure #000000 — everything else is #171717 or lighter.
Same sharp 6-8px radii, monochromatic light canvas, and tight-tracking geometric sans-serif headlines — Linear and Vercel share a print-engineering aesthetic
Similar near-black on warm-white palette, monospace CLI panels, and the discipline of using one accent color (or none) across an entire interface
Hairline borders, generous whitespace, and the trust that typography hierarchy alone can carry a page without decorative color or imagery
Developer-marketing approach: terminal output as hero, monospace labels, the same paper-white canvas and pure-black wordmark
High-contrast achromatic system with a single chromatic note for state, trusting typographic weight and spacing to create hierarchy
Use the design exports or connect Musterlab to your AI.