components

Grid

CSS Grid layout primitive. columns/rows take a fixed scale (1–12 / 1–6) rather than an arbitrary grid-template-columns string, keeping every grid in the system on the same rhythm.

tsx
A
B
C
<Grid>
  ...
</Grid>

Examples

A responsive card grid — fewer columns as the viewport narrows, same gap throughout:

tsx
One
Two
Three
<Grid columns="3" m={{ columns: "2" }} s={{ columns: "1" }} gap="16">
  <Card>One</Card>
  <Card>Two</Card>
  <Card>Three</Card>
</Grid>

colSpan="full"/rowSpan="full" on an individual child stretch it across every track in that axis — useful for a banner or a section heading that should break out of the grid it sits in:

tsx
Featured — spans the full width
Regular
Regular
<Grid columns="3" gap="16">
  <Card colSpan="full">Featured — spans the full width</Card>
  <Card>Regular</Card>
  <Card>Regular</Card>
</Grid>

Reach for Flex (or Row/Column) instead when items should size to their own content rather than snap to a fixed number of tracks — Grid is for a layout that's genuinely a grid, not a one-dimensional list that happens to wrap.

Props

PropTypeDefaultDescription
hreftext