Spacing
Compact components, generous pages. Components carry their own tight internal rhythm; the space between things belongs to the layout — and to a rule that makes streamed trees compose predictably.
The leaf-margin strategy
Containers contribute no spacing; leaves do. Every auri component carries margin: var(--a2ui-space-leaf) (0.5rem) on its own edge, and layout containers (Row,
Column, Card) add none. The consequence: an agent can compose any tree in any order and spacing stays
even — no margin collapse, no first-child special cases, no gaps that depend on what streamed in before.
Internal rhythm
- Cards (Stat, Chart, ApprovalCard):
1rem–1.25reminset. - Table cells:
0.55rem 1.1rem— dense rows, readable columns. - Inside-component gaps use flex/grid
gap, never stacked margins. - Chips and badges hug their text:
0.2em 0.7em.
Page rhythm
Surfaces breathe at the page level: this site holds content at a 72rem frame with prose at 46rem, and lets whitespace — not boxes — do the separating. Density belongs inside the component; calm belongs around it.