getdesign.mdgetdesign/spotify

Spotify

Dark immersive music player with near-black cocoon surfaces, Spotify Green functional accent, pill/circle geometry, and heavy shadow elevation.

install

npx designkit-cli add getdesign/spotify
source ↗
previewtemplates · Spotify

Typography

Every text element the kit ships — headings through code

elements

Headings

The quick brown fox

Section heading

Subsection heading

Minor heading

Overline heading

Body text

Lead paragraph.Body text sits at the backbone of any interface — if it reads well, everything else has a chance. If it doesn't, nothing else matters.

Standard paragraph at the body size. Type hierarchies work best when the jump from body to subheading is clear but not disruptive — around 1.25-1.5× works across most contexts. Inline elements like a link, inline code, emphasis, strong, and highlighted text should all feel native to the kit.

Small / caption text — used for metadata, timestamps, descriptions under labels. Usually 14px or slightly smaller.

Lists

Unordered

  • Token-driven styling
  • Agent-readable format
  • Composable kits
    • Colors
    • Typography
    • Component stylings
  • Portable between projects

Ordered

  1. Describe the kit in prose
  2. Extract colors and typography
  3. Apply to a sample UI
  4. Iterate on token values

Blockquote

“Good design is as little design as possible. Less, but better — because it concentrates on the essential aspects, and the products are not burdened with non-essentials.”
— Dieter Rams

Code

// install a kit
$ npx designkit-cli add airbnb

// apply it to your project
import { applyKit } from "@designkit/theme"
applyKit("airbnb")

Rule


Buttons

Primary, secondary, outline, ghost — every state the kit ships

elements

Default

Sizes

With icon

Form fields

Every input control the kit ships — text, select, checkboxes, radios, switches, file

elements

Text inputs

Textarea

Select

Checkboxes

Radio group

Billing cadence

Toggle switch

File input

Feedback

Alerts, badges, progress, tooltips, avatars — the signal surface of every UI

elements

Alerts

!

Scheduled maintenance

We'll be rolling out a new version on Friday at 22:00 UTC. Expect a short read-only window.

!

Kit published

Your DESIGN.md is live. Anyone can now install it with `npx designkit-cli add you/my-kit`.

!

Deprecated API

You're calling /v1/kits which will be removed in 30 days. Migrate to /v2/kits.

!

Build failed

Two component tokens reference an undefined color. Run `designkit lint` to see them.

Badges & tags

OfficialCommunityv2.0BetaDeprecatedOutlineOutline alt

Avatars

JD

Jeremy Dupont

Author

ALMTKPSJ+6

Progress

Upload32%
Build78%
Complete100%

Spinner

Loading…

Tooltip (static)

Tooltip text

Keyboard shortcut

Press K to open the command palette, or Esc to dismiss.

Data display

Table, definition list, empty state — how the kit shows structured data

app

Table

KitAuthorInstallsUpdatedStatus
airbnbgetdesign12.4K2d agoActive
claudegetdesign8.1K5d agoActive
stripegetdesign7.9K1w agoActive
linear.appgetdesign6.2K2w agoBeta
heritagedk2.1K1mo agoDraft

Definition list

Name
Airbnb
Author
getdesign · Claude
Format
DESIGN.md (Google Stitch spec)
Primary font
Nunito (substitute for Airbnb Cereal VF)
Installs
12,408
License
MIT

Empty state

No kits yet

You haven't published any kits on this account. Drop a DESIGN.md in a public repo to get started.

Breadcrumbs

Tabs

Sign in

Centered auth card — the most scrutinised surface in any app

app

Welcome back

Sign in with your work email to continue.

or

New here? Create an account

Dashboard KPIs

Four-card stat row — the staple of every internal dashboard

app

Overview

Performance for the last 30 days

Active users

12,408

+4.2% vs last period

MRR

$28.9K

+12.1% vs last period

Churn

1.8%

-0.3% vs last period

NPS

72

+5 vs last period

[chart placeholder]

Chat thread

