Skip to content
shadcn.io

shadcn.io is not affiliated with official shadcn/ui

Bento Grid Features Block for React

A bento of five features for an issue tracker, each cell drawn as the product at work: a live board with teammates' cursors, a pull request, a burndown, a triage rule and a typed SDK, in cells that share their hairlines.

Framework
UI library

Preview

Preview width

Installation

Part of Pro
Pro unlocks the code and one-line install of every Pro button and text effect, plus the MCP for your AI editor.
Have Pro already? Sign in to open it.Opens here as soon as you're Pro.

Overview

A bento grid feature section for React with Base UI, written for Larchboard, a fictional issue tracker for product engineering teams. Every cell shows the product doing what its heading says, drawn in greyscale from your theme's tokens: the flagship cell, four columns wide and two rows tall, is the team's board with two teammates' live cursors, one dragging a card into progress; beside it, a pull request whose checks close its issue, and a cycle burndown that steps up on the day scope was added; under them, a triage rule and the typed SDK in an editor with its completions open. The drawings share one set of numbers, so the board's lane counts, the burndown and the pull request all describe the same cycle. There are no cards around the features: the cells share single hairlines in a band that runs from rail to rail on the page's drafting lines and ends the block, and a compact header holds the one Shine Button. On a tablet the grid has two columns; on a phone the cells stack and the drawings get shorter, so the whole section stays within about three and a half screens. It's built from Guides and Shine Button with Lucide icons, CSS transitions only and your theme's tokens; the Shine Button is the only element in your primary colour. For product pages where one capability leads and four more back it up.

FAQ

How do I change the features and their sizes?

Each feature is a Cell in the list at the bottom of the file, with its title, its one-sentence description, a size and its drawing as the child. The sizes live in SHAPES: lead takes four of six columns and two rows on a desktop and both columns on a tablet, tile takes two columns, and wide takes four with its text beside the drawing. Cells fill the grid in order, so keep a lead, three tiles and a wide cell (or another set whose spans add up to six per row): a hole would show the border colour behind the cells.

How are the drawings made, and how do I draw my own product?

Each drawing is a small component (LiveBoard, PullRequest, Burndown, TriageRule, TypedSdk) built from plain elements, Lucide icons and one inline SVG chart, with its content in typed constants at the top of the file: LANES, PULL, CHECKS, RULE, CODE and FIELDS. The cycle's figures are derived from CYCLE, so the lane counts, the burndown and its "open of" total always agree. Swap the constants for your own product's screens, or replace a component with a drawing of your own; keep it decorative, as these are.

Do the drawings follow my theme?

Yes. Every surface and line is a theme token: windows on bg-card with a border, lanes on bg-muted, mock buttons and the teammate who is dragging in bg-foreground with text-background, and the burndown in foreground tones. Nothing in the drawings uses your primary colour, so the Shine Button stays the one primary element, and the section is light on a light page and dark on a dark one in every preset.

How are the lines drawn, and why is there no line at the bottom?

The cells share hairlines: the list is a grid with a one-pixel gap over your border colour, and every cell sits on the page background, so each line is drawn once. The grid runs from rail to rail of the page column (max-w-6xl), whose rails and top rule come from Guides, so the block lines up with its neighbours in a stack. A second Guides draws the band's top rule with a plus on each rail. The band ends the block: the column has no bottom padding and the band no bottom rule, because the next block's top rule is its foot, so two lines never sit a few pixels apart.

How do screen readers and keyboards handle it?

The section's heading is an h2 and the features are the items of a list, each with an h3 and its sentence. The drawings are decoration: each one is aria-hidden and inert, so nothing in them is read out or takes focus, and the heading and sentence beside each drawing say what it shows. The only control is the Shine Button, a real link with a visible focus ring. In a right-to-left page the board mirrors like any interface, while code, branch names and the chart stay left to right. The button renders the link it's given with render, with nativeButton={false}.

How does it fit on a phone, and what moves?

Below the md breakpoint every cell takes the full row, the text first and the drawing under it. The board and the editor drop to a fixed, shorter height and fade out at their foot, and the board runs off the cell's edge, so a phone shows its first lanes instead of shrinking it. The header and the board fade up once when the page loads, with CSS transitions; with reduced motion they simply appear, and nothing else moves.

  • Pro

    A bento of six kinds of cell for a field-service app, each a box with its lines running past the corners: a job list, a rolling figure, avatars with presence, a code window, live switches and a step tracker.

  • Pro

    A bento for a docs-publishing platform with one flagship cell, a page editor drawn in greys with a pulsing Published status, beside a build-time stat and a version list, over three small cells, in one rounded outline of shared hairlines.

  • Pro

    A showcase hero with the headline on one side and the pitch on the other, over a bento of six labelled product views in cells that share hairlines.

  • Pro

    A quote-only bento drawn with hairlines: one large lead story beside four shorter quotes, in cells that share their lines, on the page's drafting lines.

  • Pro

    Edge hosting in a bento grid on shared hairlines: a tall Pro tile down the middle with its price and call to action up top, among four compact tiles for Hobby, Scale, a bandwidth add-on and Enterprise.

  • Pro

    A bento for a security-posture tool in a card in a card that follows your theme: one wide cell with an area chart of the score, and four small cells with a score ring, a ranked findings list, control states and an asset count.