taste-skill / Compare styles / Linear vs Dub

Linear vs Dub: design style comparison

Linear is Dark Precision SaaS & Industrial Craftsmanship; Dub is Modern Link Attribution & Crisp Satoshi/Geist Minimalist. 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)
Dub style · light
Ship the product, not the pixels.
Preview text rendered with the extracted Dub canvas, text, muted and accent tokens.
Sign up Start for free
Card on extracted card recipe
Accent link: #000000 · border #E5E5E5

Key differences

Token table

TokenLinearDub
Canvas#08090A#FAFAFA
Surface#0F1011#FFFFFF
Text#F7F8F8#171717
Muted text#8A8F98#737373
Accent#5E6AD2#000000
Borderrgba(255, 255, 255, 0.08)#E5E5E5
Heading fontInter VariableSatoshi
Body fontInter VariableInter / Satoshi
Mono fontBerkeley MonoGeistMono
H164px / -0.022em (w510)48px / 1.15 (w500)
Button radius9999px8px
Button height same32px32px
Most-used radius8px12px
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.05) 0px 1px 2px 0px
Easingcubic-bezier(0.25, 0.46, 0.45, 0.94)cubic-bezier(0.4, 0, 0.2, 1)
Duration0.7s0.15s
Container max-width1436px1080px
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 16px8px#000000
#FFFFFF
1px solid #00000014px / 400
Start for free38px8px 20px8px#000000
#FFFFFF
1px solid #00000014px / 500
Start for free40px0px 20px8px#FFFFFF
#171717
1px solid #E5E5E514px / 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, linear, hairline-borders, bento-grid, issue-tracker, micro-shadows, indigo, carbon-black, dashboard, ai-agents.

Pick Dub if you want Airy #FAFAFA canvas with #FFFFFF analytics cards, #E5E5E5 1px borders, geometric Satoshi 48px display headings, GeistMono shortlinks, and high-contrast #000000 8px-radius primary buttons — signals: light, analytics, marketing, dub, satoshi, geist-mono, clean, bento.

Shared traits: saas, minimalist.

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).

Dub never:

  • NEVER substitute generic uncalibrated gray backgrounds for Dub’s exact #FAFAFA canvas and #FFFFFF surface pairing.
  • NEVER replace Satoshi display typography or ignore its signature scale (48px / 1.15 (w500)).
  • NEVER use thick opaque borders that clash with #E5E5E5 (1px solid #E5E5E5).

Go deeper

Values extracted from https://linear.app and https://dub.co. 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 →