Peloton Mobile — design system & UI screens
Fitness community platform for discovering and joining teams to hit workout goals with others. The screen features a tabbed navigation (Teams, Feed, Challenges) with a prominent hero image showcasing group fitness, followed by a search bar, official team cards displaying member avatars and stats (member count, favorites), and a personalized recommendation section based on user tags and leaderboard interests.
This is a static, crawlable rendering for search & AI engines. The interactive version — filters, live decode console, copy & export — is at https://mozaika.design/website/peloton-mobile.
Decoded design system
Peloton Mobile's decoded design system: background #0C0C0D, text #FFFFFF, accent #1A1630, link #1A1630, primary #1A1630; type scale h1 34px / h2 22px / body 17px; 8px spacing base; 12px base radius. The single interactive/action color is #1A1630 — used only on interactive or must-notice elements (buttons, links, key highlights), never on large fills.
Color roles
| Role | Value |
|---|---|
| bg | #0C0C0D |
| surface | #1A1A1B |
| border | #303031 |
| text | #FFFFFF |
| text_muted | #A2A2A3 |
| primary | #1A1630 |
| accent | #1A1630 |
| link | #1A1630 |
| button_bg | #1A1630 |
| button_text | #0C0C0D |
Using these colors
- Action color
#1A1630— the single interactive color; only on things you click or must notice, never large fills. primary,accent,link,button_bgare all#1A1630— one role, not several (the action color).- accent
#1A1630— THE accent / action color — interactive & must-notice only (buttons, links, focus, one key highlight); never large fills or backgrounds. Scarcity is what makes it read as designed.
Typography
- h1: 34px
- h2: 22px
- body: 17px
Spacing
- base unit: 8px
- scale: 4px, 6px, 8px, 12px, 16px, 18px, 22px, 24px, 32px, 40px
Radii
- base: 12px
- button: 12px
Shadows (elevation)
- subtle:
rgba(0, 0, 0, 0) 0px 0px 0px 0px - card:
rgba(0, 0, 0, 0.05) 0px 4px 4px 0px - overlay:
rgba(0, 0, 0, 0.05) 0px 16px 40px 4px
Motion
Micro-interactions run at 150ms (dominant) with ease-in-out.
- durations: 150ms · 300ms · 500ms
- easings:
ease-in-out·ease - animated properties: color, padding-block-start, opacity, transform
Native design tokens
| Token | Value |
|---|---|
--toastify-color-light | #fff |
--toastify-color-dark | #121212 |
--toastify-color-info | #3498db |
--toastify-color-success | #07bc0c |
--toastify-color-warning | #f1c40f |
--toastify-color-error | #e74c3c |
--toastify-color-transparent | rgba(255,255,255,0.7) |
--toastify-icon-color-info | #3498db |
--toastify-icon-color-success | #07bc0c |
--toastify-icon-color-warning | #f1c40f |
…and 77 more measured on the page.
Button states (measured)
- primary hover: border
2px solid rgb(208, 12, 42)· background#D00C2A - primary focus: box-shadow
rgb(132, 182, 225) 0px 0px 0px 2px
Layout (measured)
- container max-width:
1220px - nav: 406px
Motion choreography (measured)
Load order: svg.sc-10360a0e-1×11 → div.sc-f7025cf8-1×99 → div.Flex__StyledFlex-design-×2 → div.ReactModal__Overlay → div.fides-banner → div.fides-banner
Overlay recipe (measured)
dialog panel: rgba(0, 0, 0, 0) · radius 0px
Responsive (measured)
- breakpoints: 580px · 768px · 800px · 1024px
- mobile (390px): hero 32px · nav inline
Full design system, per-section tokens & DESIGN.md / Tailwind / CSS exports →