Grid

The container-measured auto-fit tile grid. minTileWidth sets the floor (default 240): the grid fits as many equal-width columns of at least that width as its own measured container allows, and re-fits as the container changes, so the same grid renders three-up on a desktop, two-up on a tablet, and a single column on a phone with no breakpoint at the call site.
columns caps the count at the desktop number, the gap scale is Row and Column's own (flush / tight / snug / cozy / relaxed / loose), and a GridItem child with wide spans two cells. The grid spans its parent's full width (it is a FILL component, so it needs no wrapper to reach the edges), and its tiles are equal-height as well as equal-width: every cell stretches to the height of the row it wrapped onto, and a Card in a cell grows to fill it, so a row of cards shares a flush bottom edge however unevenly their content runs (CSS Grid's align-items: stretch). A field or a hug component keeps its own height. Equal-width tiles belong here; content-sized rows that should stack at narrow widths belong to Row stacks.
Overview
Deploys
Alerts
iOS
Overview
Deploys
Alerts
Android
Overview
Deploys
Alerts
Web
tsx
<Grid minTileWidth={220}>
<Card title="Overview" />
<Card title="Deploys" />
<Card title="Alerts" />
</Grid>

Props

Grid

Prop
Description
children
ReactNode
—
minTileWidth
number
Minimum tile width in px (default 240): the grid fits as many columns of at least this width as its measured container allows (auto-fit).
columns
number
Column cap: never more than this many columns (the desktop count). The count still drops below the cap as the container narrows, so a capped grid still collapses to one column on phones.
flush
boolean
Gap scale (pick one; default `snug`): Row/Column's axis and precedence.
tight
boolean
Gap scale (pick one; default `snug`): Row/Column's axis and precedence.
snug
boolean
Gap scale (pick one; default `snug`): Row/Column's axis and precedence.
cozy
boolean
Gap scale (pick one; default `snug`): Row/Column's axis and precedence.
relaxed
boolean
Gap scale (pick one; default `snug`): Row/Column's axis and precedence.
loose
boolean
Gap scale (pick one; default `snug`): Row/Column's axis and precedence.
testID
string
E2E hook forwarded to the root element.
style
StyleProp<ViewStyle>
For sizing/composition only (e.g. `maxWidth` to bound the grid), never a restyle hook; layout comes from the props above.

GridItem

Prop
Description
children
ReactNode
—
wide
boolean
Span two cells when the grid has more than one column (a hero tile). One cell in a one-column grid.
testID
string
E2E hook forwarded to the item element.

Do & Don’t

Column math

Don’t
Overview
Deploys
Alerts
Hand-roll percent tile widths on a wrapping Row; the column count is then frozen at the call site and every consumer re-derives the phone collapse by hand.
Do
Overview
Deploys
Alerts
Give the grid a tile floor (and optionally a desktop cap) and let it fit its container.