← All changes
What shipped
- Design system. Tokens, three type roles (display / body / data), Motion springs, a component library, and a debug gallery. Palette settles on a quartz canvas with pine and graphite text, chalk hairlines, and coral as the single accent.
- Hero numerics. Display type scales up to 128/160/200pt — the runner’s single active set, the 160pt rest-timer glyph, the set-complete bloom.
- Nine new atoms. Caps, DSRule, SegmentedProgressBar, TickRuleBar, PainSlider, StatCell, SpecCell, InlinePickerSheet, HeroNumeric.
- Runner. Inline set rows, a “previous” ghost for 2-tap repeat logging, persistent tempo bar with optional metronome, contraction type on every rep set.
- Live Activity rest timer. Lock Screen and Dynamic Island, audible tick on the last ten seconds, gong at zero.
- Watch. Heart rate, elapsed, rest-end haptic — nothing else. Protocol versioned for forward-compat.
- Rehab extras. End-of-session pain gate, next-morning reactivity check, Silbernagel flag on the summary, PR-mute toggle.
- Shell. List, detail, library, and onboarding adopt the design system. Onboarding delivers a logged set in ≤90 seconds, every question postponable.
- Free font stack bundled. Space Grotesk, Inter, JetBrains Mono.
Why
The default UI wasn’t helping when the phone sat six feet away on a tripod. The redesign codifies what not to build alongside what to ship — bigger numerics for tripod-distance reading, fewer decorative borders, a flatter canvas that keeps coral as the only pull.