Skip to content

Fitness

Fitness screens for an iOS workout app, light and dark: a daily dashboard with activity rings, an exercise library, analytics and progress charts, a profile and a workout player. Every control that has a component is an instance of it, so one token change moves every screen.

On this page
  1. Preview
  2. Components
  3. Drawn by hand
  4. Light and dark

Preview

Dashboard, Library, Analytics, Profile, Progress and Exercise, each in Light and Dark. Five screens carry the tab bar, and Exercise is a full screen player without one.

Fitness, 6 screens393 x 852 each, Light and Dark
Fitness app Dashboard screen: Today with a week strip and Wednesday 30 selected, Move 486 of 600 kcal, Exercise 38 of 45 min and Stand 9 of 12 h beside three activity rings, Heart rate 62 bpm and Sleep 7h 42m cards, and an Up next Legs and Power workout card on a photo above the tab barFitness app Dashboard screen in dark mode: Today with a week strip and Wednesday 30 selected, Move 486 of 600 kcal, Exercise 38 of 45 min and Stand 9 of 12 h beside three activity rings, Heart rate 62 bpm and Sleep 7h 42m cards, and an Up next Legs and Power workout card on a photo above the tab bar
Dashboard
Fitness app Exercise library screen: All, Strength, Cardio and Yoga chips, a Featured Legs and Power program card with a photo, a heart button and 6-week program details, and a Strength basics list that starts with DeadliftFitness app Exercise library screen in dark mode: All, Strength, Cardio and Yoga chips, a Featured Legs and Power program card with a photo, a heart button and 6-week program details, and a Strength basics list that starts with Deadlift
Library
Fitness app Analytics screen: a Week, Month and Year switch, Training time 382 min up 12.4% on last week, a stacked bar chart of Strength, Cardio and Mobility for each day, and a Weight progress card with 74.6 kg against a 72.5 kg targetFitness app Analytics screen in dark mode: a Week, Month and Year switch, Training time 382 min up 12.4% on last week, a stacked bar chart of Strength, Cardio and Mobility for each day, and a Weight progress card with 74.6 kg against a 72.5 kg target
Analytics
Fitness app Profile screen: Noemi Varga with 42 workouts, a 12 day streak and 850 total minutes, an Achievements card with Goal hit, 50 lifts, 7-day streak and Yoga week, and an Account settings list with Notifications and Privacy rowsFitness app Profile screen in dark mode: Noemi Varga with 42 workouts, a 12 day streak and 850 total minutes, an Achievements card with Goal hit, 50 lifts, 7-day streak and Yoga week, and an Account settings list with Notifications and Privacy rows
Profile
Fitness app Progress screen: the last 12 weeks with a Week, Month and Year switch, Total weekly activity 382 min with a plus 12% badge, a bar chart with Friday at 114 min highlighted, and Personal records for Bench Press, Back Squat and DeadliftFitness app Progress screen in dark mode: the last 12 weeks with a Week, Month and Year switch, Total weekly activity 382 min with a plus 12% badge, a bar chart with Friday at 114 min highlighted, and Personal records for Bench Press, Back Squat and Deadlift
Progress
Fitness app Exercise screen: a full height photo of a barbell back squat under a Legs and Power title with close and confirm buttons, Barbell Back Squats as the current exercise, a 04:32 timer, set 2 of 4, 12 reps, 84 kg, and previous, play and next controlsFitness app Exercise screen in dark mode: a full height photo of a barbell back squat under a Legs and Power title with close and confirm buttons, Barbell Back Squats as the current exercise, a 04:32 timer, set 2 of 4, 12 reps, 84 kg, and previous, play and next controls
Exercise
Screens, screen, what it shows, built from
ScreenWhat it showsBuilt from
DashboardThe day: a week strip, activity rings, heart rate, sleep and the next workoutAvatar, Button, Button / Overlay (Button), Sparkline (Chart), Navigation
LibraryPrograms and exercises, filtered by categoryTop Bar, Chip, Card, Badge / Overlay (Badge), Section Header, Navigation
AnalyticsTraining time for a period and weight against a targetTop Bar, Segmented Control, Chart / Bar - Stacked (Chart), Navigation
ProfileTotals, achievements and account settingsTop Bar, Avatar, Quick Action Button, Section Header, List, Toggle, Navigation
ProgressWeekly activity as a bar chart and the personal records behind itTop Bar, Segmented Control, Badge, Section Header, Button, Navigation
ExerciseA workout in progress with a timer, set, reps, weight and player controlsTop Bar, Button

Which components build the Fitness screens?

Navigation, Button and Segmented Control carry the structure, Card and Chip carry the Library, and five Photo / Gym slots hold photographs.

A fitness app is a tab bar, a stack of cards and charts, and a few controls that change the period or the exercise. On the light frames 145 instances sit on each row of the Fitness page: 87 are Appetite UI components, 5 are photo slots and 53 are Lucide icons with 26 different names. The dark row holds the same instances, so every number below is per row.

What it is built from, component, per row, where
ComponentPer rowWhere
Navigation25Five tab bars with four labels each, on every screen but Exercise
Button12Header actions, See all and View all links, and the player controls on Exercise
Segmented Control8Analytics and Progress, one control and three selectors each
Status Bar6Every screen
Chip5Library
Card5Library, one vertical and four horizontal
Top Bar5Every screen but Dashboard
Quick Action Button4Profile, the achievements
Section Header4Library, Profile twice, Progress
List3Profile, the settings stack
Chart / Bar - Stacked (Chart)3Analytics, the chart, its Trend Chip and its grid
Badge2Library, the Featured overlay, and Progress
Avatar2Dashboard, Profile
Sparkline (Chart)1Dashboard
Button / Overlay (Button)1Dashboard, the play button on the Up next card
Toggle1Profile, on the Notifications row

