Skip to content
Components
/
Fitness
Dark

Fitness

Six fitness screens, light and dark, assembled from the same components and the same variables as the rest of the system. The card photography ships as empty slots, each one addressable in a single place.

Preview

Six fitness screens assembled from the same components and the same variables as every other screen in the system. Retint the brand and all six move at once.

Fitness, light and dark
6 screens, 393 x 852, 146 instances per row
Fitness app, dashboard screen, lightFitness app, dashboard screen, dark
Dashboard
Fitness app, library screen, lightFitness app, library screen, dark
Library
Fitness app, analytics screen, lightFitness app, analytics screen, dark
Analytics
Fitness app, profile screen, lightFitness app, profile screen, dark
Profile
Fitness app, progress screen, lightFitness app, progress screen, dark
Progress
Fitness app, exercise screen, lightFitness app, exercise screen, dark
Exercise

The Figma page holds every screen twice, a light row and a dark row. Each frame sets its modes explicitly, Color Tokens = Light or Dark and Platform = ios-md. Nothing is left to inherit, so a frame dropped into another file arrives in the theme it was drawn in.

Components

146 instances per row, 292 across both. Every control that has a component is an instance of it, so a change to the component reaches all six screens without anyone opening them.

Component
Per row
Where
25
All but Exercise, one bar and four labels each
12
Every screen but Analytics, most of them icon only
10
Dashboard and Library, across icon, horizontal and vertical
8
Library five, Analytics three
6
Every screen
5
Dashboard, Profile, Progress
5
All but Dashboard
4
Progress, one control and three selectors
3
Dashboard, Analytics, Progress
3
Profile, the settings stack
2
Dashboard, Profile
1
Profile, on the notifications row

That is 84 component instances. Another 54 are Lucide icons, 25 distinct names, every one an instance off the shared icon page rather than a pasted vector. The last 8 are the photo slots, covered below. No third party asset is placed on these screens.

Drawn locally, not instances: two bar charts of seven bars each on Analytics and Progress, a calorie ring built from two ellipses, a weight rail with a fill and a dot, five achievement tiles, three personal record rows, and six divider shapes. Charts and the ring have no component to be an instance of. The dividers do: two LINE nodes in the Profile settings list, two more between the profile stats, and on Library and Exercise a rectangle named Divider carrying no fill at all. Those six should fold back into Divider, and the weight rail into Progress.

Tokens

No screen carries a raw hex. The charts, the ring and the rail all resolve through variables, which is what makes the dark row a mode switch rather than a second design.

Token
Where it lands
Screens
text/strong-950
Stat values, record weights, row titles
All six
text/soft-500
Units, dates and secondary meta
All six
text/sub-700
Stat labels and settings row text
Analytics, Profile, Progress
brand/base
Chart bars, the calorie ring and the rail fill
Analytics, Progress
bg/sub-200
The unfilled half of every bar and the rail track
Analytics, Progress
border/soft-100
The settings list edge and its two dividers
Profile
state/…/lighter-50
Six different tints behind the small icon tiles
Profile, Progress

Geometry runs on the same file. Padding and gaps come from dimensions/spacing, corners from dimensions/radius/lg, xl and 2xl. Six collections carry the file: Foundations, Color Tokens, Typography, Motion, Platform and Platform Bridge. Color Tokens holds Light and Dark, Platform holds ios-md, ios-lg and android, Platform Bridge holds Brand and System.