Composition made of tokens. ds-stack, ds-inline, and ds-box take their gap and padding from the space scale, so arbitrary margins never appear. A primitive has no look of its own — you only ever see it in what it does to its children. So every demo below shows the same card, and each marks the space one primitive owns inside it.
The grey is the gap or the padding, drawn at the size the live layout reports. Hide it to see the card as it ships.
Vertical flow with tokenized gap. Default is space.4; size modifiers step the spacing. The card's text column runs at --sm — a heading and its copy are one thought, so they sit close, and the gap holds however many lines the copy wraps to.
Notifications
Choose what reaches you and where — email, push, or nothing at all. Quiet hours apply to every channel except security alerts, which always come through.
Horizontal row with tokenized gap. It wraps by default; --nowrap opts out. Here it takes the stack from above unchanged and sets an icon beside it — the row has two children, the icon and the whole text column, not the three pieces of content inside them.
A row is centered by default, which is right when its children are the same height and wrong as soon as one isn't: against copy that wraps, a centered icon floats at the middle of the block instead of sitting with the line it labels. --start aligns the row to its first line.
Notifications
Choose what reaches you and where — email, push, or nothing at all. Quiet hours apply to every channel except security alerts, which always come through.
Inset container whose padding is always a token — the one primitive that owns space on the outside of its children. It is the only thing separating the composition above from the card holding it: give a box a surface, a border, and a radius and you have a card. That is exactly how the card in every demo here is built, so the ring marked below is that box's own padding.
Notifications
Choose what reaches you and where — email, push, or nothing at all. Quiet hours apply to every channel except security alerts, which always come through.