BrandToPrompt

Spotify Design System: Dark Mode & Neon Accents

Visit Site

Explore Spotify's design system - dark mode, neon green accents, bold typography. Learn how Spotify crafts immersive music-first UI.

6 min read1,121 words

Brand Identity

Color Palette

Primary
Secondary

Typography

Primary Font
SpotifyMixUI
Secondary Font
SpotifyMixUITitle

Design Style

Style
dark-mode-first with neon green accents and rounded immersive UI
Visual Density
compact grid-based with consistent 8px spacing
Border Style
aggressively rounded corners with pill-shaped buttons and circular avatars

Full Analysis

Spotify Brand Design System Deep Dive

1. Brand Overview

Spotify’s interface isn’t trying to be neutral. It’s opinionated. The vibe is unmistakably “music-first” — dark, saturated, high-contrast, with neon-like accents that pop against a black canvas. This is a design language that says: “You're here for the music, let's keep you in that mood.”

The primary green (#1ed760) is their signature — it’s not muted, not pastel. It’s loud. In an ocean of tech brands leaning toward soft blues and grays, Spotify chooses a shade that feels energizing, almost kinetic. It’s a color that jumps out of your peripheral vision on a dark background, perfect for play buttons, CTAs, and brand marks.

The typography stack is custom (SpotifyMixUI and SpotifyMixUITitle), with fallbacks across multiple language scripts. That tells you they care about global consistency — the UI should feel “Spotify” whether you’re in Tokyo or São Paulo. The type has a geometric, modern feel with generous weight control, supporting both bold headlines and subdued captions.

The layout system is rigid in a good way: an 8px base grid, and they stick to it. Spacing tokens from 1px all the way to 171.5px (yes, oddly specific) are used with intention. Breakpoints cover everything from micro layouts (95px) to large desktop (1280px), signaling a responsive approach that still allows for very small embedded contexts (think mini-player).

UI elements are rounded — aggressively so in some cases. Avatars and pill buttons get a 9999px radius. Search bars and big interactive pills go up to 500px radius. This is not a sharp-corner brand. Even the square-ish elements are softened.

Shadows are subtle but present. Dark, semi-transparent glows (rgba(0,0,0,0.5)) are used to lift elements just enough without breaking the dark mode immersion.

This is a design system for a product that lives in the background of your life — it wants to feel immersive but not distracting. The interface supports long engagement sessions without visual fatigue, while still being visually distinctive enough to be instantly recognizable.


2. Color System

2.1 Primary Colors

The primary is Spotify Green: rgb(30, 215, 96)#1ed760.

Psychologically, this green feels fresh, energetic, and action-oriented. It’s brighter than typical “success” greens and sits closer to the neon spectrum. Competitors like Apple Music use pink/red accents; YouTube Music leans into red; Spotify’s green stands apart in the music app space.

This green is almost always paired with black or very dark gray backgrounds. That contrast makes it scream without being gaudy. It’s also a signal color: “Play,” “Sign Up,” “Go Premium” — all tend to be green.

2.2 Complete Palette

Color NameHexRoleUsage
Primary Green#1ed760Brand / CTAPlay buttons, primary CTAs, brand accents
Light Gray#b3b3b3Secondary textSubdued labels, inactive icons
Black#000000Background / textPage background, body text
Medium Gray#696969Secondary UICategory headers
Darker Gray#555555Controls / bordersClose icons, link buttons
Charcoal#2a2a2aHover/focus backgroundDark hover states
Almost Black#222222Hover/focus backgroundDarker hover
White#ffffffText / iconText on dark backgrounds, icons
Deep Gray#1f1f1fHover/focus backgroundButton states
Gradient Bottom#181818Background gradientDark mode canvas

2.3 Color Relationships

The UI is built for dark mode first. Black (#000) and near-black backgrounds dominate, with gray scales for secondary content. The primary green is the only major saturated color in regular use. Blue (rgb(30, 174, 219)) appears in hover/focus states for certain buttons — a secondary accent.

Contrast ratios are strong: white text on black is WCAG AAA-compliant. Green on black is also highly accessible for large text. The only potential accessibility issue is light gray (#b3b3b3) on black — it’s legible but borderline for small text.

2.4 Usage Guide

  • Works well: Green + black, white + black, blue hover on dark backgrounds.
  • Avoid: Green on white — kills the vibrancy. Light gray on green — poor contrast.
  • Secondary accents: Blue for hover/focus, used sparingly to keep green as the hero.

3. Typography

3.1 Font Families

Two main families:

  1. SpotifyMixUITitle — Bold, geometric. Used for headings and prominent links.
  2. SpotifyMixUI — Regular and bold weights. Used for body text, captions, buttons.

Fallback stack:

CircularSp-Arab, CircularSp-Hebr, CircularSp-Cyrl, CircularSp-Grek, CircularSp-Deva, Helvetica Neue, helvetica, arial, Hiragino Sans, Hiragino Kaku Gothic ProN, Meiryo, MS Gothic

No Google Fonts or Adobe Fonts — these are custom fonts served in-app.

3.2 Type Scale

ElementFontSizeWeightLine Height
heading-1SpotifyMixUITitle24px700
linkSpotifyMixUITitle24px700
linkSpotifyMixUI16px400
heading-1SpotifyMixUI16px400
buttonSpotifyMixUI16px700
heading-1SpotifyMixUI16px700
buttonSpotifyMixUI16px400
buttonSpotifyMixUI16px400
buttonSpotifyMixUI14.4px4002.64
buttonSpotifyMixUI14.4px7001.00
linkSpotifyMixUI14px700
captionSpotifyMixUI14px700
buttonSpotifyMixUI14px700
captionSpotifyMixUI14px400
linkSpotifyMixUI14px400
captionSpotifyMixUI14px6001.50
captionSpotifyMixUI13.6px400
buttonSpotifyMixUI13.3333px400
captionSpotifyMixUI13.3333px400
linkSpotifyMixUI12.992px4001.50
captionSpotifyMixUI12.992px4001.50
captionSpotifyMixUI12px400
linkSpotifyMixUI12px700
buttonSpotifyMixUI12px7001.00
linkSpotifyMixUI12px400
captionSpotifyMixUI11px400
captionSpotifyMixUI10.5px6001.33

3.3 Hierarchy

The jump from 24px bold to 16px regular is sharp — headings really stand out. Buttons often use bold 16px, giving them strong presence. Captions drop to 12–14px, often with medium (600) weight for emphasis. This keeps UI text crisp and readable at small sizes.


4. Spacing & Layout

4.1 Spacing Scale

Base: 8px grid. They use multiples and fractions of this.

Value (px)RemCountUsage
10.06rem7Hairline spacing
20.13rem15Tight gaps
30.19rem1Rare
40.25rem12Icon padding
50.31rem4Micro offsets
60.38rem2Small gap
70.44rem1Rare
80.50rem107Base unit
100.63rem23Small gaps
110.69rem1Rare
11.20.70rem14Button text spacing
120.75rem142Common
150.94rem7Tight section gaps
161.00rem167Common
201.25rem5Section gap
241.50rem5Headline spacing
251.56rem2Rare
322.00rem11Card padding
402.50rem3Large gaps
171.510.72rem56Hero sections

4.2 Layout

Breakpoints:

  • Mobile starts as low as 95px — supports mini-player embeds.
  • Common responsive points: 400px, 768px, 1024px, 1280px.

They adapt gracefully from tiny widgets to full desktop layouts.


5. Visual Elements

Border Radius

They love rounded corners.

ValueCountUsage
2px35Badges, small controls
2.5px1Regions
3px2Divs
4px3Inputs, kbd
6px153Lists, images, cards
8px6Sections, dialogs
10px4Divs
17px1Filters
20px6Spans
32px1Buttons
50px1Search fields
500px57Combobox, large pills
9999px138Search, create playlist, pills
50%37Avatars, icons

Shadows

Two main:

  • rgba(0,0,0,0.5) 0px 8px 24px
  • rgba(0,0,0,0.3) 0px 8px 8px

Subtle depth, always dark-toned.

Borders

Mostly 1px solid. Color ranges from white to muted grays (#b3b3b3, #7c7c7c). Rarely used for separation; shadows do most of the lifting.


6. Components

6.1 Buttons

Variant 1 — Circular dark button
Default:
background: #1f1f1f; color: #ffffff; padding: 12px; border-radius: 50%;
Hover: background: #1eaedb; opacity: 0.9
Active: color: #656565; opacity: 0.7
Focus: outline: 2px solid #000; background: #1eaedb;

Variant 2 — White pill button
Default:
background: #ffffff; color: #000; padding: 8px 32px; border-radius: 9999px;
Hover: color: #ffffff

Variant 3 — Outlined pill with icon space
Default:
background: transparent; color: #ffffff; border: 1px solid #7c7c7c; padding: 4px 16px 4px 36px; border-radius: 9999px;
Hover: border: 1px solid #000; background: #1eaedb;
Active: border: 1px solid #818181; opacity: 0.7

Variant 4 — Green pill button
Default:
background: #1ed760; color: #000; border-radius: 9999px;
Hover: color: #ffffff

Variant 5 — Icon-only dark button
Default:
background: #292929; color: #b3b3b3; border-radius: 50%;
Hover: background: #ffffff; color: #2285f7; opacity: 0.6
Active: background: #2c6415; border: 1px solid rgba(162,192,169,0.5)

Four styles: white, blue, gray, black — all toggle underline on hover.

6.3 Forms

Search input:
Default: background: #1f1f1f; color: #ffffff; border-radius: 500px; padding: 12px 96px 12px 48px;
Focus: background: #1eaedb; border: 1px solid #000;


7. Design Tokens (CSS Custom Properties)

:root {
  /* Colors */
  --color-primary-green: #1ed760;
  --color-light-gray: #b3b3b3;
  --color-black: #000000;
  --color-medium-gray: #696969;
  --color-dark-gray: #555555;
  --color-charcoal: #2a2a2a;
  --color-almost-black: #222222;
  --color-white: #ffffff;
  --color-deep-gray: #1f1f1f;
  --gradient-color-bottom: #181818;
  --color-hover-blue: #1eaedb;

  /* Typography */
  --font-title: SpotifyMixUITitle, CircularSp-Arab, CircularSp-Hebr, CircularSp-Cyrl, CircularSp-Grek, CircularSp-Deva, "Helvetica Neue", helvetica, arial, "Hiragino Sans", "Hiragino Kaku Gothic ProN", Meiryo, "MS Gothic";
  --font-body: SpotifyMixUI, CircularSp-Arab, CircularSp-Hebr, CircularSp-Cyrl, CircularSp-Grek, CircularSp-Deva, "Helvetica Neue", helvetica, arial, "Hiragino Sans", "Hiragino Kaku Gothic ProN", Meiryo, "MS Gothic";

  /* Spacing */
  --space-1: 1px;
  --space-2: 2px;
  --space-3: 3px;
  --space-4: 4px;
  --space-5: 5px;
  --space-6: 6px;
  --space-7: 7px;
  --space-8: 8px;
  --space-10: 10px;
  --space-11: 11px;
  --space-11-2: 11.2px;
  --space-12: 12px;
  --space-15: 15px;
  --space-16: 16px;
  --space-20: 20px;
  --space-24: 24px;
  --space-25: 25px;
  --space-32: 32px;
  --space-40: 40px;
  --space-171-5: 171.5px;

  /* Radius */
  --radius-2: 2px;
  --radius-2-5: 2.5px;
  --radius-3: 3px;
  --radius-4: 4px;
  --radius-6: 6px;
  --radius-8: 8px;
  --radius-10: 10px;
  --radius-17: 17px;
  --radius-20: 20px;
  --radius-32: 32px;
  --radius-50: 50px;
  --radius-500: 500px;
  --radius-full: 9999px;
  --radius-circle: 50%;

  /* Shadows */
  --shadow-lg: rgba(0,0,0,0.5) 0px 8px 24px 0px;
  --shadow-md: rgba(0,0,0,0.3) 0px 8px 8px 0px;
}

8. AI Coding Assistant Prompt

# Spotify Design System Specification

You are a Spotify design expert. Build UIs matching their visual language exactly.

## Brand Context
Spotify’s design is dark-first, with neon green as the signature accent. Rounded corners dominate, typography is custom and bold, spacing follows an 8px grid. The UI is immersive, minimal in ornamentation, and optimized for long listening sessions.

## Color Palette
- Primary Green: #1ed760 — Play buttons, primary CTAs
- Light Gray: #b3b3b3 — Secondary text
- Black: #000000 — Backgrounds, body text
- Medium Gray: #696969 — Category headers
- Dark Gray: #555555 — Controls, close icons
- Charcoal: #2a2a2a — Hover/focus backgrounds
- Almost Black: #222222 — Dark hover states
- White: #ffffff — Text, icons
- Deep Gray: #1f1f1f — Button backgrounds
- Gradient Bottom: #181818 — Page background gradient
- Hover Blue: #1eaedb — Hover/focus accents

## Typography
Font Families:
- Headings: SpotifyMixUITitle, fallback stack
- Body/UI: SpotifyMixUI, fallback stack

Type Sizes:
| Level       | Size      | Weight | Line Height | Use For |
|-------------|-----------|--------|-------------|---------|
| Heading 1   | 24px      | 700    | —           | Page titles |
| Link Large  | 24px      | 700    | —           | Prominent links |
| Body        | 16px      | 400    | —           | Main copy |
| Button Bold | 16px      | 700    | —           | Primary buttons |
| Caption     | 14px      | 400-700| 1.5         | Labels, meta text |
| Small       | 12px      | 400-700| —           | Secondary UI text |

## Spacing & Grid
Base: 8px. Scale: 1px, 2px, 4px, 8px, 10px, 12px, 16px, 20px, 24px, 32px, 40px, 171.5px.
Use multiples of 8px for layout, smaller increments for icon/text padding.

## Border Radius
- xs: 2px — badges
- sm: 4px — inputs
- md: 6px — cards
- lg: 8px — modals
- xl: 20px — large pills
- full: 9999px — pill buttons, avatars
- circle: 50% — icons, profile images
- large-pill: 500px — search bars

## Shadows & Depth
- Large: rgba(0,0,0,0.5) 0px 8px 24px
- Medium: rgba(0,0,0,0.3) 0px 8px 8px

## Component Specifications

### Primary Button
Default: background #1ed760, color #000, border-radius 9999px, font-size 13.3333px, font-weight 400.
Hover: color #fff.
Focus: outline none.
Active: no change.

### Secondary Button (Outlined)
Default: transparent background, color #fff, border 1px solid #7c7c7c, padding 4px 16px 4px 36px, radius 9999px.
Hover: border 1px solid #000, background #1eaedb.
Active: border 1px solid #818181, opacity 0.7.

### Icon Button
Default: background #292929, color #b3b3b3, radius 50%.
Hover: background #fff, color #2285f7.
Active: background #2c6415, border 1px solid rgba(162,192,169,0.5).

### Input Fields
Search:
Default: background #1f1f1f, color #fff, radius 500px, padding 12px 96px 12px 48px.
Focus: background #1eaedb, border 1px solid #000.

## Layout & Responsive Rules
Breakpoints: 95px, 400px, 768px, 1024px, 1280px.
Mobile: full-width content, 16px padding.
Desktop: max-width 1280px, 32px padding.

## Interaction Rules
- Transition: 150ms ease for hover/focus
- Focus: solid outline (#000 or #1eaedb depending on context)
- Hover: slight opacity change + background swap

## DO List
- Use only colors from palette
- Maintain 8px grid
- Keep rounded corners consistent
- Use bold weight for CTAs
- Keep dark mode backgrounds

## DON'T List
- Don't use sharp corners
- Don't introduce new accent colors
- Don't reduce contrast for small text
- Don't add drop shadows beyond defined tokens

## Code Examples

Button:
```css
.btn-primary {
  background: #1ed760;
  color: #000;
  padding: 8px 32px;
  border-radius: 9999px;
  font-weight: 700;
  font-size: 16px;
  border: none;
  transition: background 150ms ease;
}
.btn-primary:hover {
  color: #fff;
}
```

Input:
```css
.input-search {
  background: #1f1f1f;
  color: #fff;
  border-radius: 500px;
  padding: 12px 96px 12px 48px;
  border: none;
}
.input-search:focus {
  background: #1eaedb;
  border: 1px solid #000;
}
```

9. Summary

TL;DR — Spotify’s design is dark mode by default, with neon green as the hero accent. Rounded everything, bold custom type, and an 8px grid keep it consistent. Green is for actions, blue is for hover, gray handles the rest.

Brand Keywords:

  • neon-immersive
  • dark-mode-first
  • rounded-consistent
  • global-type-stack
  • music-centric