obvious v0.1.0

Space and size

A 4px scale, the same in every app. Pick the nearest step rather than adding a value.

Spacing

--ds-space-3xs2px
--ds-space-2xs4px
--ds-space-xs8px
--ds-space-sm12px
--ds-space-md16px
--ds-space-lg24px
--ds-space-xl32px
--ds-space-2xl48px
--ds-space-3xl64px
--ds-space-4xl96px
--ds-space-5xl128px

Fluid spacing

For vertical rhythm between sections. The phone size is already generous, and wider screens get a bit more.

TokenValue
--ds-space-fluid-sclamp(16px, 4vw, 22px)
--ds-space-fluid-mclamp(22px, 5.5vw, 32px)
--ds-space-fluid-lclamp(36px, 8vw, 56px)
--ds-space-fluid-xlclamp(56px, 11vw, 88px)

Layout

TokenValue
--ds-gutterclamp(20px, 5vw, 64px)
--ds-measure68ch
--ds-container1140px

Controls

Heights and padding are multiplied by the theme's --ds-density. A dashboard might set 0.9. Tap targets stay at least 44px whatever the density.

TokenValue
--ds-control-height-smcalc(32px * var(--ds-density))
--ds-control-height-mdcalc(40px * var(--ds-density))
--ds-control-height-lgcalc(48px * var(--ds-density))
--ds-control-tap-min44px
--ds-control-pad-x-smcalc(10px * var(--ds-density))
--ds-control-pad-x-mdcalc(14px * var(--ds-density))
--ds-control-pad-x-lgcalc(20px * var(--ds-density))

Borders and focus

TokenValue
--ds-border-hairline1px
--ds-border-thick1.5px
--ds-border-heavy2px
--ds-focus-width2px
--ds-focus-offset3px
--ds-focus-stylesolid

One focus ring everywhere. It takes the theme's accent, so it's the same ring on parchment as on near-black. Tab through this page to see it.