taste-skill / Compare styles / Linear vs Vercel

Linear vs Vercel: design style comparison

Linear is Dark Precision SaaS & Industrial Craftsmanship; Vercel is Geist Architectural Grid & Swiss Precision Monochrome. Both were extracted with the same taste-skill pipeline, so every value below is directly comparable. 17 of 18 tracked tokens differ.

Side-by-side preview

Linear style · dark
Ship the product, not the pixels.
Preview text rendered with the extracted Linear canvas, text, muted and accent tokens.
Sign up Get started
Card on extracted card recipe
Accent link: #5E6AD2 · border rgba(255, 255, 255, 0.08)
Vercel style · light
Ship the product, not the pixels.
Preview text rendered with the extracted Vercel canvas, text, muted and accent tokens.
Sign Up Deploy now
Card on extracted card recipe
Accent link: #0070F3 · border #EBEBEB

Key differences

Token table

TokenLinearVercel
Canvas#08090A#FAFAFA
Surface#0F1011#FFFFFF
Text#F7F8F8#171717
Muted text#8A8F98#4D4D4D
Accent#5E6AD2#0070F3
Borderrgba(255, 255, 255, 0.08)#EBEBEB
Heading fontInter VariableGeistSans
Body fontInter VariableGeistSans
Mono fontBerkeley MonoGeistMono
H164px / -0.022em (w510)64px / -0.06em (w400)
Button radius9999px6px
Button height same32px32px
Most-used radius8px6px
Most-used shadowrgba(255, 255, 255, 0.05) 0px 0px 0px 1px insetrgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgb(235, 235, 235) 0px 0px 0px 1px
Easingcubic-bezier(0.25, 0.46, 0.45, 0.94)cubic-bezier(0.4, 0, 0.2, 1)
Duration0.7s0.1s
Container max-width1436px1448px
Modedarklight

Primary buttons

RenderedHeightPaddingRadiusBackground / TextBorderFont
Sign up32px0px 12px9999px#E5E5E6
#08090A
1px solid #E5E5E613px / 510
Get started44px0px 20px9999px#E5E5E6
#08090A
1px solid #E5E5E616px / 510
Contact sales44px0px 20px9999pxrgba(255, 255, 255, 0.05)
#F7F8F8
none16px / 510
RenderedHeightPaddingRadiusBackground / TextBorderFont
Sign Up32px0px 6px6px#171717
#FFFFFF
none14px / 500
Deploy now40px0px 12px9999px#171717
#FFFFFF
none16px / 500
Log In32px0px 6px6px#FFFFFF
#171717
none14px / 500

Which style should you pick?

Pick Linear if you want Ultra-dark #08090A carbon canvas + 1px rgba(255,255,255,0.08) translucent hairlines + Inter Variable 510 weight (-0.022em) + Berkeley Mono telemetry — signals: dark, precision, saas, linear, hairline-borders, bento-grid, issue-tracker, minimalist, micro-shadows, indigo, carbon-black, dashboard, ai-agents.

Pick Vercel if you want Architectural #FAFAFA / #FFFFFF daylight grid with exposed 1px #EBEBEB structural hairlines, corner crosshair markers, ultra-tight -0.06em GeistSans display type, and #171717 monochrome CTAs — signals: light, monochrome, grid, crosshairs, geist, vercel, developer, cloud, infra, minimal, swiss, high-contrast, 1px-grid.

Rules that differ

Linear never:

  • NEVER use pure #000000 for large card surfaces or pure #FFFFFF for body text—always use #08090A canvas, #0F1011/#141516 cards, and #F7F8F8 primary text.
  • NEVER use thick opaque gray borders (border-gray-700, border-zinc-600)—always use 1px translucent white hairlines (border-white/[0.08] or border-white/[0.05]).
  • NEVER use standard font-bold (700 or 800) on large headlines—Linear uses custom variable medium weight (font-[510]) with tight negative tracking (tracking-[-0.022em]) and leading-none (1.0).

Vercel never:

  • NEVER substitute generic uncalibrated gray backgrounds for Vercel’s exact #FAFAFA canvas and #FFFFFF surface pairing.
  • NEVER replace GeistSans display typography or ignore its signature scale (64px / -0.06em (w400)).
  • NEVER use thick opaque borders that clash with #EBEBEB (1px solid #EBEBEB).

Go deeper

Values extracted from https://linear.app and https://vercel.com. Not affiliated with either company.

Get all 30 full SKILL.md specs (Cursor / Claude Code / Codex ready) plus the Pro growth skills.

See taste-skill Pro →