Agent + user turn-based chat — bubbles, avatar, timestamp

app
A

Design Agent

online · responds in seconds

Hey — what's the goal of today's session?
I want to ship a pricing page that matches our brand.
Got it. Sharing three variants in a sec — each in your brand tokens so it'll feel native. Which fits better: conversion-first, feature-first, or transparency-first?
Let's try conversion-first.

Hero

Landing-page headline + subtitle + primary CTA

marketing
New · v2.0

Designed for humans. Built for agents.

Ship a brand-aligned product in hours. Coding agents write UI that matches your design system — no brief, no handoff.

Pricing

Three-tier comparison grid with a highlighted middle tier

marketing

Simple pricing

Pay for what you use. Change plans any time.

Hobby

$0forever
  • 1 project
  • Community support
  • Public kits only

Pro

Popular
$19per month
  • Unlimited projects
  • Private kits
  • Priority support
  • AI kit generator

Team

$49per seat / mo
  • Everything in Pro
  • Shared workspace
  • SSO + audit logs
  • Dedicated support

source

---
name: Spotify
description:
  Dark immersive music player with near-black cocoon surfaces, Spotify Green
  functional accent, pill/circle geometry, and heavy shadow elevation.
originalFonts:
  primary: "SpotifyMixUITitle"
  fallbacks:
    - "CircularSp-Arab"
    - "CircularSp-Hebr"
    - "CircularSp-Cyrl"
    - "CircularSp-Grek"
    - "CircularSp-Deva"
    - "Helvetica Neue"
    - "helvetica"
    - "arial"
    - "Hiragino Sans"
    - "Hiragino Kaku Gothic ProN"
    - "Meiryo"
    - "MS Gothic"
colors:
  background: "#121212"
  surface: "#181818"
  surface-raised: "#1f1f1f"
  ink: "#ffffff"
  ink-muted: "#b3b3b3"
  accent: "#1ed760"
  accent-alt: "#1db954"
  border: "#4d4d4d"
  link: "#ffffff"
  spotify-green: "#1ed760"
  near-black: "#121212"
  dark-surface: "#181818"
  mid-dark: "#1f1f1f"
  white: "#ffffff"
  silver: "#b3b3b3"
  near-white: "#cbcbcb"
  light: "#fdfdfd"
  negative-red: "#f3727f"
  warning-orange: "#ffa42b"
  announcement-blue: "#539df5"
  dark-card: "#252525"
  mid-card: "#272727"
  border-gray: "#4d4d4d"
  light-border: "#7c7c7c"
  separator: "#b3b3b3"
  light-surface: "#eeeeee"
  spotify-green-border: "#1db954"
typography:
  h1:
    family: "Nunito"
    size: "1.5rem"
    weight: 700
    lineHeight: 1.2
  h2:
    family: "Nunito"
    size: "1.125rem"
    weight: 600
    lineHeight: 1.3
  body:
    family: "Nunito"
    size: "1rem"
    weight: 400
    lineHeight: 1.5
  button:
    family: "Nunito"
    size: "0.875rem"
    weight: 700
    lineHeight: 1.0
  code:
    family: "JetBrains Mono"
spacing:
  xs: "0.25rem"
  sm: "0.5rem"
  md: "1rem"
  lg: "1.25rem"
  xl: "2rem"
rounded:
  sm: "4px"
  md: "8px"
  lg: "500px"
  xl: "9999px"
shadows:
  sm: "rgba(0,0,0,0.3) 0px 8px 8px"
  md: "rgba(0,0,0,0.5) 0px 8px 24px"
  inset: "rgb(18,18,18) 0px 1px 0px, rgb(124,124,124) 0px 0px 0px 1px inset"
