Foundations

The measurements everything else is built on: spacing, radii, elevation, blur, surfaces, focus, and motion. 8pt grid keeps the rhythm; soft radii keep it feeling like glass; elevation is a neon bloom in labradorite and a pastel drop shadow in opalite.

Spacing scale (8pt)

Ten steps. Each bar is drawn at its true pixel width against a full-scale rail.

--bbs-space-12px
--bbs-space-24px
--bbs-space-38px
--bbs-space-412px
--bbs-space-516px
--bbs-space-624px
--bbs-space-732px
--bbs-space-848px
--bbs-space-964px
--bbs-space-1096px

Spacing in use

The scale applied three ways: dimensioned on a real component, compared across densities, and read down a page as vertical rhythm.

anatomy
inset 32 · space-7

ghostwriter

Inset is space-7. The gap between every child is space-5.

labradoriteopalite
gap 16 · space-5
density
Tightspace-4 inset · space-3 gap
Defaultspace-6 inset · space-5 gap
Loosespace-8 inset · space-7 gap
vertical rhythm
Section label

The heading sits close to its eyebrow

Body copy takes the larger step below the heading, then the biggest step before the next section starts. Steps get bigger as the relationship gets weaker.

space-3 → space-5 → space-8

Radii

--bbs-radius-xs6px · hairline details
--bbs-radius-sm10px · chips, tags
--bbs-radius-md14px · inputs, small cards
--bbs-radius-lg20px · secondary surfaces
--bbs-radius-xl28px · panels, cards (default)
--bbs-radius-2xl36px · feature surfaces
--bbs-radius-pill999px · buttons, chips

Elevation

Four named levels, rebound per theme — neon bloom in labradorite and jadeite, pastel drop shadow in opalite. The last card lifts on hover.

Flat--bbs-elev-flat
Raised--bbs-elev-raised
Floating--bbs-elev-floating
Glow--bbs-elev-glow
Hover meraised → floating

Blur

Two steps, both over the same gradient so the difference is readable.

None0px
Soft--bbs-blur-soft · 16px
Strong--bbs-blur-strong · 32px

Surfaces & borders

Three surface tints and two border weights. Every card below sits on the page background with no blur, so the tint is the only difference.

--bbs-surfaceCards, panels, nav
--bbs-surface-softInputs, wells, rows
--bbs-surface-hoverHover and active rows
--bbs-borderPrimary stroke
--bbs-border-softDividers, quiet edges

Focus ring

One ring token for everything. Shown forced on the left pair; tab into the right pair to see it fire for real.

forced
forced
real — tab to it
real — tab to it
token--bbs-focus-ring

Motion

One easing curve, two durations. Everything in the system uses --bbs-ease — a long tail that settles rather than stops.

--bbs-transition-fast · 0.35s
Hovers, toggles, small state
--bbs-transition-base · 0.6s
Panels, modals, page-level
linear 0.6s — for contrast
Not a token. Note the dead stop.

Glass recipes

Labradorite glass

Low opacity, strong blur, neon border. Dramatic.

bg 0.82 · blur 32px · border jadeite 0.40

Opalite glass

Higher opacity, softer blur, pastel border. Dreamy.

bg 0.78 · blur 16px · border pink 0.35

Jadeite glass

Single hue, strong blur, jadeite border. All the way up.

bg 0.82 · blur 32px · border jadeite 0.38