Design System
Vercel logo

Vercel

Vercel's website is the visual thesis of developer infrastructure made invisible — a design system so restrained it borders on philosophical. The page is overwhelmingly white (#ffffff) with near-black (#171717) text, creating a gallery-like emptiness where every element earns its pixel. This isn't minimalism as decoration; it's minimalism as engineering

01

Color Palette

Brand

Accent

Neutrals

Semantic

02

Typography

Type Scale

Rendered in system-ui to clearly show scale & weight.

display48px · 600 · 1.25
Design at scale
32px32px · 600 · 1.25
Section heading
heading-lg24px · 600 · 1.4
Subheading
body16px · 400 · 1.5
Body text. The quick brown fox jumps over the lazy dog. Designed for readable line-height in long-form content.
small12px · 400 · 1.5
Supporting text
caption12px · 400 · 1.5
Caption · timestamp · 2026
label10px · 500 · 1.5
BADGE / LABEL

Fonts

Primary
Geist
Open · OFL
Vercel's open-source typeface family.
Install via Vercel
Monospace
Geist Mono
Open · OFL
Install via Vercel
03

Spacing & Shape

Spacing

PurposeValuePreview
Densitycomfortable
Base unit8px
Section gap16px
Card padding12px
Element gap8px

Border Radius

ElementValuePreview
inlineMicro2px
smallMicro2px
smallSubtle4px
buttonsStandard6px
linksStandard6px
functionalStandard6px
cardsComfortable8px
listComfortable8px
featuredImage12px
imageImage12px
tabLarge9999px
largeXL9999px

Borders

ElementValuePreview
Section Borders1px solid #171717

Elevation

Subtle
Default
Elevated
Floating
Modal
04

Guidelines

Do and Don't guidelines parsed from DESIGN.md.

Do

  • Use Geist Sans with aggressive negative letter-spacing at display sizes (-2.4px to -2.88px at 48px)
  • Use shadow-as-border (0px 0px 0px 1px rgba(0,0,0,0.08)) instead of traditional CSS borders
  • Enable "liga" on all Geist text — ligatures are structural, not optional
  • Use the three-weight system: 400 (body), 500 (UI), 600 (headings)
  • Apply workflow accent colors (Red/Pink/Blue) only in their workflow context
  • Use multi-layer shadow stacks for cards (border + elevation + ambient + inner highlight)
  • Keep the color palette achromatic — grays from #171717 to #ffffff are the system
  • Use #171717 instead of #000000 for primary text — the micro-warmth matters

Don't

  • n't use positive letter-spacing on Geist Sans — it's always negative or zero
  • n't use weight 700 (bold) on body text — 600 is the maximum, used only for headings
  • n't use traditional CSS border on cards — use the shadow-border technique
  • n't introduce warm colors (oranges, yellows, greens) into the UI chrome
  • n't apply the workflow accent colors (Ship Red, Preview Pink, Develop Blue) decoratively
  • n't use heavy shadows (> 0.1 opacity) — the shadow system is whisper-level
  • n't increase body text letter-spacing — Geist is designed to run tight
  • n't use pill radius (9999px) on primary action buttons — pills are for badges/tags only
05

Components

Buttons

button-primary
Background#171717
Text#ffffff
Radius6
Padding8px 16px
Use: Primary CTA Start Deploying
button-secondary
Background#ffffff
Text#171717
Radius6
Padding0 6px
Use: Shadow-bordered secondary; ring 1px #ebebeb

Badges

badge
badge
Background#ebf5ff
Text#0068d6
Radius9999
Padding0 10px
Font12px/500
Use: Status badges, tags, feature labels

Cards

card
card
Background#ffffff
Radius8
Use: Shadow-bordered card; border via 1px shadow

Inputs

input
Background#ffffff
Radius6
Use: Border via shadow technique; focus blue ring

Tabs

TabTabTab
nav
Background#ffffff
Text#171717
Font14px/500
Activeweight 600 or underline
Use: Sticky horizontal nav; dark pill CTAs

Related design systems