components:
  button-primary:
    background: "{colors.spotify-green}"
    color: "#000000"
    border: "1px solid {colors.spotify-green}"
    radius: "{rounded.xl}"
    padding: "8px 32px"
  button-secondary:
    background: "{colors.mid-dark}"
    color: "{colors.white}"
    border: "1px solid {colors.border}"
    radius: "{rounded.xl}"
    padding: "8px 16px"
  button-outlined:
    background: "transparent"
    color: "{colors.white}"
    border: "1px solid {colors.light-border}"
    radius: "{rounded.xl}"
    padding: "4px 16px 4px 36px"
  card:
    background: "{colors.dark-surface}"
    border: "none"
    radius: "{rounded.md}"
    padding: "1.5rem"
  input:
    background: "{colors.mid-dark}"
    color: "{colors.white}"
    border: "none"
    radius: "{rounded.lg}"
    padding: "12px 48px"
---

<!-- source: VoltAgent/awesome-design-md @ 80bbbc2 (MIT) — see ATTRIBUTION.md -->

# Design System Inspiration of Spotify

## 1. Visual Theme & Atmosphere

Spotify's web interface is a dark, immersive music player that wraps listeners
in a near-black cocoon (`#121212`, `#181818`, `#1f1f1f`) where album art and
content become the primary source of color. The design philosophy is
"content-first darkness" — the UI recedes into shadow so that music, podcasts,
and playlists can glow. Every surface is a shade of charcoal, creating a
theater-like environment where the only true color comes from the iconic Spotify
Green (`#1ed760`) and the album artwork itself.

The typography uses SpotifyMixUI and SpotifyMixUITitle — proprietary fonts from
the CircularSp family (Circular by Lineto, customized for Spotify) with an
extensive fallback stack that includes Arabic, Hebrew, Cyrillic, Greek,
Devanagari, and CJK fonts, reflecting Spotify's global reach. The type system is
compact and functional: 700 (bold) for emphasis and navigation, 600 (semibold)
for secondary emphasis, and 400 (regular) for body. Buttons use uppercase with
positive letter-spacing (1.4px–2px) for a systematic, label-like quality.

What distinguishes Spotify is its pill-and-circle geometry. Primary buttons use
500px–9999px radius (full pill), circular play buttons use 50% radius, and
search inputs are 500px pills. Combined with heavy shadows
(`rgba(0,0,0,0.5) 0px 8px 24px`) on elevated elements and a unique inset
border-shadow combo
(`rgb(18,18,18) 0px 1px 0px, rgb(124,124,124) 0px 0px 0px 1px inset`), the
result is an interface that feels like a premium audio device — tactile,
rounded, and built for touch.

**Key Characteristics:**

- Near-black immersive dark theme (`#121212`–`#1f1f1f`) — UI disappears behind
  content
- Spotify Green (`#1ed760`) as singular brand accent — never decorative, always
  functional
- SpotifyMixUI/CircularSp font family with global script support
- Pill buttons (500px–9999px) and circular controls (50%) — rounded,
  touch-optimized
- Uppercase button labels with wide letter-spacing (1.4px–2px)
- Heavy shadows on elevated elements (`rgba(0,0,0,0.5) 0px 8px 24px`)
- Semantic colors: negative red (`#f3727f`), warning orange (`#ffa42b`),
  announcement blue (`#539df5`)
- Album art as the primary color source — the UI is achromatic by design

## 2. Color Palette & Roles

### Primary Brand

- **Spotify Green** (`#1ed760`): Primary brand accent — play buttons, active
  states, CTAs
- **Near Black** (`#121212`): Deepest background surface
- **Dark Surface** (`#181818`): Cards, containers, elevated surfaces
- **Mid Dark** (`#1f1f1f`): Button backgrounds, interactive surfaces

### Text

- **White** (`#ffffff`): `--text-base`, primary text
- **Silver** (`#b3b3b3`): Secondary text, muted labels, inactive nav
- **Near White** (`#cbcbcb`): Slightly brighter secondary text
- **Light** (`#fdfdfd`): Near-pure white for maximum emphasis

### Semantic

- **Negative Red** (`#f3727f`): `--text-negative`, error states
- **Warning Orange** (`#ffa42b`): `--text-warning`, warning states
- **Announcement Blue** (`#539df5`): `--text-announcement`, info states

