Twitch (iOS)
Identity
Mobile Apps
Live streaming. Twitch Purple #9146FF action + Live Red #EB0400 liveness-only, LIVE pills, docked chat column, theater overlay, emotes
Typography
Ag
Ag
Ag
--text-4xl · 36pxThe quick brown fox--text-3xl · 28pxThe quick brown fox--text-2xl · 22pxThe quick brown fox--text-xl · 20pxThe quick brown fox--text-lg · 16pxThe quick brown fox--text-base · 15pxThe quick brown fox--text-sm · 14pxThe quick brown fox--text-xs · 10pxThe quick brown foxPalette
#0E0E10Page background — defines the brand canvas.#18181BCard / lifted container background.color-mix(in oklab, var(--surface), var(--fg) 6%)Tertiary surface tier (kami warm-sand).#EFEFF1Primary text color.color-mix(in oklab, var(--fg), var(--bg) 15%)Secondary text tier (kami dark-warm).#ADADB8Subtext / captions.color-mix(in oklab, var(--muted), var(--bg) 25%)Tertiary FG / metadata tier (kami stone).#2A2A2DDefault border / card edge.color-mix(in oklab, var(--border), var(--bg) 50%)Inner row separator that should not visually compete.#9146FFBrand accent. ≤2 visible uses per screen (lint enforced).#FFFFFFFG when --accent is the bg.#00C16ESuccess state.#FF9500Warning state.#EB0400Danger state.Also named in DESIGN.md
#772ce8Pressed/active state for purple CTAs and toggles.#c20300Pressed state if the LIVE pill is interactive (jump-to-live).#000000Full-screen / theater video background.#1f1f23Higher elevation — modals, active rows, chat input, chip default.#6f6f7bDisabled labels, very low-emphasis captions, placeholder text.Imagery & layout
Radius
4px6px8px9999pxSpacing
--space-1 · 4px--space-2 · 8px--space-3 · 12px--space-4 · 16px--space-5 · 20px--space-6 · 24px--space-8 · 32px--space-12 · 48pxElevation
--elev-raisedLayout
Layout rules
- Base unit: 4pt
- Scale: 4, 8, 12, 16, 20, 24, 32, 40, 52, 64
- Standard margin: 16pt horizontal
- Between sections: 24pt vertical
- Card gap: 16pt (rails), 12pt (grid)
- Chat line spacing: 4pt vertical (tight — chat is high-density)