Foundations
Elevation & shape
Elevation
Content that sits in the page uses tone: it steps up through the surface-container roles. Shadows are only for things that float. Each level is a 1px alpha ring plus two soft layers, defined with light-dark() so dark mode gets deeper, quieter shadows. On React Native the same levels ship as per-scheme boxShadow values.
Shape
Components use semantic shapes, not raw radii, so one decision changes every control. Tailwind: rounded-shape-control and so on. The primitive radius scale is unchanged.
--shape-control (9999px)Capsule: Button, IconButton, Chip, SegmentedControl, Switch, Badge
--shape-field (12px)Input, Select, Textarea
--shape-container (16px)Card, Popover, Menu, Toast
--shape-overlay (24px)Dialog, Sheet, CommandPalette
--shape-tooltip (8px)Tooltip, Kbd
Concentric radii
A shape inside a shape keeps the same centre of curvature: inner radius = outer radius − padding, floored at --shape-min (4px). Menus (16px with 6px padding) use 10px items; the command palette (24px with 8px padding) uses 16px items.