# Layout Layout primitives are composition containers. This is `layout.css` in `@layer components`. ## The composition contract One rule governs spacing in the system: > **Layout containers own spacing. Components never set outer margins.** No component in the design system puts a margin on its outer element. If you need space between two things, wrap them in a `.stack` or `.cluster` and let the container's `gap` do it. This keeps components portable. The same card works inside any layout because it never assumes a margin. ## Flow primitives **`.stack`**: vertical flow with a consistent gap between children. Gap variants `is-xs` / `is-sm` / `is-md` / `is-lg` / `is-xl` / `is-2xl` step the gap up. ```html

Account

Manage your profile and billing.

``` **`.cluster`**: horizontal flow that wraps, vertically centered. For rows of tags, buttons, or metadata that should wrap on narrow screens. Gap variants `is-xs`, `is-sm`, `is-md`, `is-lg`, `is-xl`. **`.row`**: horizontal flex that does **not** wrap. Alignment variants `is-baseline` / `is-start` / `is-end` / `is-stretch` (default is centered). All three clear their children's block margins, since the gap does the spacing. They leave the element's own padding alone, so a `.stack` can go straight on a `
`, a card, or a panel. On a `