Tier 2Tier 2 · Native apps: tokens only. Switch, Slider, AlertDialog, ModalBottomSheet and the preference rows are stock Material 3. The 52×32dp switch with its 16→24dp handle growth is Material's shape, coloured by the app's primary.--yellow-solid · --component-bg · --component-bg-active · --border · --red-solid
The switch is the proof
Both switches read --yellow-solid, and neither matches the other. That gap is the tier working.
Android52x32dp, 2dp outline, handle 16 to 24dp on select
iOS51x31pt, full-height knob, no outline
Confirmation is an AlertDialog. Choice-of-many is a ModalBottomSheet. Never an iOS action sheet or a web modal.
Destructive copy names the object and the consequence. The dialog body carries it; the row label never does.
9:41
Settings
Playback
Autoplay next file
Start the next file in the folder automatically
Stream quality
Auto
Skip intro
Detect and offer to skip title sequences
Volume boost
Downloads
Wi-Fi only
Never download over mobile data
Storage limit
20 GB · 6.4 GB used
Clear downloads
Frees 6.4 GB
About
Version
8.4.1 (2260)
Files
Transfers
Activity
Account
Preference rowsTwo-line ListItems with a trailing Switch. The supporting line does the explaining, Android has no section footer.
9:41
Films
tears_of_steel.mkv
1.20 GB · last week
Dune.Part.Two.2024.2160p.WEB-DL.mkv
18.6 GB · 5 days ago
Delete 2 files?
tears_of_steel.mkv and 1 other file will be removed from your put.io account. Downloaded copies on this device are kept.
CancelDelete
Name · A to Z
Name · Z to A
Newest first
Largest first
AlertDialog + ModalBottomSheet28dp dialog corner, text-button actions; the sort sheet has a drag handle and a leading check.
Switch
52 × 32dp
on: --yellow-solid + --primary-foreground
Slider
16dp track
M3 expressive, 4dp handle
Dialog
28dp corner
--component-bg surface
Sheet
28dp top
32 × 4dp drag handle
Subhead
14sp medium
--yellow-text-secondary
Destructive
--red-text-secondary
from error / onErrorContainer
Text button
40dp · pill
--yellow-text-secondary label
Version
Berkeley Mono
tabular, trailing
Per-control detail, the token map and the full don't list live in platforms/android/DESIGN.md.
Do not reach for components.css's .switch, .modal or .sheet when an Android screen needs one. They encode web pointer states, a 6px radius and a hover model that does not exist on a phone.

Material already has all three, and it already knows this app's colours.