Controls

Buttons, toggles and sliders. The things a thumb touches.
Everything here is live. Press, drag and toggle. Every control springs; the primary fill glows only when it moves.
Glass surfacesFrost on every paneGlass intensityRelease notesSave
Button · Intents × states
hover the default column
default
hover
pressed
loading
disabled
primary
secondary
outline
ghost
destructive
link
<Button primary> · <Button secondary loading> · <Button destructive disabled> · <Button link>
Button · Sizes & shapes
32 · 40 · 48
<Button small> · <Button large> · <Button icon> · <ButtonGroup> · <Button block>
Switch · Checkbox · Radio
live
Glass surfaces
Liquid Glass on iOS 26, frost elsewhere
Reduced motion
Zero every duration, keep spinners
Haptics
<Switch description="…">Glass surfaces</Switch> · <Checkbox indeterminate> · <RadioGroup> + <Radio>
Slider · Stepper
drag it
Glass intensity
62
Spacing
× 4px
<Slider value={62} step={1}> · <Stepper min={0} max={99}>
Avatar · Badge · Chip
24 · 32 · 40 · 56
BN
KT
+9
Neutral
Beta
Active
Pending
Failed
New
12
Outline
--ion-soft
Noor Park
esc
↵
Kbd · keycaps read as one unit
AvatarMenu
NotificationBadge
iOS
Android
Web
BadgeGroup
<Avatar large> · <AvatarGroup> · <AvatarMenu> · <BadgeGroup> · <NotificationBadge> · <Badge status success> · <Badge outline> · <Badge mono> · <Chip onPress> · <Chip onRemove> · <Kbd>
ButtonGroup · segmented · split
live
100%
<ButtonGroup segmented> · <ButtonGroup split> · attached groups share one hairline and one recess
Radio · card style · inline
same state as the list
Digest
default
<RadioGroup> stacked by default · card style for richer choices · inline for two to three short options