### Surface & Border

- **Dark Card** (`#252525`): Elevated card surface
- **Mid Card** (`#272727`): Alternate card surface
- **Border Gray** (`#4d4d4d`): Button borders on dark
- **Light Border** (`#7c7c7c`): Outlined button borders, muted links
- **Separator** (`#b3b3b3`): Divider lines
- **Light Surface** (`#eeeeee`): Light-mode buttons (rare)
- **Spotify Green Border** (`#1db954`): Green accent border variant

### Shadows

- **Heavy** (`rgba(0,0,0,0.5) 0px 8px 24px`): Dialogs, menus, elevated panels
- **Medium** (`rgba(0,0,0,0.3) 0px 8px 8px`): Cards, dropdowns
- **Inset Border**
  (`rgb(18,18,18) 0px 1px 0px, rgb(124,124,124) 0px 0px 0px 1px inset`): Input
  border-shadow combo

## 3. Typography Rules

### Font Families

- **Title**: `SpotifyMixUITitle`, fallbacks:
  `CircularSp-Arab, CircularSp-Hebr, CircularSp-Cyrl, CircularSp-Grek, CircularSp-Deva, Helvetica Neue, helvetica, arial, Hiragino Sans, Hiragino Kaku Gothic ProN, Meiryo, MS Gothic`
- **UI / Body**: `SpotifyMixUI`, same fallback stack

### Hierarchy

| Role             | Font              | Size             | Weight  | Line Height  | Letter Spacing | Notes                        |
| ---------------- | ----------------- | ---------------- | ------- | ------------ | -------------- | ---------------------------- |
| Section Title    | SpotifyMixUITitle | 24px (1.50rem)   | 700     | normal       | normal         | Bold title weight            |
| Feature Heading  | SpotifyMixUI      | 18px (1.13rem)   | 600     | 1.30 (tight) | normal         | Semibold section heads       |
| Body Bold        | SpotifyMixUI      | 16px (1.00rem)   | 700     | normal       | normal         | Emphasized text              |
| Body             | SpotifyMixUI      | 16px (1.00rem)   | 400     | normal       | normal         | Standard body                |
| Button Uppercase | SpotifyMixUI      | 14px (0.88rem)   | 600–700 | 1.00 (tight) | 1.4px–2px      | `text-transform: uppercase`  |
| Button           | SpotifyMixUI      | 14px (0.88rem)   | 700     | normal       | 0.14px         | Standard button              |
| Nav Link Bold    | SpotifyMixUI      | 14px (0.88rem)   | 700     | normal       | normal         | Navigation                   |
| Nav Link         | SpotifyMixUI      | 14px (0.88rem)   | 400     | normal       | normal         | Inactive nav                 |
| Caption Bold     | SpotifyMixUI      | 14px (0.88rem)   | 700     | 1.50–1.54    | normal         | Bold metadata                |
| Caption          | SpotifyMixUI      | 14px (0.88rem)   | 400     | normal       | normal         | Metadata                     |
| Small Bold       | SpotifyMixUI      | 12px (0.75rem)   | 700     | 1.50         | normal         | Tags, counts                 |
| Small            | SpotifyMixUI      | 12px (0.75rem)   | 400     | normal       | normal         | Fine print                   |
| Badge            | SpotifyMixUI      | 10.5px (0.66rem) | 600     | 1.33         | normal         | `text-transform: capitalize` |
| Micro            | SpotifyMixUI      | 10px (0.63rem)   | 400     | normal       | normal         | Smallest text                |

### Principles

- **Bold/regular binary**: Most text is either 700 (bold) or 400 (regular), with
  600 used sparingly. This creates a clear visual hierarchy through weight
  contrast rather than size variation.
- **Uppercase buttons as system**: Button labels use uppercase + wide
  letter-spacing (1.4px–2px), creating a systematic "label" voice distinct from
  content text.
- **Compact sizing**: The range is 10px–24px — narrower than most systems.
  Spotify's type is compact and functional, designed for scanning playlists, not
  reading articles.
