Labs

Space + Radius

Spacing and radius govern the rhythm of an interface. Rather than creating arbitrary padding per component, this system pairs a single 4px base scale with semantic aliases (inset, stack, inline, layout). It also tests where a signature asymmetric corner adds character versus where symmetric controls protect tap targets.

Preview

Preview theme

Spacing scale

Named steps, linear off a base unit — spacing isn't modular like type, it's built from a shared grid unit. Bars are proportional to px value.

Spacing in a component

Card padding = inset.md · title/body gap = stack.sm · gap between cards = layout.sm. Three different alias categories, same raw scale underneath. The first card also carries the signature radius, if applied to cards.

Labs

Quality from the interface to the code

Spacing and radius are judged here the same way color and type were — in a real component, on the real background, not as bare numbers on a ruler.

Updated 2 hours ago
Labs

Type as infrastructure

A second card at the same tokens, without the signature radius, so the two read side by side.

Updated yesterday

Grid gutter

A layout.* alias driving a grid gap — the macro tier, and the one that may go fluid (see panel 2) instead of staying fixed like inset/stack/inline.

1
2
3

Radius across component types

Buttons, tags and thumbnails stay symmetric for predictable click targets. The panel shows the signature radius when applied.

Button
md · symmetric
full · pill
sm · symmetric
lg · panel
TW
mark-tile echo
1 · Spacing

Linear spacing scale anchored on a single base grid unit (3xs to 4xl). Modifying the base adjusts interface density globally.

Computed scale (px)

2 · Semantic spacing aliases

Semantic aliases mapped to the core scale. Aliases provide intentional component-level abstractions (inset, stack, inline, layout) that can be remapped without altering underlying grid math.

inset — component padding

Chip/tag → card/button → spacious panel.

stack — vertical rhythm

Title/body → block-to-block → major section break.

inline — horizontal rhythm

Icon/label → tag row → toolbar item.

layout — macro / page level

Card row gutter → section-to-section → page-level break. The only tier allowed to go fluid.

Fluid layout gutters (clamp on resize)

Fluid layout gutters
When fluid mode is active, layout.* tokens compress smoothly on viewport resize via clamp(), while internal component padding (inset/stack) remains fixed for consistency.
3 · Radius scale

Symmetric corner radii (sm, md, lg, xl) for standard interactive controls, thumbnails, and surface panels.

Computed scale (px)

4 · Signature asymmetric radius

Brand-signature diagonal radii mirroring the mark's geometry. Applies opposite rounded and sharp corners across four scale steps.

Computed asymmetric scale

Which corners round? (global)

Which corners round? (global)
TR + BL is the mark's own default.

First stack card

Signature radius
Card size

Radius-row panel

Signature radius
Panel size

Mark-tile echo size

Mark-tile echo size
Reserved for cards, hero containers, and feature surfaces. Small interactive targets (buttons, tags, chips) stay symmetric to ensure clear click targets.
5 · Grid gutter demo

Selects the layout.* token used for the 3-column specimen grid.

Grid gutter size