Dva nebo tři sloupce uvnitř bloku a jedno pravidlo, kdy přestanou být sloupci. Formulář, detail záznamu, karty vedle sebe.
IngotPageLayout (rytmus bloků, postranní rejstřík) uvnitř IngotAppFrame (šířka, okraje). Tohle je vnitřek jednoho bloku.dl) a je to IngotDescriptionList, ne mřížka, do které někdo naskládal spany.IngotTable — mřížka je rozvržení, ne data.children: ReactNode — Obsah sloupců. Každý potomek zabírá jeden sloupec; přes celou šířku se dá pustit jen `IngotColumnsFull`.columns: 2 | 3 | 4 — Kolik sloupců, jakmile je na ně místo. Výchozí 2. Tři a čtyři jdou dolů přes mezikrok: dva sloupce od `sm`, plný počet od `collapseBelow`.gap: 3 | 4 | 5 — Krok škály prostoru mezi buňkami — `--s-3`, `--s-4` (výchozí), `--s-5`. Ne libovolné číslo: mezera, kterou lze minout o dva pixely, přestává být škálou.minItemWidth: number — Dlaždice místo počtu: nejužší, jak smí být jedna buňka (v px), a řádek jich pojme, kolik se vejde. Má přednost před `columns` — kdo si řekl o dlaždice, ten si o ně řekl.collapseBelow: "md" | "lg" — Pod touhle šířkou je z toho jeden sloupec. Výchozí `md`. „Nikdy“ tu není: dva sloupce na telefonu jsou dva sloupce po 150 px a to, co stálo za postavení vedle sebe, se v nich nedá číst.className: string — Jen umístění bloku. Šířka sloupců ani mezera sem nepatří.testId: string — Kotva pro testy.