- **Global script support**: The extensive fallback stack (Arabic, Hebrew,
  Cyrillic, Greek, Devanagari, CJK) reflects Spotify's 180+ market reach.

## 4. Component Stylings

### Buttons

**Dark Pill**

- Background: `#1f1f1f`
- Text: `#ffffff` or `#b3b3b3`
- Padding: 8px 16px
- Radius: 9999px (full pill)
- Use: Navigation pills, secondary actions

**Dark Large Pill**

- Background: `#181818`
- Text: `#ffffff`
- Padding: 0px 43px
- Radius: 500px
- Use: Primary app navigation buttons

**Light Pill**

- Background: `#eeeeee`
- Text: `#181818`
- Radius: 500px
- Use: Light-mode CTAs (cookie consent, marketing)

**Outlined Pill**

- Background: transparent
- Text: `#ffffff`
- Border: `1px solid #7c7c7c`
- Padding: 4px 16px 4px 36px (asymmetric for icon)
- Radius: 9999px
- Use: Follow buttons, secondary actions

**Circular Play**

- Background: `#1f1f1f`
- Text: `#ffffff`
- Padding: 12px
- Radius: 50% (circle)
- Use: Play/pause controls

### Cards & Containers

- Background: `#181818` or `#1f1f1f`
- Radius: 6px–8px
- No visible borders on most cards
- Hover: slight background lightening
- Shadow: `rgba(0,0,0,0.3) 0px 8px 8px` on elevated

### Inputs

- Search input: `#1f1f1f` background, `#ffffff` text
- Radius: 500px (pill)
- Padding: 12px 96px 12px 48px (icon-aware)
- Focus: border becomes `#000000`, outline `1px solid`

### Navigation

- Dark sidebar with SpotifyMixUI 14px weight 700 for active, 400 for inactive
- `#b3b3b3` muted color for inactive items, `#ffffff` for active
- Circular icon buttons (50% radius)
- Spotify logo top-left in green

## 5. Layout Principles

### Spacing System

- Base unit: 8px
- Scale: 1px, 2px, 3px, 4px, 5px, 6px, 8px, 10px, 12px, 14px, 15px, 16px, 20px

### Grid & Container

- Sidebar (fixed) + main content area
- Grid-based album/playlist cards
- Full-width now-playing bar at bottom
- Responsive content area fills remaining space

### Whitespace Philosophy

- **Dark compression**: Spotify packs content densely — playlist grids, track
  lists, and navigation are all tightly spaced. The dark background provides
  visual rest between elements without needing large gaps.
- **Content density over breathing room**: This is an app, not a marketing site.
  Every pixel serves the listening experience.

### Border Radius Scale

- Minimal (2px): Badges, explicit tags
- Subtle (4px): Inputs, small elements
- Standard (6px): Album art containers, cards
- Comfortable (8px): Sections, dialogs
- Medium (10px–20px): Panels, overlay elements
- Large (100px): Large pill buttons
- Pill (500px): Primary buttons, search input
- Full Pill (9999px): Navigation pills, search
- Circle (50%): Play buttons, avatars, icons

## 6. Depth & Elevation

| Level              | Treatment                                                           | Use                            |
| ------------------ | ------------------------------------------------------------------- | ------------------------------ |
| Base (Level 0)     | `#121212` background                                                | Deepest layer, page background |
| Surface (Level 1)  | `#181818` or `#1f1f1f`                                              | Cards, sidebar, containers     |
| Elevated (Level 2) | `rgba(0,0,0,0.3) 0px 8px 8px`                                       | Dropdown menus, hover cards    |
| Dialog (Level 3)   | `rgba(0,0,0,0.5) 0px 8px 24px`                                      | Modals, overlays, menus        |
| Inset (Border)     | `rgb(18,18,18) 0px 1px 0px, rgb(124,124,124) 0px 0px 0px 1px inset` | Input borders                  |

