Bento Grid
A grid of tiles that move into place as you scroll through the section.
- Dependencies
- motion
- Size
- 229 lines
- Controls
- 7 controls
Installation
CLI · shadcn registry
npx shadcn@latest add https://ui.onycx.dev/r/bento-grid.json1 · Dependencies
npm install motion2 · Copy the source
components/onycx/bento-grid.tsx
Requires React 19 and Tailwind CSS v4. Copy the source from the bento-grid.tsx tab after tweaking: your values are baked in as the new defaults. Exported image examples use portable sample artwork. Replace it with your own media as needed.
Props
| Prop | Type | Default | Description |
|---|---|---|---|
| items | BentoItem[] | — | { title, description?, background?, color?, span?, image?, imageAlt?, rotate?, hideBelow?: 'md' | 'lg', row?, href? }; span is '2x2' | '1x1' | '1x2' | '2x1' (columns x rows). |
| eyebrow / heading | string | — | Header copy; | breaks the heading line. |
| background / ink / accent | string | "#f7f3ed" / "#1c1917" / "#8e6152" | Sand section, stone heading and clay eyebrow. |
| rowHeight | number | 300 | Grid auto-row height (px), also used for the single phone column. |
| parallax | boolean | true | Tile drift and roll, grid spring scale and heading fade. |
| className | string | — | Merged onto the section. |