One dashboard tile in three sizes: Revenue, Active users, Activity, Notes, Uptime and Storage, in ink steps.
FreeWeb and MobileMotion
Preview
npx shadcn add @fetaui/bento-widgetPlayground
Revenue
$48,210
+12.4%
Revenue
Revenue
$48,210
+12.4%
Revenue
$48,210
+12.4%
Revenue
$48,210
+12.4%
- New
- $6,140
- Expansion
- $2,380
- Churned
- −$1,190
Active users
Active users
2,841
+6.2%
Active users
2,841
+6.2%
Active users
2,841
+6.2%
Activity
Activity
Release 4.2 promoted to production
Activity
- Release 4.2 promoted to production
- Invoice 2041 paid
- New teammate joined Design
Activity
- Release 4.2 promoted to production
- Invoice 2041 paid
- New teammate joined Design
- Nightly backup verified
Notes
Notes
Q4 planning
Notes
Notes
Uptime
Uptime
99.98%
Uptime
99.98%
Uptime
99.98%
Storage
Storage
342 GB
Storage
342 GB
- 182 GB
- 96 GB
- 64 GB
Storage
342 GB
- 182 GB
- 96 GB
- 64 GB
Hover
Revenue
$48,210
+12.4%
Widget
Size
Icons animation
Motion
Installation
Terminal· bash
npx shadcn add @fetaui/bento-widget
Accessibility
- A region named by its label, with the number as the first line.
- The Notes and Storage bars are progress bars with values.
- The Uptime bars are one image named with the incident, and the warning bar is never the only signal at Large, where the incident is written out.
- Checkboxes are native, and a done note is struck through as well as dimmed.
Motion
- Values count up from 0 the first time they scroll into view, in 600 ms.
- Bars grow with a 20 ms stagger and the line draws left to right.
- Hover moves the ring to tertiary and the grip from 30% to 70%. Nothing moves until a drag.
- Checking a note dims and strikes the text in 200 ms, and the progress bar follows.
- With reduced motion, values show their final number and nothing grows.
Responsive behavior
- 216, 436 and 656 by 176 px on Web.
- 173 and 350 by 168 px on Mobile, and Large is 350 by 280 px.
- On Mobile, Revenue moves its breakdown under the chart, Active users grows its bars to 120 px and Notes becomes one column.
Performance
- Charts animate once on entering the viewport, with whileInView.
- Numbers count by writing text directly, so they never re-render per frame.
- Each size renders only its own parts, so Small mounts no chart.
Note for AI
Give your coding assistant the Markdown reference instead of screenshots.
- Import BentoWidget from @/components/fetaui/bento-widget. Without data it shows BENTO_DATA.
- widget picks the content and the shape of data. size is small, medium or large.
- Revenue points are y positions in a 40 px box, where 0 is the top. They are not amounts.
- fill makes it take its cell. grip replaces the dots but moves nothing alone: use Bento Grid. Composes Card and Checkbox.
Related
Bento GridComponentBento Widgets on the Soft tray with 4 px gutters, for dashboards people arrange themselves.Metric CardComponentOne number with its trend, a period switch, and the segments behind it.Uptime CardComponentDaily status bars per service. Hover shows a day's story and a click pins it.Liquid GaugeComponentA quota as liquid in a circle: it rises to its level, sloshes and settles.CardComponentThe container most of fetaUI is built on: an inset card on a soft tray, with actions on the tray.