NS Design System
v3.0.0 · 257 tokens

09Geometry & motion

Four radii exist and no more — Tailwind's rounded-lg/-xl are deliberately left undefined so reaching for one is a build error. One easing curve, no springs.

--radius-cardvar(--ns-radius-card)
--radius-btnvar(--ns-radius-btn)
--radius-pillvar(--ns-radius-pill)
--radius-smvar(--ns-radius-sm)
--shadow-cardvar(--ns-shadow-card)
--shadow-raisedvar(--ns-shadow-raised)
--shadow-brand0 0 0 1px color-mix(in srgb, var(--color-brand-500) 55%, transparent)
--shadow-focus0 0 0 3px color-mix(in srgb, var(--color-brand-500) 25%, transparent)
--ease-outvar(--ns-ease-out)
--ease-drawvar(--ns-ease-draw)
--duration-fast120ms
--duration-base180ms
--duration-slow420ms
--duration-draw700ms

Interaction — focus ring, press/disabled/loading dim, hairline

--border-hairline1px
--focus-ring-width2px
--focus-ring-offset2px
--opacity-press0.85
--opacity-disabled0.45
--opacity-loading0.35

Radius & Border-as-Elevation

6px card / 4px button radius — the hairline border does the work shadows used to

open ↗

Motion

120–180ms plain ease-out only — no spring, no bounce, no hover-lift

open ↗

Interaction States

Rest, hover, focus, active, disabled, invalid, loading — specified once, for every control

open ↗