Headspace
Design system#31 of 55WebAbout this design system
Design Systems for Web: Meditation app. Sunny yellow and orange, soft cream surfaces, bold geometric type and playful illustrated characters.
Palette
Typography
48px
40px
32px
18px
16px
16px
Spacing & Shape
| Token | Value | Preview |
|---|---|---|
| base | 8px | |
| scale | [4px, 8px, 12px, 16px, 24px, 32px, 48px, 64px, 96px] |
Border Radius
| Token | Value | Preview |
|---|---|---|
| card | 24px | |
| card-lg | 32px | |
| pill | 9999px | |
| control | 8px |
design.md
tokens (raw)
name: headspace-design
version: alpha
description: >
A warm, playful wellness canvas: a cream page (#FAF4EE) with soft dark ink
(#2D2C2B), exploding into big bright color-blocked sections — signature
Headspace yellow (#FFCD00), friendly blue (#0061EF), pink (#FF9DCB) — and
squishy 3D blob mascots. Type is Apercu set BOLD (700) and tight for warm,
rounded headlines, with a medium body. Everything is generously rounded
(full pills, big-radius cards) and optimistic. Actions are blue or dark
pills; sections alternate cream and saturated brand color. The orange-dot
logo and friendly Ebb blob are the signature motifs.
colors:
# Brand
yellow: '#ffcd00' # signature Headspace yellow (hero/section blocks)
blue: '#0061ef' # primary CTA + links ("Get your headspace", "Login")
on-blue: '#ffffff'
blue-bright: '#0a93f5' # bright sky-blue "Join the millions" stat block (approx)
pink: '#ff9dcb' # accent blocks / carousel
orange: '#ff7e1d' # the dot logo + warm accents (approx)
# Text / ink (warm)
on-surface: '#2d2c2b' # headings / strong copy
on-surface-body: '#4b4c4d' # body gray
on-yellow: '#2d2c2b' # dark ink on yellow blocks
# Surface
surface: '#faf4ee' # warm cream page (approx)
surface-card: '#f7f1ea' # soft cream cards (approx)
surface-chip: '#f4ede5' # pill chip track (approx)
dark-pill: '#2d2c2b' # dark CTA pill ("Try for $0")
# Hairlines
hairline: 'rgba(45,44,43,0.12)'
typography:
font-sans: '"Headspace Apercu", sans-serif' # OSS sub: "Apercu"→ "Hanken Grotesk" / "Sofia Sans"
h1: # "Stress less all with Headspace"
fontFamily: '{typography.font-sans}'
fontSize: 48px # scales responsively
fontWeight: 700
letterSpacing: -0.03em
h2:
fontFamily: '{typography.font-sans}'
fontSize: 40px
fontWeight: 700
lineHeight: 44px
letterSpacing: -0.03em # -1.2px
h3:
fontFamily: '{typography.font-sans}'
fontSize: 32px
fontWeight: 700
lineHeight: 36.8px
letterSpacing: -0.03em # -0.96px
body:
fontFamily: '{typography.font-sans}'
fontSize: 18px
fontWeight: 500
lineHeight: 26px
letterSpacing: -0.01em
body-sm:
fontFamily: '{typography.font-sans}'
fontSize: 16px
fontWeight: 400
lineHeight: 24px
link:
fontFamily: '{typography.font-sans}'
fontSize: 16px
fontWeight: 500
letterSpacing: -0.01em
rounded:
card: 24px # bright section cards (approx)
card-lg: 32px # large hero/stat blocks (approx)
pill: 9999px # buttons + chips
control: 8px # small inputs / list rows (approx)
spacing:
base: 8px
scale: [4px, 8px, 12px, 16px, 24px, 32px, 48px, 64px, 96px]
components:
button-primary: # "Try for free" / "Get your headspace" / "Login"
backgroundColor: '{colors.blue}'
textColor: '{colors.on-blue}'
fontWeight: 700
rounded: '{rounded.pill}'
padding: '~12px 24px'
button-dark: # "Try for $0" / "Check coverage"
backgroundColor: '{colors.dark-pill}'
textColor: '#ffffff'
rounded: '{rounded.pill}'
button-on-color: # "Chat with Ebb" / "Try for free" on a color block
backgroundColor: '#ffffff'
textColor: '{colors.on-surface}'
rounded: '{rounded.pill}'
chip-tab: # "Featured / Popular / Sleep / Stress" filter pills
backgroundColor: '{colors.surface-chip}'
textColor: '{colors.on-surface}'
selected-bg: '{colors.dark-pill}'
selected-text: '#ffffff'
rounded: '{rounded.pill}'
card-color: # big yellow/pink/blue feature blocks
rounded: '{rounded.card-lg}'
note: 'solid brand-color fill (yellow/pink/blue) holding a heading, body, pill CTA + 3D blob art'
list-row: # "Stress less ›" choose-your-path rows
backgroundColor: '#ffffff'
borderWidth: 1px
borderColor: '{colors.hairline}'
rounded: '{rounded.control}'
newsletter-input:
backgroundColor: '#ffffff'
rounded: '{rounded.control}'
motion:
# Friendly: carousels with dot indicators + circular arrows, soft squishy blob animations, gentle reveals.
icons:
style: outline / 3d-blob
stroke: ~2px
sizes: { sm: 16px, md: 24px }
color-rules: 'Chevron "›" on list rows and "+" on FAQ. The logo is the orange dot. Ebb is a soft gradient 3D blob mascot.'Headspace
headspace-design — version alpha
Surfaces studied via Playwright (headspace.com home): computed styles + screenshots. The site exposes no semantic :root brand vars, so the bright brand hues (yellow/blue/pink/orange) and cream surfaces are nearest-hex approximations from the rendered blocks; type (Headspace Apercu) and the bold-tight heading metrics are high-confidence computed values.
Overview
Headspace's canvas is warm, playful, and optimistic: a cream page ({colors.surface} ~#FAF4EE) with soft dark ink ({colors.on-surface} #2D2C2B, not pure black), that explodes into big bright color-blocked sections — the signature Headspace yellow {colors.yellow} #FFCD00, a friendly blue {colors.blue} #0061EF, and pink {colors.pink} #FF9DCB — populated with squishy 3D blob mascots (Ebb). Type is Apercu set bold (700) and tight for warm, rounded headlines, with a medium (500) body. Everything is generously rounded (full pills, big-radius cards) and friendly. Actions are blue or dark pills; sections alternate cream and saturated brand color. The orange-dot logo and the Ebb blob are the signature motifs — calm, approachable, human.
Colors
- Headspace yellow —
{colors.yellow}#FFCD00. The signature brand hue: hero accents, large feature blocks, and the bottom "Get your headspace" band — always with dark ink ({colors.on-yellow}). - Blue —
{colors.blue}#0061EF. Primary CTA and links ("Try for free", "Get your headspace", "Login"), and the enterprise block. A brighter sky-blue{colors.blue-bright}(~#0A93F5) fills the "Join the millions" stat block. - Pink —
{colors.pink}#FF9DCB. Accent blocks and carousel cards. - Orange —
{colors.orange}(~#FF7E1D). The dot logo and warm accents (Ebb's gradient leans orange-pink). - Warm ink. Headings
{colors.on-surface}#2D2C2B; body gray{colors.on-surface-body}#4B4C4D — both warm, never pure black/gray. - Surfaces. Cream page; soft-cream cards/chips; a dark pill
{colors.dark-pill}#2D2C2B for "Try for $0" / selected tabs. Hairlines ~12% warm ink.
Typography
- Headspace Apercu — the single family (a customized Apercu). Closest open-source substitute: Hanken Grotesk or Sofia Sans (humanist grotesque with rounded warmth). The signature is bold (700) headings with tight negative tracking (-0.03em) for a friendly, confident voice, and a medium (500) body for warmth.
| Token | Size | Weight | Line-height | Tracking | Usage |
|---|---|---|---|---|---|
| h1 | 48px+ | 700 | ~1.05 | -0.03em | Hero ("Stress less…") |
| h2 | 40px | 700 | 44px | -0.03em | Section heads |
| h3 | 32px | 700 | 36.8px | -0.03em | Card titles |
| body | 18px | 500 | 26px | -0.01em | Body (medium = warm) |
| body-sm | 16px | 400 | 24px | normal | Secondary copy |
| link | 16px | 500 | — | -0.01em | Links / nav |
Layout
Base 8px. The page is a stack of alternating cream and saturated color-block sections. Patterns: a hero with two rounded promo cards ("app" + "therapy"), a 2-column "choose your path" list of white rounded rows with "›", a pill-tab filter ("Featured / Popular / Sleep / Stress") above a carousel of bright cards, an enterprise blue block, a stat block (sky-blue), a FAQ accordion, and a big yellow "Get your headspace" CTA band. Generous spacing; rounded everything.
Elevation & Depth
Depth is color-blocking + 3D mascots, not shadows. Large saturated cards sit flat on cream; the Ebb blob and other soft 3D characters provide dimension. Cards have big radii and occasional faint borders; no heavy drop shadows.
Shapes
Very rounded: full pills ({rounded.pill}) for buttons and filter chips, ~24–32px for feature/stat cards, 8px for list rows and inputs. The soft, generous geometry matches Apercu's rounded warmth and the squishy blob art.
Components
- Primary button
{components.button-primary}— blue full-pill, white bold label ("Try for free", "Get your headspace", "Login"). - Dark button
{components.button-dark}— #2D2C2B pill ("Try for $0", "Check coverage"). - On-color button
{components.button-on-color}— white pill on a saturated block ("Chat with Ebb"). - Filter chip
{components.chip-tab}— pill tabs on a cream track; selected fills dark with white text. - Color feature card
{components.card-color}— solid yellow/pink/blue fill, ~32px radius, heading + body + pill CTA + 3D blob art. - List row
{components.list-row}— white rounded row with a trailing "›" ("Stress less", "Manage anxiety"). - Newsletter input
{components.newsletter-input}— white field + dark "Subscribe" pill.
Motion
Friendly and gentle: carousels with dot indicators + circular arrow buttons, soft squishy blob animations (Ebb), and easy scroll reveals. Nothing jarring — motion reinforces calm.
Iconography
A mix of outline monoline UI icons (chevron "›" on rows, "+" on FAQ) and 3D-blob illustration (Ebb, the gradient mascot). The logo is the orange dot. Stroke ~2px, 16/24px.
Do's and Don'ts
- Do anchor on warm cream with soft dark ink (#2D2C2B), never pure black.
- Do explode into big color-blocked sections (yellow/blue/pink) and keep dark ink on yellow.
- Do set headlines in Apercu bold (700), tight; body in medium (500) for warmth.
- Do make CTAs blue or dark full pills; use 3D blob mascots (Ebb) for personality.
- Do round everything generously.
- Don't use pure-black text or hard drop shadows.
- Don't desaturate the brand hues — the bright optimism is the point.
- Don't square corners or go light-weight on headings.
Known Gaps
- No semantic
:roottokens are exposed; yellow/blue/pink/orange and the cream surfaces are nearest-hex approximations from rendered blocks. - Headspace Apercu is proprietary; only observed weights (400/500/700) are listed. Hero size scales responsively above 48px.