Bento Grid

Lays out cards on a grid where one can span several columns and cards in a row line up their parts.

Wallet

Every balance in one place.

Cards

A virtual card for every purpose.

Insights

Spending sorted by category, across the full row.

Configurations

Supported configurations for this component.

Configurations

3 examples
2 columns, full-width item

Wallet

Every balance in one place.

Cards

A virtual card for every purpose.

Insights

Spending sorted by category, across the full row.

3 columns

Send

Pay anyone in seconds.

Save

Set money aside in pots.

Spend

Cards that follow your rules.

Aligned rows

Wallet

Every balance in one place, in every currency you hold, updated as each payment lands.

Updated now

Cards

A virtual card for every purpose.

3 cards active

Add to your project

One command adds this component to your project.

1

Run the following command. New project? Run npx shadcn@latest init first to set up Tailwind and path aliases.

npx shadcn@latest add @aicanvas/••••••••••••

Light and dark both come with the install and follow the dark class on <html>, the shadcn dark mode setup (next-themes with attribute="class").

Props

Every prop this component accepts. Any other prop is forwarded to the underlying element.

BentoGrid

PropTypeDefaultDescription
columns1|2|3|42Columns on a desktop row.
tabletColumns1|2-Columns between md and lg. Defaults to 2 for a three or four column grid, else to `columns`.
gapkeyof tokens.spacing3The gutter between panels, a spacing step, on both axes. The system's panel gutter is spacing[3].
childrenreqReact.ReactNode-BentoGridItems.

BentoGridItem

PropTypeDefaultDescription
colSpannumber|'full'1Columns the panel runs across; 'full' takes the whole row at every width. Clamped to the columns the grid has at each width.
rowSpannumber1Rows the panel runs down, beside shorter neighbours. Dropped below md, where nothing stands beside it.
rowsnumber-Shared rows: the panel spans this many grid rows and lays its children on them (subgrid), so siblings with the same count line up part by part. One child per row. Overrides `rowSpan`.
rowGapkeyof tokens.spacing6The space between the shared rows, a spacing step; the card inset by default.
asChildbooleanfalseRender the only child (the caller's Card) as the item, merging the item's class, style and ref onto it.
renderReact.ReactElement-The same as asChild, in the Base UI form some installers rewrite asChild into: the item renders this element with its class, style and ref merged on, and its children become the element's children.
childrenreqReact.ReactNode-The panel content, or with `asChild` the panel itself.

More Andromeda Pro components