fitme·story

The design system

13 UX foundations. ~125 semantic tokens. 13 reusable components. CI-enforced and visible in shipped screens.

The 13 principles

  1. 1.Clarity over cleverness
  2. 2.Touch affordances above 44pt
  3. 3.One primary CTA per screen
  4. 4.Progressive disclosure by default
  5. 5.Motion communicates state change, not personality
  6. 6.Empty states teach, not decorate
  7. 7.Error recovery beats error prevention
  8. 8.Loading states beat spinners
  9. 9.Color is a last-resort differentiator
  10. 10.Every interactive element has a disabled variant
  11. 11.Accessibility is a constraint, not a feature
  12. 12.Typography owns hierarchy
  13. 13.Spacing owns grouping

Onboarding flow — six screens

The first-run path uses the same typography, spacing, card radius, and CTA logic as the rest of the app — so onboarding feels like the beginning of the product, not a separate mini-site. Every screen offers an explicit skip; no step blocks.

Welcome
Welcome

Brand entry. One CTA, no chrome, the wordmark and the value proposition. The first frame the user judges the app on.

Goal selection
Goal selection

A concrete outcome chosen up front, with large touch targets and a single primary action. The progress bar at top is the only navigation chrome.

Tell us about you
Tell us about you

Training experience and weekly frequency calibrate the program. Skip is always available — onboarding never blocks.

Sync Apple Health
Sync Apple Health

Permission with intent. Each data type listed by purpose, recovery and readiness explicitly named. Skip with a clear later-in-Settings escape.

Help us improve
Help us improve

Honest analytics. Green checks on what is collected, red on what is not — health values and personal information stay local. Continue Without is just as prominent as Accept.

Save your progress
Save your progress

Email or Apple, both equally weighted, log-in for returning users, skip-for-now for trial. The ladder reads top-down by friction.

Live app — daily use with mock data

Four screens from the daily flow, captured against a seeded test profile so the data is realistic without exposing real users. Same tokens, same components, same metric-tile grammar carried from onboarding into Home, Training, Session-Complete, and Nutrition.

Home — Day 84
Home — Day 84

Personalized greeting, rotating achievements card, contextual day type (rest day with Start Recovery + Log Meal), body-composition snapshot below the fold. All actions are one tap away.

Training plan — live session
Training plan — live session

Week strip with completion dots, suggested session card with progress ring, exercise rows showing sets / rep range / rest plus an inline coaching note in the brand orange.

Session complete — celebration sheet
Session complete — celebration sheet

Modal presentation honours every PR. Duration, exercises, total sets, and volume rendered in the same metric-tile grammar as the home dashboard. Share is one tap.

Nutrition — macros and strategy
Nutrition — macros and strategy

Macro targets at the top, named strategy beneath ("Continuous deficit"), Repeat Last for the daily ritual, meals timestamped with kcal + protein. Same chip and card grammar as the rest of the app.

Under the hood

What the principles and screens look like at the token layer — the raw inputs every view in the app composes from.