Skip to content

Material 3

Material's own patterns, rebuilt as Figma components. Every layer reads a token, so one screen carries your brand or drops back to the untouched system values without a single detach.

On this page
  1. Material 3 support
  2. Brand and System mode
  3. Material 3 patterns
  4. Snackbar and pickers
  5. Material 3 and iOS
  6. Tokens and state layers
Material 3 screens tilted on a lilac ground around the Google Play icon: a dark audio player, a light messaging thread, a red photo home screen with purple widgets and two clock faces in a light time picker.

Appetite UI redraws the Material 3 patterns on your tokens and puts your brand inside them. The structure stays Material: the same anatomy, the same spacing, the same behavior a user already knows. Color, type, shape and elevation come from your system, so an App Bar or a Dialog reads as Material and as yours at the same time.

How does Appetite UI support Material 3?

The Material pages rebuild Material 3 as Figma components: 17 pattern pages, 44 variant sets and 460 variants, each with Material's own anatomy and a brand or system reading. The android mode of the Platform collection sets the touch target to 48 and list rows to 56.

Hover is part of Material, so the Material sets carry a Hovered state that the Appetite UI components do not have.

Measured in the Figma file on October 2, 2026.

How do Brand and System mode differ?

Brand mode resolves the Material color, shape and type roles to Appetite UI tokens, and System mode resolves the same roles back to Material's baseline. Platform Bridge is one collection with two modes, and every Material color role in it is an alias, never a literal.

Switching the mode on a frame moves the whole mirror at once. Nothing is repainted and nothing is detached.

  • Brand modeM3/sys/color/primarybrand/basecolors/blue/500#155DFC
  • System modeM3/sys/color/primaryplatform/m3/primary#6750A4

Geometry owned by the platform holds either way: the android switch track is 52 by 32, list rows are 56 and the touch target is 48.

Which Material 3 patterns are covered?

17 pattern pages in the Material mirror, one row each, with 44 variant sets and 460 variants in total, counted in the Figma file.

Material 3 pattern pages, with the variant sets and variants on each
Pattern pageSetsVariants
App Bar14
Button8270
Card13
Checkbox16
Chip18
Dialog617
Keyboard18
List16
Navigation Bar25
Picker1291
Radio Button14
Sheet410
Snackbar214
Status Bar00
Switch14
Text Field18
Tooltip12
Total44460

Button and Picker hold most of the total because both cross size or format with state.

Counted in the Figma file on October 2, 2026. A set is every component set on the page, helper sets included, and a variant is a component inside one of those sets. Loose single components, Status Bar and Rich Tooltip among them, are not counted.

How are the Switch, Snackbar, time pickers and status bar built?

The time pickers read Appetite UI surfaces in Brand mode, the Snackbar comes in three configurations with an optional close affordance, and the status bar draws no camera cutout. The Switch sits beside them for its numbers.

Switch, Snackbar and time pickers, component, property, options
ComponentPropertyOptions
SwitchSelectedTrue | False
SwitchIs EnabledTrue | False
SnackbarConfigurationText only | Text & action | Text & longer action
SnackbarOptionOne line | Two lines
SnackbarShow close affordanceTrue | False
SnackbarSupporting TextAny text
Dial pickerFormat12 hour | 24 hour
Dial pickerOrientationVertical | Horizontal
Keyboard pickerFormat12 hour | 24 hour

The Switch is 52 × 32 at full radius. The selected thumb is 24 with a 16 check icon, the unselected thumb is 16, and the track reads M3/sys/color/primary when selected. A state layer sits over the track at opacity 0 until a state needs it.

The Snackbar is 344 wide and 48, 68 or 112 high, at radius 4 on M3/sys/color/inverse-surface. The close affordance is a 48 target around a 40 container.

The time pickers are cards at radius 24 on M3/sys/color/surface-container-high, which Brand mode maps to bg/weak-50, #F4F5F5 in Light. Dial picker is 328 × 520 vertical or 572 × 384 horizontal, and Keyboard picker is 328 × 243 at 12 hour or 264 × 243 at 24 hour.

The AM and PM selector is 52 × 80 in two 52 × 40 halves. The selected half reads M3/sys/color/tertiary-container with its label on M3/sys/color/tertiary, brand/lighter and brand/base in Brand mode, and the selector has Enabled, Hovered and Focused states.

The status bar is 412 × 52. It draws no camera cutout, because every Android maker places the camera hole differently and the system reports it through display cutout insets. The space stays as an empty spacer, so the time and icons keep their places and no baked in black spot covers app content.

How does Material 3 differ from iOS?

Material uses 48 dp touch targets against 44 pt on iOS, rounds controls fully, and carries a Hovered state on Button and Picker. The pairs below are the closest components on each side, measured in the Figma file.

