Skip to content

Settings

A settings menu, an account form and a preferences list with switches, drawn light and dark. 17 of the 29 instances placed on them are List rows, so one change to List reaches the whole settings area.

On this page
  1. Preview
  2. What settings need
  3. Components
  4. Tokens

Preview

Three screens for the part of an app nobody demos: a menu that groups its rows, an account form, and a preferences list that carries switches.

Settings, three screens, light and dark393 x 852 each, Platform ios-md
Settings menu screen: a Settings top bar with a back button and rows grouped under Profile, App and Integrations, from Edit profile, Body measurements and Fitness goals to Notifications, Units, Language, Health data and Wearable devices, each with a leading icon tile and a chevronSettings menu screen in dark mode: a Settings top bar with a back button and rows grouped under Profile, App and Integrations, from Edit profile, Body measurements and Fitness goals to Notifications, Units, Language, Health data and Wearable devices, each with a leading icon tile and a chevron
Menu
Account setup screen: a top bar with a back button and a blue confirm button, a profile photo with a Change avatar link, Name, Email and optional Phone fields with a country flag, and a Change password buttonAccount setup screen in dark mode: a top bar with a back button and a blue confirm button, a profile photo with a Change avatar link, Name, Email and optional Phone fields with a country flag, and a Change password button
Account setup
Preferences screen: a top bar with a back button and a blue confirm button, and rows under General, Notifications and Support: Language English, Currency USD, Dark mode off, Push notifications and Email alerts switched on, SMS alerts off, Help center and Live chatPreferences screen in dark mode: a top bar with a back button and a blue confirm button, and rows under General, Notifications and Support: Language English, Currency USD, Dark mode, Push notifications and Email alerts switched on, SMS alerts off, Help center and Live chat
Selection
Screens, screen, what it shows, built from
ScreenWhat it showsBuilt from
MenuNine rows in three groups, Profile, App and Integrations, the last one cut off at the bottom edgeTop Bar, List
Account setupA photo, three fields and a Change password buttonTop Bar, Avatar, Text Input, Button
SelectionThe Preferences list: values, four switches and two links to helpTop Bar, List, Toggle

Each screen is drawn in Light and in Dark, with Color Tokens set on the frame itself, so the dark screens are the same instances resolved against the other mode. On Selection the Dark mode switch is off in the light screen and on in the dark one.

What does a settings screen need from a component library?

Rows that group, a switch for every yes or no choice, a top bar that goes back and confirms, and fields for the account.

A settings screen needs grouped rows, a switch for each yes or no choice, a top bar with back and confirm, and form fields. In this set those are List, Toggle, Top Bar and Text Input, and List alone is 17 of the 29 instances placed on the three screens.

Needs, need, component, where it appears
NeedComponentWhere it appears
Group rows under a headingListMenu, nine rows in three groups, and Selection, eight rows in three groups
Switch a setting on or offToggle inside a List rowSelection: Dark mode, Push notifications, Email alerts and SMS alerts
Go back and confirmTop Bar with two ButtonsAll three screens, a confirm button on Selection and Account setup
Edit account detailsText InputName, Email and Phone on Account setup
Show who is signed inAvatarAccount setup

The minimum touch target on iOS is 44 pt. The frames pin Platform to ios-md, where platform/min-touch-target reads 44. The android mode of the same variable reads 48 dp.

What are the Settings screens built from?

76 instances across the 3 screens. 38 are Appetite UI components, 37 are Lucide icons with 20 different names, and the last is a flag asset in the phone field. 7 components carry the whole set.

29 instances sit directly on the frames and the rest sit inside them. Placed counts an instance that is not inside another instance. Nested counts one that is, which is where the Toggles, the Top Bar buttons and every glyph live. A component is counted by its set name, and an icon is an instance named in lowercase. The dark row holds the same instances as the light row.

What it is built from, component, placed, nested, where
ComponentPlacedNestedWhere
List170Menu 9, Selection 8
iOS / Status Bar30All three screens
Top Bar30All three screens
Text Input30Account setup
Button25Placed on Account setup, Change avatar and Change password. Nested in the Top Bar as the back button on all three screens and the confirm button on two
Toggle04Selection, one in each of four List rows
Avatar10Account setup
Lucide icons037Seventeen leading glyphs and eleven chevrons in List rows, the Top Bar buttons, and four on Account setup
Country Flags01Account setup, in the Phone field

List carries 17 of the 29 placed instances, and the Toggles and the row glyphs sit inside it. That is the point in one number: change List and the settings area changes, because a settings screen is a set of content decisions. The only parts drawn by hand are 13 lines named Divider, each 345 wide with its stroke bound to border/soft-100, 6 on Menu and 7 on Selection.

Counted on October 2, 2026 with a Plugin API script over the three light frames of the Settings page in the Appetite UI Figma file. Lucide supplies 20 different icons 37 times.

Which tokens do the Settings screens use?

Every solid fill and stroke resolves through a variable except the flag in the phone field, which makes the dark row a mode switch.

The three light frames hold 171 solid fills and strokes that are bound, spread over 17 different variables. The only unbound solid paints are 6 vectors of the country flag, the colors of a flag and not a token.

Tokens, token, where it lands, paints
TokenWhere it landsPaints
border/soft-100The 13 Divider lines, the group outlines, the back button outline and the Change password outline25
bg/white-0Every List row, the group cards and the screen24
text/soft-500Group headings, input labels and the chevrons in List rows22
text/strong-950Row titles, screen titles and entered text21
state/faded/lighter-50The leading tile of each List row17
state/faded/base-500The glyph inside each leading tile17
fg/strong-950Status Bar glyphs15
brand/baseThe confirm button, switched on Toggle tracks and the Change avatar link6
static/static-white-0Toggle knobs and the check glyph in the confirm button6
fg/sub-700The back button chevron and the lock glyph4
bg/raisedThe back button fill3
text/sub-700Row values such as English and USD, and the Change password label3
bg/soft-100Switched off Toggle tracks2
border/sub-200The Text Input underline2
text/disabled-400Hints and the empty phone number in Text Input2
fg/soft-500, fg/disabled-400Text Input glyphs1 each
Text and effect styles, style, uses, screens
StyleUsesScreens
base/emphasized193
xs/default62
sm/default62
base/default41
xl/emphasized33
dropShadow/xs33
Collections, collection, modes, what it drives here
CollectionModesWhat it drives here
Color TokensLight, DarkEvery bound paint above, pinned on each frame
Platformios-md, ios-lg, android, ios-duo-outer, ios-duo-innerStatus bar and platform metrics, pinned to ios-md
FoundationsDefaultRow height, group spacing and radius
TypographyDefaultRow titles, values and group headings
Platform BridgeBrand, SystemNot pinned on the frames, so the default mode applies
MotionDefaultNot used on these screens

Paints are every visible solid fill and stroke on the three light frames, inside instances included, counted by bound variable name on October 2, 2026.