Rare Beauty vs OpenAI
61 token-level differences between these two design systems.
Background
#fdf6f0 → #ffffff Text
#1a1a1a → #000000 Brand
#9b6dd4 → #000000 Border
#e8dccd → rgba(0,0,0,0.1) Display font
Recoleta → OpenAI Sans Body size
16px → 16px colors 49 changed
~
bg #fdf6f0 → #ffffff ~
bg-soft #faf0e6 → #f1f1f1 ~
surface #ffffff → #fafafa ~
brand #9b6dd4 → #000000 ~
brand-hover #8557c0 → #1a1a1a ~
text #1a1a1a → #000000 ~
text-muted #5a5a5a → #5d5d5d ~
text-faint #bcbcbc → #b4b4b4 ~
link #9b6dd4 → #000000 ~
link-hover #6e44a8 → #5d5d5d ~
border #e8dccd → rgba(0,0,0,0.1) ~
border-strong #cdb89c → rgba(0,0,0,0.16) ~
border-soft #f0e6d8 → rgba(0,0,0,0.08) ~
success #3d8b62 → #10a37f ~
warning #cb9c45 → #d97706 ~
danger #a85353 → #cc2525 ~
info #9b6dd4 → #3a3a3a +
bg-section #f7f7f7 +
surface-card #ffffff +
surface-hover rgba(0,0,0,0.04) +
surface-press rgba(0,0,0,0.08) +
text-subtle #8e8e8e +
text-on-dark #ededed +
brand-active #2c2c2c +
brand-on-dark #ffffff +
accent #10a37f +
accent-hover #0d8a6b +
accent-soft #d6f3e8 +
link-visited #000000 +
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 −
bg-deeper #f5e8d8 −
bg-warm #fdf3e8 −
surface-soft #fdf8f0 −
surface-cream #f9efe0 −
brand-pressed #6e44a8 −
brand-deep #583590 −
brand-tint #e8dbf5 −
brand-soft #d2bfe8 −
text-soft #8a8a8a −
selected-bg #e8dbf5 −
border-brand #9b6dd4 −
blush #e8a8a8 −
rose #d4847a −
amber #cb9c45 typography 5 changed
~
display {"family":"Recoleta","size":72} → {"family":"OpenAI Sans","size":48} ~
h1 {"family":"Recoleta","size":36} → {"family":"OpenAI Sans","size":40} ~
h2 {"family":"Recoleta","size":28} → {"family":"OpenAI Sans","size":32} ~
body {"family":"Inter","size":16} → {"family":"OpenAI Sans","size":16} ~
label {"family":"SFMono-Regular","size":12} → {"family":"OpenAI Sans Mono","size":12} radius 2 changed
~
button 6px → 8px ~
card 8px → 12px spacing 5 changed
~
xs 0px → 4px ~
sm 4px → 8px ~
md 12px → 16px ~
lg 24px → 32px ~
xl 40px → 48px