Material 3 and iOS counterparts, topic, Material 3, iOS, what differs
ComponentMaterial 3iOSWhat differs
ToggleM3 / Switch, 52 × 32iOS / Toggle, 64 × 28Material has a 24 thumb inside the track, iOS has a 38 × 24 knob that becomes a glass lens when pressed
NavigationM3 / Navigation bar, 412 × 80, three to five itemsiOS / Tab Bar, floating capsule 62 high, two to five tabsMaterial is a full width bar with a separate 24 high Gesture Navigation component, iOS floats on glass
Top barM3 / Top app bar, Small 64 high, Medium 112, Large 152iOS / Toolbar on a 44 high top barMaterial has four bar types: Small, Center-aligned, Medium and Large
DialogM3 / Basic dialog, 304 wide at radius 24iOS / Alert, 300 wide at radius 32Material has Basic, List and Scrollable list dialogs, iOS draws the alert as glass
SheetM3 / Bottom sheet 412 wide and Side Sheet 320 wideiOS / Sheet - Full ScreenMaterial adds a side sheet for large screens
ListM3 / List Item, 56, 72 or 88 high by LinesiOS / List with a 44 minimum rowMaterial sets the row height by lines of text, iOS sets only a minimum
Text fieldM3 / Text Field, Filled or Outlined, 56 highiOS / Text FieldMaterial has Enabled, Focused, Error and Disabled states
PickerM3 / Modal date picker 360 × 524, Dial and Keyboard time pickersiOS / Date and time pickersMaterial offers a dial and a keyboard variant of the time picker
ChipM3 / Chip, 32 high at radius 8No counterpartThe Apple pages have no chip
SnackbarM3 / Snackbar, 344 wideNo counterpartThe Apple pages have no snackbar
TooltipM3 / Plain Tooltip and Rich TooltipNo counterpartThe Apple pages have no tooltip

The Platform collection carries the shared numbers, one mode per platform.

Platform collection, android mode against ios-lg, variable, android, ios-lg
Variableandroidios-lg
grid/safe-area/top5262
grid/safe-area/bottom2434
platform/min-touch-target4844
platform/bar/top-height6444
platform/bar/bottom-height6449
platform/list-row/min-height5644
platform/control/corner99998
platform/sheet/corner2812
platform/dialog/corner2812
platform/switch/track-width5264
platform/switch/track-height3228

The minimum touch target is 48 on android and 44 on every iOS mode. Both values are bound to platform/min-touch-target, so one list row obeys both platforms without a second copy. The iOS side is on the iOS page.

Tokens and state layers

Every Material role in Platform Bridge is prefixed M3/sys/: 32 color roles, 6 corner steps, 15 typescale steps and 7 state opacities.

Material roles in Light, role, brand, system
RoleBrandSystem
color/primary#155DFC#6750A4
color/secondary-container#DBEAFE#E8DEF8
color/error#FB2C36#B3261E
color/surface#FFFFFF#FEF7FF
color/on-surface#0E0E0F#1D1B20
color/on-surface-variant#48484A#49454F
color/outline#8E8E93#79747E
color/surface-container-high#F4F5F5#ECE6F0
color/surface-container-highest#E9E9EA#E6E0E9
Material roles in Dark, role, brand, system
RoleBrandSystem
color/primary#2B7FFF#D0BCFF
color/secondary-container#0D2673#4A4458
color/error#FB2C36#F2B8B5
color/surface#0E0E0F#141218
color/on-surface#FFFFFF#E6E0E9
color/on-surface-variant#C7C7CC#CAC4D0
color/outline#AEAEB2#938F99
color/surface-container-high#242427#2B2930
color/surface-container-highest#48484A#36343B
Material shape roles, shape role, brand, system
Shape roleBrandSystem
corner-extra-small44
corner-small88
corner-medium1212
corner-large1616
corner-extra-large2428
corner-full99999999

One of the six corner steps moves between the modes: corner-extra-large routes through dimensions/radius/* in Brand and holds Material's own 28 in System. Typescale binds the same way: typescale/body-large is typography/fontSize/base in Brand and 16 in System.

Material state opacities, state opacity, both modes, covers
State opacityBoth modesCovers
state/hover-opacity8Pointer over a target
state/focus-opacity10Keyboard focus
state/pressed-opacity10Touch down
state/disabled-container-opacity12A disabled container
state/dragged-opacity16An item being moved
state/scrim-opacity32The wash behind a dialog
state/disabled-content-opacity38A disabled label or icon

The seven opacities are the one part of the mirror the Bridge leaves alone: bare numbers, the same in both modes, because a state layer is a rule about interaction and brand does not decide it. They bind straight to node opacity on _M3 / State layer, over a fill of M3/sys/color/on-surface.

Values read in the Figma file on October 2, 2026, from the component _M3 / State layer, node 10166:478.

Material Design is a trademark of Google LLC. iOS, SwiftUI, SF Pro and SF Symbols are trademarks of Apple Inc. Appetite UI is not affiliated with, endorsed by or sponsored by either; platform names here describe compatibility.

These patterns are referenced under CC BY 4.0 and redrawn in Appetite UI's own geometry, on its own tokens, in Inter, with Lucide icons. Material Symbols are not bundled: add them yourself and they fall under the Apache License 2.0.