Diff

OpenAI vs Windsurf

55 token-level differences between these two design systems.

Role tokens
Background
#ffffff #f6eede
Text
#000000 #0b100f
Brand
#000000 #34e8bb
Border
rgba(0,0,0,0.1) #c0c1c6
Display font
OpenAI Sans tomatoGrotesk
Body size
16px 16px
colors 46 changed
~ bg #ffffff #f6eede
~ bg-soft #f1f1f1 #fbf7ee
~ surface #fafafa #ffffff
~ text #000000 #0b100f
~ text-muted #5d5d5d #5a615d
~ text-faint #b4b4b4 #8a8f8b
~ text-on-dark #ededed #ffffff
~ brand #000000 #34e8bb
~ on-brand #ffffff #003326
~ link #000000 #0b100f
~ link-hover #5d5d5d #0fbf97
~ border rgba(0,0,0,0.1) #c0c1c6
~ border-soft rgba(0,0,0,0.08) #e3e0d6
~ success #10a37f #0fbf97
~ warning #d97706 #c08a2e
~ danger #cc2525 #d8413f
~ info #3a3a3a #4380b4
+ surface-dark #0b100f
+ surface-dark-soft #141a18
+ text-body #3a423f
+ text-on-dark-muted rgba(255, 255, 255, 0.7)
+ brand-deep #0fbf97
+ border-dark rgba(255, 255, 255, 0.12)
+ ring rgba(67, 128, 180, 0.5)
+ shadow-tint rgba(11, 16, 15, 0.10)
bg-section #f7f7f7
surface-card #ffffff
surface-hover rgba(0,0,0,0.04)
surface-press rgba(0,0,0,0.08)
text-strong #000000
text-subtle #8e8e8e
text-on-brand #ffffff
brand-hover #1a1a1a
brand-active #2c2c2c
brand-on-dark #ffffff
accent #10a37f
accent-hover #0d8a6b
accent-soft #d6f3e8
link-visited #000000
border-strong rgba(0,0,0,0.16)
scrim rgba(0,0,0,0.5)
shadow-card rgba(0,0,0,0.06)
shadow-elev rgba(0,0,0,0.10)
shadow-modal rgba(0,0,0,0.20)
warning-soft #fdf3e7
danger-soft #fae5e5
typography 5 changed
~ display {"family":"OpenAI Sans","size":48} {"family":"tomatoGrotesk","size":72}
~ h1 {"family":"OpenAI Sans","size":40} {"family":"tomatoGrotesk","size":48}
~ h2 {"family":"OpenAI Sans","size":32} {"family":"tomatoGrotesk","size":40}
~ body {"family":"OpenAI Sans","size":16} {"family":"Inter","size":16}
~ label {"family":"OpenAI Sans Mono","size":12} {"family":"SFMono-Regular","size":13}
radius identical
No differences.
spacing 4 changed
~ xs 4px 0px
~ sm 8px 4px
~ md 16px 12px
~ xl 48px 64px
↻ Swap direction · Windsurf → OpenAI