Rainbow vs BMW M
58 token-level differences between these two design systems.
Background
#ffffff → #0a0a0a Text
#000000 → #e6e6e6 Brand
#ff54bb → #e22718 Border
#e6e6ea → rgba(255,255,255,0.12) Display font
SF Pro Rounded Black → BMW Type Next Latin Body size
16px → 16px colors 49 changed
~
bg #ffffff → #0a0a0a ~
surface #ffffff → #0a0a0a ~
text #000000 → #e6e6e6 ~
text-muted #6b6b6f → #a3a3a3 ~
brand #ff54bb → #e22718 ~
on-brand #0000ee → #ffffff ~
link #0000ee → #0066b1 ~
link-hover #0000cc → #1c69d4 ~
border #e6e6ea → rgba(255,255,255,0.12) ~
border-strong #000000 → rgba(255,255,255,0.24) +
bg-elev #161616 +
bg-strong #1f1f1f +
bg-light #ffffff +
bg-light-soft #f5f5f5 +
surface-card #161616 +
surface-card-hover #1f1f1f +
text-strong #ffffff +
text-faint #6b6b6b +
text-on-light #0a0a0a +
brand-hover #b81f12 +
brand-active #9d1a0e +
m-blue #0066b1 +
m-violet #5b1f7a +
m-red #e22718 +
m-blue-electric #1c69d4 +
m-gradient-start #0066b1 +
m-gradient-mid #5b1f7a +
m-gradient-end #e22718 +
border-light #e6e6e6 +
ring #e22718 +
shadow-soft rgba(0,0,0,0.6) +
shadow-elev rgba(0,0,0,0.8) +
shadow-deep rgba(0,0,0,0.95) +
glow-red rgba(226,39,24,0.4) +
success #22c55e +
warning #f59e0b +
danger #e22718 +
info #0066b1 −
surface-soft #f7f7f8 −
text-subtle #9a9aa0 −
brand-orange #ff8a00 −
brand-blue #3897ff −
brand-purple #9b4dff −
on-brand-black #000000 −
focus-ring rgba(255,84,187,0.45) −
scrim rgba(0,0,0,0.45) −
semantic-up #1db954 −
semantic-down #ff3b30 −
semantic-warning #ff8a00 typography 5 changed
~
display {"family":"SF Pro Rounded Black","size":72} → {"family":"BMW Type Next Latin","size":72} ~
h1 {"family":"SF Pro Rounded Black","size":40} → {"family":"BMW Type Next Latin","size":40} ~
h2 {"family":"SF Pro Rounded Black","size":32} → {"family":"BMW Type Next Latin","size":32} ~
body {"family":"SF Pro Rounded Black","size":16} → {"family":"BMW Type Next Latin","size":16} ~
label {"family":"SFMono-Regular","size":13} → {"family":"JetBrains Mono","size":11} radius 2 changed
~
button 14px → 8px ~
card 20px → 14px spacing 2 changed
~
lg 32px → 48px ~
xl 64px → 96px