Skip to content
Brand & UX guide
Foundations

Space, shape, motion

A 4px space scale, three radii, hairline borders, one restrained shadow, and motion that confirms rather than decorates.

#Space

A 4px scale. Gaps inside a component use 1 to 3. Gaps between components use 4 to 6. Between page sections use 8 and up. Do not write pixel spacing in component CSS.

TokenValueScale
--space-10.25rem
--space-20.5rem
--space-30.75rem
--space-41rem
--space-51.25rem
--space-61.5rem
--space-82rem
--space-102.5rem
--space-123rem

#Shape

--radius-sm6px
--radius10px
--radius-lg14px
--radius-pill999px
RadiusFor
--radius-sm 6pxButtons, inputs, insets, nav items
--radius 10pxCards, tiles, panels
--radius-lg 14pxModals, the sign-in card
--radius-pillPills and sparkline-sized chips

#Elevation

The interface is flat. Cards get a hairline border and --shadow-1. Only modals, the sign-in card, and a hovered card use --shadow-2. Do not stack shadows, and do not add glow.

--shadow-1
--shadow-2

#Motion

120 to 200ms with --ease. Motion confirms an interaction, such as a hover or a chevron turning. It never decorates, and there is no entrance animation. prefers-reduced-motion is honored globally.

TokenValueUse
--dur-fast120msHover and press on buttons, nav items, cards
--dur200msExpanding a nav group, rotating a chevron
--easecubic-bezier(0.2, 0, 0, 1)Every transition. Fast out, settled in
Hover the card
Code
<a class="tl-card" href="#motion"><div class="tl-head"><span class="tl-week">Sep 14–20</span></div><div class="tl-headline">Border and shadow ease in over 120ms.</div></a>

#Focus

Every interactive element shows a 2px ring in --color-focus with a 2px offset on keyboard focus. The ring follows the theme. Never use outline: none without a visible replacement.

Tab into these
Link
Code
<div class="btn-row"><button type="button" class="btn btn-primary">Primary</button><button type="button" class="btn btn-secondary">Secondary</button><a class="btn-link" href="#focus">Link</a></div>

#Breakpoints

WidthWhat changes
≤ 960pxThe sidebar collapses to a top bar with a Menu button. Report and settings grids drop to one column. The sign-in brand panel stacks above the form.
≤ 520pxPage header stacks, its end slot aligns left. Two-up form rows stack. Modal padding tightens. Billing rows stack.

Design phone first in your head, at 390px. Content width is capped at --content-max (68rem), and narrow pages at 46rem. Every specimen in Page templates has a phone button that resizes it for real.

Weekwright brand & UX guide v1.0.0 Components rendered from app @ bd6c1f4 · build d2e1ef8