Spotify Design System
Dark · Generated 18/04/2026 · 85 colors · 27 type tokens · 22 spacing steps · 17 breakpoints · 11 motion tokens
v1.0.0
Color Palette
Core Colors
Black
#000000
Dark Gray 3
#121212
Dark Gray 2
#1F1F1F
Dark Gray 13
#282828
Dark Gray 8
#333333
White
#FFFFFF
Green (Brand)
#1ED760
Green 3
#1DB954
Text Colors
Light Gray
#B3B3B3
Mid Gray
#696969
Dark Gray
#555555
Mid Gray 2
#7C7C7C
Dark Gray 4
#656565
Mid Gray 4
#808080
Light Gray 4
#C5C5C5
Dark Gray 5
#101010
Blue 2 (link)
#0000EE
Album Art — Generated Palette (sample)
Blue
#3860BE
Green 2
#468254
Dark Green
#346E4A
Orange
#A86741
Cyan
#438080
Cyan 2
#4F7F77
Pink
#AF2896
Pink 2
#E10096
Purple
#584870
Dark Purple
#302048
Purple 3
#703090
Dark Red
#680808
Red
#A9635C
Red 7
#B82810
Dark Yellow
#857809
Dark Cyan
#0080AF
Border & Shadow Colors
Cyan 3
#32AE88
Light Gray 3
#C1C1C1
Light Gray 6
#D8D8D8
Mid Gray 7
#707070
Light Gray 7
#BBBBBB
Light Gray 2
#C7C5C7
Mid Gray 6
#999999
Typography
Base Font · SpotifyMixUI / Circular
SpotifyMixUI
Music for everyone. Millions of songs and podcasts. No credit card needed.
Regular · 400 Medium · 500 Semibold · 600 Bold · 700
Title Font · SpotifyMixUITitle / Times
SpotifyMixUITitle
Now Playing · Your Daily Mix · Made For You · Artist Radio · Liked Songs
Serif · Italic Times fallback
What do you want to play?
Display · 24px · Bold · line-height: 38px · letter-spacing: 0.144px
Liked Songs
Heading · 16px · Bold · line-height: 24px · letter-spacing: 0.16px
Made For You
Subheading · 14.4px · Semibold · line-height: 20.8px · letter-spacing: 0.16px
Various Artists · 2024 · 52 songs, 3 hr 14 min
Body · 14px · Regular · line-height: 17.6px · letter-spacing: 0.16px
Eminem · Rap God · Recovery · Popular song
Small Body · 13.6px · Regular · line-height: 16.91px · letter-spacing: 0.16px
Add to playlist · Go to artist · Share song
UI Small · 13px · Regular · line-height: 16.91px · letter-spacing: 0.16px
RECENTLY PLAYED · TOP MIXES · JUMP BACK IN
Label / Caption · 12px · Bold · line-height: 14.4px · letter-spacing: 1.2px
Line Heights
Tight
12px
Snug
14.4px
Normal
16.91px
Relaxed
17.6px
Loose
19.49px
LH-6
20.8px
LH-7
24px
LH-8
38px
Letter Spacing
Spotify
Tight · 0.144px
--letter-spacing-tight · display, headings
Music
Normal · 0.16px
--letter-spacing-normal · body, UI text
NOW PLAYING
Wide · 1.2px
--letter-spacing-wide · all-caps labels
Spacing
Spacing Scale
22 tokens — 2px → 153.73px
2
4
6
7
8
10
11
12
15
16
20
24
28
32
36
40
48
64
96
110.9
153.7
Borders
Border Radii
SM
2px
LG
3px
XL
4px
2XL
6px
Full
8px
R8
16px
R10
20px
R11
32px
Circle
50%
R14
500px
Pill
9999px
Spotify heavily favors fully rounded elements — pill shapes (9999px) on buttons and tags, 50% circles for avatars and album art, and very minimal 2–6px on small UI chips.
Border Widths
--border-width-hairline
1px · dividers, card borders, inputs
--border-width-thin
12px · thick decorative accent borders
The unusual 12px border width appears as a thick decorative stripe — used for progress bars and visual accent separators in the player UI.
Shadow / Elevation
Shadow Tokens
6 tokens — drop, glow, inset
--shadow-sm
Album art, cards
rgba(0,0,0,0.5) 0px 8px 24px — heavy drop shadow on album covers and floating menus
--shadow-md
Dropdowns, tooltips
rgba(0,0,0,0.3) 0px 8px 8px — medium drop for context menus and popovers
--shadow-lg
Player bar, status
rgb(18,18,18) 0px 1px + inset rgb(124,124,124) 1px ring — combined separator and subtle edge highlight
--shadow-xl
Buttons, small elements
rgba(0,0,0,0.5) 0px 2px 4px — tight shadow for small interactive elements
--shadow-shadow-5
Focus glow, outlines
rgb(128,128,128) 0px 0px 5px — diffuse gray glow for focus states
--shadow-shadow-6
Inset border ring
rgb(124,124,124) 0px 0px 0px 1px inset — used as an inner 1px ring on surfaces
Z-Index
LayerValueUsage
--z-1-1Behind content (artwork backgrounds, canvas decorations)
--z-2 → --z-81 – 7Fine-grained stacking of UI layers within a section (1,2,3,4,5,6,7)
--z-9100Navigation, sticky player bar, floating controls
--z-109,999High-priority modals, popovers, command palette
--z-112,147,483,645Maximum browser z-index − 2 (iFrame / plugin escape)
--z-122,147,483,646Maximum browser z-index − 1 (overlay layer)
--z-132,147,483,647Maximum browser z-index (absolute top — true int32 max)
Breakpoints
📱
--breakpoint-xs
400px
Mobile XS
📱
--breakpoint-sm
425px
Mobile SM upper
📱
--breakpoint-md
426px
Mobile SM lower
📱
--breakpoint-lg
500px
Mobile LG
📱
--breakpoint-xl
530px
Phablet
📱
--breakpoint-2xl
550px
Large phone
📱
--breakpoint-3xl
599.95px
Below 600 (upper)
💻
--breakpoint-bp-8
600px
Tablet lower
💻
--breakpoint-bp-9
768px
Tablet MD
💻
--breakpoint-bp-10
769px
Tablet MD+1
💻
--breakpoint-bp-11
890px
Tablet LG
💻
--breakpoint-bp-12
896px
Tablet LG+
🖥️
--breakpoint-bp-14
992px
Small desktop
🖥️
--breakpoint-bp-16
1024px
Desktop
🖥️
--breakpoint-bp-17
1280px
Wide desktop
Opacity
Opacity Tokens
2 tokens — 0.3 and 0.7
--opacity-30
30% · dim
--opacity-70
70% · muted
Spotify defines only 2 opacity tokens. Additional transparency is handled directly via rgba color values — e.g. rgba(0,0,0,0.5) in shadows and rgba(255,255,255,0.07) for subtle surface borders.
Accessibility — Contrast Ratios
WCAG 2.1 thresholds: AA ≥ 4.5:1 (normal text) · AA Large ≥ 3:1 (large/bold) · AAA ≥ 7:1
Text TokenBackground TokenRatioWCAG Rating
--color-light-gray--color-black10.02:1AAA
--color-light-gray--color-dark-gray-27.86:1AAA
--color-light-gray--color-dark-gray-38.93:1AAA
--color-light-gray--color-white2.1:1Fail
--color-light-gray--color-green1.09:1Fail
--color-mid-gray--color-white5.49:1AA
--color-mid-gray--color-black3.83:1AA Large
--color-mid-gray--color-dark-gray-23.0:1AA Large
--color-mid-gray--color-dark-gray-33.41:1AA Large
--color-dark-gray--color-white7.46:1AAA
--color-dark-gray--color-black2.82:1Fail
--color-dark-gray--color-green3.89:1AA Large
--color-mid-gray-2--color-white4.17:1AA Large
--color-mid-gray-2--color-black5.03:1AA
--color-mid-gray-2--color-dark-gray-34.49:1AA Large
--color-dark-gray-4--color-white5.83:1AA
--color-dark-gray-4--color-dark-gray-33.21:1AA Large
CSS Variables Reference
Core Colors8 primary
Black--color-black#000000
Dark Gray 3--color-dark-gray-3#121212
Dark Gray 2--color-dark-gray-2#1F1F1F
Dark Gray 13--color-dark-gray-13#282828
Dark Gray 6--color-dark-gray-6#292929
Dark Gray 8--color-dark-gray-8#333333
White--color-white#FFFFFF
Green (Brand)--color-green#1ED760
Green 3--color-green-3#1DB954
Green 2--color-green-2#468254
Text Colors9 tokens
Light Gray--color-light-gray#B3B3B3
Mid Gray--color-mid-gray#696969
Dark Gray--color-dark-gray#555555
Mid Gray 2--color-mid-gray-2#7C7C7C
Dark Gray 4--color-dark-gray-4#656565
Mid Gray 4--color-mid-gray-4#808080
Light Gray 4--color-light-gray-4#C5C5C5
Dark Gray 5--color-dark-gray-5#101010
Blue 2 (link)--color-blue-2#0000EE
Typography27 tokens
Base Font--font-family-baseSpotifyMixUI
UI Font--font-family-2SpotifyMixUI
Title Font--font-family-3SpotifyMixUITitle
Regular--font-weight-regular400
Medium--font-weight-medium500
Semibold--font-weight-semibold600
Bold--font-weight-bold700
2XS--font-size-2xs12px
XS--font-size-xs12.99px
SM--font-size-sm13.008px
Base--font-size-base13.33px
LG--font-size-lg13.6px
XL--font-size-xl14px
2XL--font-size-2xl14.4px
3XL--font-size-3xl16px
4XL (display)--font-size-4xl24px
Tight--letter-spacing-tight0.144px
Normal--letter-spacing-normal0.16px
Wide (caps)--letter-spacing-wide1.2px
Spacing22 tokens
Space 1--space-12px
Space 2--space-24px
Space 3--space-36px
Space 5--space-58px
Space 10--space-1012px
Space 16--space-1616px
Space 20--space-2020px
Space 32--space-3224px
Space 40--space-4028px
Space 48--space-4832px
Space 80--space-8040px
Space 96--space-9648px
Space 128--space-12864px
Space 160--space-16096px
Space 192--space-192110.91px
Space 256--space-256153.73px
Borders & Radius17 tokens
Hairline--border-width-hairline1px
Thick accent--border-width-thin12px
SM--radius-sm2px
XL--radius-xl4px
2XL--radius-2xl6px
Full--radius-full8px
R8--radius-r816px
R10--radius-r1020px
R11--radius-r1132px
Circle--radius-r1250%
R14--radius-r14500px
Pill--radius-r159999px
Motion, Opacity & Layers15 tokens
Instant--duration-instant100ms
Fast--duration-fast150ms
Normal--duration-normal200ms
Slow--duration-slow220ms
Slower--duration-slower250ms
Long--duration-duration-7500ms
Ease Out--easing-ease-outease-out
Ease In--easing-ease-inease-in
Ease In-Out--easing-ease-in-outease-in-out
Dim--opacity-3030%
Muted--opacity-7070%
Behind BG--z-1-1
Base → Layer 7--z-2 → --z-81–7
Player / Nav--z-9100
Priority UI--z-109,999
Max (int32)--z-132,147,483,647
Design System Preview · Spotify (Dark) · Generated 18/04/2026 · 85 color tokens · 9 font-size · 3 font-family · 4 font-weight · 8 line-height · 3 letter-spacing · 22 spacing · 15 radius · 2 border-width · 6 shadow · 8 duration · 3 easing · 13 z-index · 17 breakpoints · 2 opacity