column stacks things vertically, row places them side by side, and spacer adds a gap. Everything else (text, table, image) is content you drop into them.
column
A vertical stack. Children render top to bottom, with an optional uniform gap between them.column is the workhorse — most page bodies are a column with spacing and a handful of items.
row
A horizontal band split into sized cells. Each item has asize and a child.
items[] entry has:
Sizing a cell
A cell’ssize is one of two kinds:
- relative
- constant
weight. Two cells with weights 1 and 2 split the row one-third / two-thirds. Use relative sizing for content that should flex with the page.row of two relative cells, each holding a column:
spacer
A fixed vertical gap. Useful inside acolumn when you want more (or less) space than uniform spacing gives, or to push content down a page — certificates lean on it heavily.
For horizontal space between
row cells, don’t use a spacer — adjust the cell size/weight instead, or add padding if it’s a table cell.Putting it together
Layout nodes nest without limit. A typical page body is acolumn whose items are some rows, a table, and a few spacers:
Next: Text & styling
Style the text you place into these layouts.