seedflip
Archive
Mixtapes
Pricing
Sign in

Vercel Design System Breakdown: Colors, Typography, and Tokens

Vercel's design system is built on aggressive reduction. Pure black (#000000) and pure white (#FFFFFF) as the primary palette. Their own Geist font family for both sans-serif and monospace. Near-zero border radius on marketing pages. Minimal accent color usage. The result is a UI that feels expensive because of what it doesn't do. Replicating it means understanding where the restraint is applied and where it isn't.

Start with the Glacier seed →

Vercel looks expensive. That's the first thing people notice and the last thing they can explain. It's not complex. It's not detailed. It doesn't have gradients, illustrations, or color blocks. So where does the “premium” come from?

It comes from consistency applied to an absurdly narrow palette. Vercel uses fewer design decisions than almost any other developer tool, and the ones they make are absolute. When you reduce the system to its tokens, the restraint becomes visible.

The Color System

Vercel's marketing site operates on a two-color system with one gray ramp. That's it. There is no brand color in the way Stripe has indigo or Linear has purple. The brand IS the black-and-white contrast.

:root { /* Vercel-approximate color tokens */ --background: #000000; --foreground: #FFFFFF; /* The gray ramp does all the heavy lifting */ --gray-100: #F7F7F7; --gray-200: #E5E5E5; --gray-300: #D4D4D4; --gray-400: #A3A3A3; --gray-500: #737373; --gray-600: #525252; --gray-700: #404040; --gray-800: #262626; --gray-900: #171717; --gray-950: #0A0A0A; /* Accent: barely there */ --blue: #0070F3; --error: #EE0000; --success: #0070F3; --warning: #F5A623; }

The blue (#0070F3) appears only on links, primary buttons, and active states. It's functional, not decorative. You could remove it entirely and the site would still look like Vercel. That's the test of a truly neutral design system: the accent is optional.

The gray ramp is pure neutral. No warm undertones, no cool tints. True gray from white to black. This is a deliberate choice that gives Vercel its “developer tool” neutrality. Compare this to Anthropic (warm ivory undertones) or Supabase (cool blue-tinted darks). Vercel says nothing with its grays, which is itself a statement.

Typography: They Built Their Own Font

In 2023, Vercel released Geist, a custom typeface in two variants: Geist Sans and Geist Mono. This is the single most important design decision in their system. Before Geist, they used Inter. After Geist, the entire brand identity locked into place.

/* Vercel-approximate type system */ :root { --font-sans: 'Geist', -apple-system, system-ui, sans-serif; --font-mono: 'Geist Mono', 'SFMono-Regular', monospace; --text-xs: 12px; --text-sm: 14px; --text-base: 16px; --text-lg: 18px; --text-xl: 24px; --text-2xl: 32px; --text-3xl: 48px; --text-display: 64px; --leading-tight: 1.15; --leading-base: 1.5; --leading-relaxed: 1.625; --tracking-tight: -0.04em; --tracking-normal: -0.01em; }

Geist Sans is geometric but warm enough to read at body sizes. It's tighter than Inter (negative letter spacing by default) which gives text a more “designed” feel. Geist Mono is used for code blocks, terminal output, and technical labels. Having both from the same family creates visual continuity between marketing copy and code examples.

The display sizes are where Vercel's typography separates from everyone else. Large headlines (48-64px) with -0.04em letter spacing and tight line height (1.15) create the condensed, high-impact headings that define their marketing pages. The tightness is critical. At default letter spacing, the same headlines look 30% less intentional.

Shape and Space

Vercel uses minimal border radius on marketing pages. Buttons, cards, and containers are sharp or nearly sharp. This is the opposite of the rounded-everything trend that dominates most of the web.

:root { /* Vercel-approximate shape tokens */ --radius-none: 0px; --radius-sm: 4px; --radius-md: 6px; --radius-lg: 8px; --radius-full: 9999px; /* Marketing pages use none/sm almost exclusively */ /* Dashboard uses md/lg for interactive elements */ /* Borders: barely visible */ --border-default: 1px solid rgba(255, 255, 255, 0.08); --border-strong: 1px solid rgba(255, 255, 255, 0.15); /* Spacing: 8px base grid */ --space-1: 4px; --space-2: 8px; --space-3: 12px; --space-4: 16px; --space-6: 24px; --space-8: 32px; --space-12: 48px; --space-16: 64px; --space-24: 96px; --space-32: 128px; }

The whitespace is aggressive. Section padding on marketing pages runs 96-128px vertically. That's more empty space than most developers are comfortable with, and it's a huge part of why Vercel feels expansive and expensive. Tight content crammed together reads as cheap. Generous spacing reads as confident.

Borders are functionally invisible. On the dark marketing site, borders are white at 8% opacity. Enough to delineate structure. Not enough to add visual weight. On the light dashboard, borders use gray-200 or gray-300 (also barely perceptible). The philosophy is the same as Linear's: borders define regions without becoming a design element.

What Vercel Doesn't Use

The system is defined as much by exclusion as inclusion.

No gradients on core UI elements. The only gradients are subtle background effects on marketing pages (dark radial fades). Buttons, cards, and surfaces are flat.

No shadows on marketing. The dark background eliminates the need for depth. On the light dashboard, shadows are minimal and close-range (small blur, tight spread).

No illustrations. Vercel uses screenshots, code examples, and geometric shapes. Every visual element is either functional (showing real product UI) or abstract (triangles, the logo mark). Nothing hand-drawn, nothing playful.

No color for decoration. Color appears only when it carries meaning (status indicators, links, errors). The marketing site is almost entirely grayscale. This restraint is what makes the blue accent feel intentional when it does appear.

You suspected this already: Vercel looks expensive because of what they DON'T use. Most brands add elements to feel premium. Vercel removed them. The triangle logo, the Geist type, and the black/white contrast do all the work.

Why “Make It Look Like Vercel” Fails

Developers try to recreate the Vercel aesthetic by setting a black background, using Inter, and calling it done. The result never looks right because they added things Vercel doesn't have and missed the things it does.

The mistakes are consistent: border radius too large (12px instead of 0-4px), letter spacing too loose (default instead of -0.04em), not enough whitespace (24px padding where Vercel uses 96px), borders too visible (rgba 0.15 where Vercel uses 0.08), accent color overused (blue everywhere instead of links only).

The Glacier seed captures this logic. It's a minimal, neutral design system built around the same structural philosophy: tight type, sharp edges, restrained color, generous space. Load it and the demo landing page shows what that philosophy looks like applied as a coherent token set, not approximated from a screenshot.

Featured minimal dark seed
Glacier
Ice blue precision tools
Inter+Inter
lightcoolclean
View seed →

The Vercel system is proof that a design system doesn't need complexity to feel premium. It needs conviction. Two colors, one font family, sharp edges, and the discipline to leave everything else out.


For another dark-mode system built on restraint, read The Linear Design System Breakdown. For a warm-toned contrast, see Anthropic Design Language.

Ready to stop guessing?

One flip. Complete design system. Free CSS export.

Start with the Glacier seed →