Diff

Vercel vs Threads

86 token-level differences between these two design systems.

Role tokens
Background
#fafafa #000000
Text
#171717 #ffffff
Brand
#0070f3 #ffffff
Border
hsla(0, 0%, 90%, 1) rgba(243,245,247,0.15)
Display font
Geist Instagram Sans
Body size
16px 15px
colors 79 changed
~ bg #fafafa #000000
~ surface #ffffff #181818
~ text #171717 #ffffff
~ text-faint #a3a3a3 rgba(243,245,247,0.3)
~ brand #0070f3 #ffffff
~ link #0070f3 rgba(243,245,247,0.5)
~ link-hover #0070f3 #ffffff
~ on-brand #ffffff #000000
~ border hsla(0, 0%, 90%, 1) rgba(243,245,247,0.15)
~ border-strong hsla(0, 0%, 80%, 1) rgba(243,245,247,0.3)
~ success #0070f3 #22c55e
~ warning #f5a623 #fab421
~ danger #e00 #fe0169
~ info #0070f3 #1da1f2
+ bg-light #ffffff
+ bg-soft #101010
+ bg-deep #000000
+ surface-hover #1f1f1f
+ surface-elevated #252525
+ surface-soft #0a0a0a
+ text-strong #ffffff
+ text-body #f5f5f5
+ text-muted rgba(243,245,247,0.5)
+ text-soft rgba(243,245,247,0.4)
+ text-on-light #000000
+ text-on-light-muted rgba(0,0,0,0.5)
+ text-on-brand #ffffff
+ primary-action #ffffff
+ primary-action-hover #e0e0e0
+ secondary-action #000000
+ border-subtle rgba(243,245,247,0.08)
+ on-bg #ffffff
+ shadow-color rgba(0,0,0,0.4)
+ reply-icon rgba(243,245,247,0.5)
+ reply-active #ffffff
+ repost-icon rgba(243,245,247,0.5)
+ repost-active #22c55e
+ like-icon rgba(243,245,247,0.5)
+ like-active #fe0169
+ share-icon rgba(243,245,247,0.5)
+ thread-line rgba(243,245,247,0.2)
+ follow-button-bg #ffffff
+ followed-button-bg transparent
+ verified-blue #1da1f2
+ notification-dot #fe0169
bg-pure #ffffff
bg-elev #f5f5f5
bg-deeper #ededed
bg-ink #0a0a0a
bg-pure-black #000000
surface-elev #fafafa
text-pure #000000
text-secondary #525252
text-tertiary #737373
text-on-dark #ededed
text-on-dark-soft #a3a3a3
brand-hover #0061d5
brand-deep #0050b3
brand-soft rgba(0, 112, 243, 0.10)
brand-tint rgba(0, 112, 243, 0.06)
focus hsla(212, 100%, 48%, 1)
cta-bg #171717
cta-text #ffffff
cta-bg-secondary #ffffff
cta-text-secondary #171717
border-soft hsla(0, 0%, 95%, 1)
border-deep hsla(0, 0%, 70%, 1)
shadow-ambient rgba(0, 0, 0, 0.04)
shadow-card rgba(0, 0, 0, 0.04)
shadow-elev rgba(0, 0, 0, 0.06)
shadow-deep rgba(0, 0, 0, 0.10)
scrim rgba(0, 0, 0, 0.40)
gradient-conic conic-gradient(from 230deg at 50% 50%, #0070f3, #00b8ff, #7928ca, #ff0080, #0070f3)
gradient-blue linear-gradient(135deg, #0070f3 0%, #00b8ff 100%)
gradient-edge linear-gradient(180deg, transparent 0%, rgba(0, 112, 243, 0.20) 100%)
success-soft rgba(0, 112, 243, 0.10)
warning-soft rgba(245, 166, 35, 0.10)
danger-soft rgba(238, 0, 0, 0.10)
info-soft rgba(0, 112, 243, 0.10)
typography 5 changed
~ display {"family":"Geist","size":72} {"family":"Instagram Sans","size":56}
~ h1 {"family":"Geist","size":40} {"family":"Instagram Sans","size":40}
~ h2 {"family":"Geist","size":32} {"family":"Instagram Sans","size":32}
~ body {"family":"Geist","size":16} {"family":"Instagram Sans","size":15}
~ label {"family":"Geist Mono","size":11} {"family":"JetBrains Mono","size":12}
radius 2 changed
~ button 6px 12px
~ card 8px 18px
spacing identical
No differences.
↻ Swap direction · Threads → Vercel