Bento Widgets on the Soft tray with 4 px gutters, for dashboards people arrange themselves.
FreeWeb and MobileMotion
Preview
npx shadcn add @fetaui/bento-gridPlayground
Revenue
$48,210
+12.4%
Active users
2,841
+6.2%
Activity
- Release 4.2 promoted to production
- Invoice 2041 paid
- New teammate joined Design
Notes
Q4 planning
Uptime
99.98%
Uptime
99.98%
Storage
342 GB
Default
Revenue
$48,210
+12.4%
Active users
2,841
+6.2%
Activity
- Release 4.2 promoted to production
- Invoice 2041 paid
- New teammate joined Design
Notes
Q4 planning
Uptime
99.98%
Uptime
99.98%
Storage
342 GB
Hover
Revenue
$48,210
+12.4%
Active users
2,841
+6.2%
Activity
- Release 4.2 promoted to production
- Invoice 2041 paid
- New teammate joined Design
Notes
Q4 planning
Uptime
99.98%
Uptime
99.98%
Storage
342 GB
Lifted
Revenue
$48,210
+12.4%
Active users
2,841
+6.2%
Activity
- Release 4.2 promoted to production
- Invoice 2041 paid
- New teammate joined Design
Notes
Q4 planning
Uptime
99.98%
Uptime
99.98%
Storage
342 GB
State
Icons animation
Motion
Installation
Terminal· bash
npx shadcn add @fetaui/bento-grid
Accessibility
- Each grip is a labelled button, and its Move menu does everything a drag does.
- Moves are announced politely, with the new position.
- Tiles keep their order in the DOM, so reading order follows the layout.
Motion
- Pick up scales to 1.02 and tilts −3° in 200 ms, and the rest fade to 40%.
- A dashed slot shows where the tile lands.
- Drop springs to the slot in 400 ms, and the other tiles slide to their new cells together.
- Tiles move with transforms only, so nothing lays out per frame.
- With reduced motion, there is no lift or tilt: only the ring and the slot move.
Responsive behavior
- 664 px tray with three columns on Web.
- 358 px tray with two columns on Mobile. Uptime drops to Small and Storage moves up.
- Touch and hold a grip to pick a tile up.
Performance
- Reflow uses transforms only: measure, swap, then play each tile back from where it was.
- Drag position is a motion value, and window listeners exist only during a drag.
- Lifted tiles do not re-render per pointer move.
Note for AI
Give your coding assistant the Markdown reference instead of screenshots.
- Import BentoGrid from @/components/fetaui/bento-grid. Without tiles it shows BENTO_TILES.
- Tiles take small or medium. There is no large tile here, and a medium tile spans two of three columns.
- Save the order from onOrderChange. Nothing persists on its own, and the demo stores nothing.
- Every grip also opens a Move menu, for keyboard and screen readers. preview is for docs. Composes Bento Widget and Dropdown Menu.
Related
Bento WidgetComponentOne dashboard tile in three sizes: Revenue, Active users, Activity, Notes, Uptime and Storage, in ink steps.Sortable ListComponentReorderable cards with a grip and a mono position. The item lifts at −2° over a dashed slot.KanbanProBlockA board of Kanban Columns you drag Kanban Cards between, in Issues, Tasks and Points styles, with a full keyboard path.Metric CardComponentOne number with its trend, a period switch, and the segments behind it.Dropdown MenuComponentA list of actions behind a button, with shortcuts, toggles, submenus and a red destructive action at the end.