Barefoot CSS

The layout is the breakpoint

Resize the box, not your browser window. Every primitive and component below adapts to the container it sits in. Drag the bottom-right corner of any box, or use the width slider (arrow keys work). Read the live width under each box — the layout reflows while the viewport never moves.

Back to the conformance demo · layout docs.

.bf-flow — rhythm that breathes

A vertical stack whose gap tightens as the container narrows (and opens up when wide), via container units. No media query.

40rem

A plain paragraph of body text. The vertical rhythm between these blocks is set by the container, not the screen — widen the box and the gap opens up.

Another block. In a narrow sidebar the same markup reads tight; in a wide column it breathes.

And a third, to make the rhythm obvious as you drag.

.bf-switcher — side-by-side ↔ stacked

Children share a row while the container is wide; each drops to its own full-width row when it gets narrow. The switch happens at the container, not the viewport.

40rem

One

A card in the switcher.

Two

Another card.

Three

A third card.

form[data-form="adaptive"] — one-column reflow

The same form collapses its row to one column when the container narrows. The error summary stays hidden until a field is user-invalid — pure CSS.

40rem

.bf-sidebar — split ↔ stack

The aside sits beside the main content while the container is wide, then drops below it when the container narrows past the breakpoint (40rem).

40rem

Main

The primary reading column. When the box is wide this runs beside the sidebar; shrink it and the sidebar drops beneath.

Everything at once — the layout is the breakpoint

A sidebar whose main column is a switcher, holding an adaptive table and an adaptive card. Shrink the box and the sidebar stacks, the switcher stacks, and the table card-stacks — all from one resize.

52rem
NameRole
AdaEngineer
LinDesigner

Adaptive card

Horizontal when wide, vertical when narrow.