Join the wishlist

Frame

The one container. Structure is turned on by naming it: none, stack, or grid.

With layout none, children sit exactly where their own position says: free placement. With stack, children flow along one axis as a row or column. With grid, they flow into columns. Every other container you see is a frame dressed with fill, border, and radius.

Properties

  • Layout: none (free placement, the ground state), stack, or grid.
  • Direction: stack: row or column.
  • Gap: stack and grid: space between children, in pixels.
  • Align: stack: cross-axis alignment. Start, center, end, or stretch. Omit for the axis default: a row centers, a column stretches.
  • Distribute: stack: how children spread along the axis. Start, center, end, space-between, space-around, space-evenly. Omit and the gap rules.
  • Wrap: stack: children wrap to the next line when they run out of room.
  • Padding: inner space, in pixels.
  • Columns: grid: column count.
  • Masonry: grid: children flow into balanced columns keeping their own heights.
  • Rows: grid: explicit row count. Omit for as many as content needs.
  • Column widths: grid: each column in order. Pixel numbers, percentages, fractions like 2fr, or auto. Omit for equal columns.
  • Row heights: grid: same words as column widths.
  • Tag: the real HTML element the frame publishes as: div, section, article, nav, header, footer, main, or aside.
  • Pointer events: none lets clicks pass through this frame.
  • Tab index: keyboard focus order. Omit for the natural order.
  • Text select: off stops the words inside being selectable.

What it announces

  • Clicked: the row in scope when a reader clicks this frame. A frame inside a Repeat announces its own row.

Motion lives here

The frame is the one motion carrier: appear and scroll-driven motion are frame properties.

Frame · Docs · Tentis