**Shadow Philosophy**: Spotify uses notably heavy shadows for a dark-themed app.
The 0.5 opacity shadow at 24px blur creates a dramatic "floating in darkness"
effect for dialogs and menus, while the 0.3 opacity at 8px blur provides a more
subtle card lift. The unique inset border-shadow combination on inputs creates a
recessed, tactile quality.

## 7. Do's and Don'ts

### Do

- Use near-black backgrounds (`#121212`–`#1f1f1f`) — depth through shade
  variation
- Apply Spotify Green (`#1ed760`) only for play controls, active states, and
  primary CTAs
- Use pill shape (500px–9999px) for all buttons — circular (50%) for play
  controls
- Apply uppercase + wide letter-spacing (1.4px–2px) on button labels
- Keep typography compact (10px–24px range) — this is an app, not a magazine
- Use heavy shadows (`0.3–0.5 opacity`) for elevated elements on dark
  backgrounds
- Let album art provide color — the UI itself is achromatic

### Don't

- Don't use Spotify Green decoratively or on backgrounds — it's functional only
- Don't use light backgrounds for primary surfaces — the dark immersion is core
- Don't skip the pill/circle geometry on buttons — square buttons break the
  identity
- Don't use thin/subtle shadows — on dark backgrounds, shadows need to be heavy
  to be visible
- Don't add additional brand colors — green + achromatic grays is the complete
  palette
- Don't use relaxed line-heights — Spotify's typography is compact and dense
- Don't expose raw gray borders — use shadow-based or inset borders instead

## 8. Responsive Behavior

### Breakpoints

| Name          | Width       | Key Changes           |
| ------------- | ----------- | --------------------- |
| Mobile Small  | <425px      | Compact mobile layout |
| Mobile        | 425–576px   | Standard mobile       |
| Tablet        | 576–768px   | 2-column grid         |
| Tablet Large  | 768–896px   | Expanded layout       |
| Desktop Small | 896–1024px  | Sidebar visible       |
| Desktop       | 1024–1280px | Full desktop layout   |
| Large Desktop | >1280px     | Expanded grid         |

### Collapsing Strategy

- Sidebar: full → collapsed → hidden
- Album grid: 5 columns → 3 → 2 → 1
- Now-playing bar: maintained at all sizes
- Search: pill input maintained, width adjusts
- Navigation: sidebar → bottom bar on mobile

## 9. Agent Prompt Guide

### Quick Color Reference

- Background: Near Black (`#121212`)
- Surface: Dark Card (`#181818`)
- Text: White (`#ffffff`)
- Secondary text: Silver (`#b3b3b3`)
- Accent: Spotify Green (`#1ed760`)
- Border: `#4d4d4d`
- Error: Negative Red (`#f3727f`)

### Example Component Prompts

- "Create a dark card: #181818 background, 8px radius. Title at 16px
  SpotifyMixUI weight 700, white text. Subtitle at 14px weight 400, #b3b3b3.
  Shadow rgba(0,0,0,0.3) 0px 8px 8px on hover."
- "Design a pill button: #1f1f1f background, white text, 9999px radius, 8px 16px
  padding. 14px SpotifyMixUI weight 700, uppercase, letter-spacing 1.4px."
- "Build a circular play button: Spotify Green (#1ed760) background, #000000
  icon, 50% radius, 12px padding."
- "Create search input: #1f1f1f background, white text, 500px radius, 12px 48px
  padding. Inset border: rgb(124,124,124) 0px 0px 0px 1px inset."
- "Design navigation sidebar: #121212 background. Active items: 14px weight 700,
  white. Inactive: 14px weight 400, #b3b3b3."

### Iteration Guide

1. Start with #121212 — everything lives in near-black darkness
2. Spotify Green for functional highlights only (play, active, CTA)
3. Pill everything — 500px for large, 9999px for small, 50% for circular
4. Uppercase + wide tracking on buttons — the systematic label voice
5. Heavy shadows (0.3–0.5 opacity) for elevation — light shadows are invisible
   on dark
6. Album art provides all the color — the UI stays achromatic