5 Photo / Gym slot instances hold photographs, each one named so it can be found and replaced.

Counted on October 2, 2026 with a Plugin API script over the six light frames of the Fitness page in the Appetite UI Figma file. Nested and hidden instances count, parts such as navigation labels are grouped with their family, and an icon is an instance named in lowercase.

Which parts of the Fitness screens are drawn by hand?

Analytics places a Chart component. The activity rings, the week strip, the Progress bars and the weight rail are drawn on the frame.

Analytics places Chart / Bar - Stacked with its Trend Chip, so a chart restyle there follows the component. The table above lists one bar chart and no ring or slider, so the three activity rings and the week strip on Dashboard, the seven bars on Progress and the weight rail on Analytics are drawn on the frame. They resolve through variables like everything else, and they are where a chart or progress component would plug in.

How do the Fitness screens switch between light and dark?

Each frame pins Color Tokens to Light or Dark and Platform to ios-md, so the dark row is the light layout with one mode changed.

Nothing is left to inherit: a frame dropped into another file arrives in the theme it was drawn in. A frame set to Dark resolves every token against the Dark mode of Color Tokens, so the dark row is the same layout with the other values.

The six light frames hold 422 solid fills and strokes bound to 47 different variables, and none is unbound. The activity rings, the week strip and the bars resolve through the same variables, among them the three chart/series colors on Analytics. Nine fills are pictures: two avatars, the Up next card, the featured program, four exercise thumbnails and the Exercise photograph. Seven more are gradients: the tab bar fade on five screens and a shade over each of the Up next and Exercise photographs.

Tokens, token, where it lands, paints
TokenWhere it landsPaints
text/soft-500Tab bar labels at rest, units, captions and meta lines54
text/strong-950Numbers, Top Bar titles and Section Header titles48
brand/baseActive tab label, Section Header links, selected states30
fg/strong-950The Status Bar on five screens and primary icons29
bg/white-0The tab bar, Chip fills and exercise rows25
text/sub-700Chip and selector labels, exercise subtitles24
border/soft-100Tab bar and exercise row outlines, Top Bar buttons21
fg/sub-700Chart labels and header icons16
fg/soft-500Tab bar icons at rest15
bg/raisedTop Bar containers and cards14
state/success/base-500Done days on the week strip and completed marks12
border/sub-200Chart gridlines, Chip outlines, dividers between stats11
bg/grouped-canvasThe screen itself and the surface of the tab bar fade10
chart/series-1, chart/series-2, chart/series-3The three segments of each stacked column on Analytics, and the legend dots8, 8, 8
bg/sub-200Progress bar fills and the weight rail7
static/static-white-0Text and marks over photographs, the switch handle13
colors/alpha/gray/alpha-10The wash behind each tab bar label5
text/disabled-400The weight statistics on Analytics5
state/error/base-500The heart rate icon, the Sparkline and its end dot on Dashboard, and one mark on Profile4
state/success/lighter-50, state/success/dark-950Ring track, Trend Chip, achievement plate and Badge4, 3
state/feature/base-500, state/feature/light-200, state/feature/lighter-50Sleep: the moon, the Night bars, a record plate3, 6, 1
text/on-color/strongThe selected day on the week strip3
fg/disabled-400The trend icons on Progress records3
state/faded/lighter-50, state/faded/base-500The icon plate and glyph of the Profile settings rows3, 3
state/warning/lighter-50, state/warning/base-500Achievement and record plates, the Stand ring2, 2
brand/lighterAchievement and record plates2
bg/scrimThe dim under overlays on photographs2
bg/elevated-1The Segmented Control track on Analytics and Progress2
bg/strong-950, text/white-0The value chip on Progress and the selected Chip, fill and label2, 1
static/static-white-alpha-70The caption and meta on the Up next card2
brand/alpha-10The Exercise Button wash2
brand/alpha-16The Move ring track1
state/away/lighter-50, state/away/base-500The Stand ring track, progress and label1, 2
bg/soft-100, state/highlighted/base-500The track and the fill of the weight ring on Analytics1, 1
state/error/lighter-50An achievement plate on Profile1
glass/borderThe outline of the Featured overlay Badge1
static/static-black-950The heart on the featured card1
Text and effect styles, style, uses, screens
StyleUsesScreens
xs/emphasized475
xs/default275
sm/default265
2xl/emphasized175
base/emphasized164
sm/emphasized144
lg/emphasized95
xl/emphasized83
3xl/emphasized33
4xl/emphasized11
6xl/emphasized11
dropShadow/xs156
dropShadow/lg55
backdropBlur/md22
backdropBlur/sm21
dropShadow/sm11

Paints are every visible solid fill and stroke on the light frames, inside instances included, counted by bound variable name on October 2, 2026. Where a token appears as both a fill and a stroke the two counts are added. A style row counts a text layer or a node that carries the style.

Collections, collection, modes, what it drives here
CollectionModesWhat it drives here
Color TokensLight, DarkEvery color, pinned on each frame
Platformios-md, ios-lg, android, ios-duo-outer, ios-duo-innerStatus bar and platform metrics, pinned to ios-md
FoundationsDefaultSpacing, radius and control sizing
TypographyDefaultThe 11 text styles above
Platform BridgeBrand, SystemNot pinned on the frames, so the default mode applies
MotionDefaultNot used on these screens

On iOS the minimum touch target is 44 pt. The frames pin Platform to ios-md, where platform/min-touch-target reads 44, so a tap target on these screens starts there. Android would read 48.