Foundations · Structure
Two structural token families. Radius is the --radius-* corner scale — smallest to fully-round, capped at 12px in app chrome — with two semantic aliases components should reach for. Spacing has no --space-* vars: it's Tailwind's default 4px scale used directly as p-* / gap-* / space-y-*. Both keep the rescuer roster on one rhythm.
Buttons, inputs, selects and toggles. The global *:focus-visible rule rounds the focus ring to this radius — hover the button or click the field to see it. Add foster is pinned :hover.
Cards, list tiles and panels — the default container radius. Nested corners round inside it (avatar = --radius-pill, chip = --radius-pill).
12px in app chrome; a nested corner = outer radius − its padding, so insets stay concentric.999px — chips, pills, the switch track and avatars. Full rounding, independent of element size.--radius-md (6px). Buttons, inputs, selects, toggles — anything you click or type into. The global focus ring rounds to this.--radius-lg (8px). Cards, roster tiles, panels — the default container radius. Both aliases are knob-swappable at the theme level.--space-* vars — spacing is Tailwind's default scale, step n = n × 0.25rem (n × 4px). e.g. gap-3 = 12px, p-5 = 20px.p-* / px-* / py-*, gap-*, space-y-* / space-x-* and m-* — so gutters and vertical rhythm stay aligned across cards, rows and sections.Source · src/app/design-system/tokens/page.tsx (Radius + Spacing sections) · tokens from @phauna/ds tokens/scale.css. Spacing is Tailwind's 4px scale — the system defines no --space-* variables.