Four features shown working: live review, a usable palette, explained numbers and automation.
Import it and pass your content. The props that matter most are listed next.
import { FeatureBento } from "@/components/ui/notchset/blocks/feature-bento";
export function Features() {
return (
<FeatureBento
title="Built for the way teams work"
review={{ title: "Review together", body: "See who is on the trace.", trace: "RUN · TRACE", people: ["Priya", "Maya"], initials: ["PN", "MK"], note: "timeout here", lines: [{ text: "plan", time: "0.4S" }, { text: "search", time: "1.1S" }, { text: "fetch", time: "30S", signal: true }] }}
palette={{ title: "Keyboard first", body: "Do it without the mouse.", commands: [{ glyph: "R", label: "Open run", kind: "RUN", result: "✓ OPENED" }] }}
cost={{ title: "Numbers that explain themselves", body: "Hover a week.", label: "COST PER 1K RUNS", weeks: [{ label: "JUL 17", value: 1.6 }, { label: "JUL 24", value: 0.8 }] }}
automation={{ title: "Automations", body: "The right person hears first.", label: "QUALITY GUARD", steps: [{ kind: "WHEN", text: "Quality drops" }, { kind: "THEN", text: "Page on-call" }] }}
/>
);
}eyebrow / title / description–
string / ReactNode / ReactNodeThe header.
review–
{ title, body, trace, lines, people, initials, note }The shared trace; line 3 is the one selected, and note is the comment typed.
palette–
{ title, body, commands, autoQueries? }Commands with a glyph, label, kind and result toast; autoQueries are what it types on its own.
cost–
{ title, body, label, weeks, marker?, baseline? }Weekly values; marker draws a dashed line after that week.
automation–
{ title, body, label, steps, footnote? }WHEN / THEN steps that light in sequence.
FeatureBentodata-slot="feature-bento"
Header and the four tiles.
components/ui/notchset/blocks/feature-bento.tsx
pnpm dlx shadcn@latest add https://beautiful-ui.dev/r/feature-bento.jsonpnpm dlx shadcn@latest add https://beautiful-ui.dev/r/radix-nova/feature-bento.jsonFree, no account or key. Use the command for your project's primitives: a radix-*, new-york or default style in components.json is Radix, a base-* style is Base UI. With the @beautiful-ui registry added, @beautiful-ui/<name> picks for you.
pnpm add class-variance-authority@^0.7The CLI adds the styles to the CSS file named in components.json (tailwind.css). Check that it points at your global stylesheet, that the project uses Tailwind CSS v4, and that the file is imported in your root layout. Installed by hand: paste styles.css into that file.
Give your coding assistant the Markdown guide instead of screenshots.
https://beautiful-ui.dev/api/mcp (setup)v1.0.0 · 2026-10-04
First release