Process mosaic where the opening phase fills a two-row photographic tile with its eyebrow, explanation and duration on the scrim, beside an inverted summary tile and three smaller phase tiles carrying only their label and length.
A process section built entirely from photographs. The opening phase takes the large tile with its full description and duration, the remaining phases become smaller image tiles, and one inverted note tile explains how the schedule really behaves.
Upgrade to Pro
Pro blocks install through the shadcn CLI with your license key and ship their full source. Docs and live previews stay open to everyone, so you can read every block's details first.
Swap YOUR_EMAIL and YOUR_KEY for the email and license key on your account. Find your license key on your account page.
Radix flavor
npx shadcn add "https://ui.beste.co/r/bento5?email=YOUR_EMAIL&license_key=YOUR_KEY"Base UI flavor
npx shadcn add "https://ui.beste.co/r-base/bento5?email=YOUR_EMAIL&license_key=YOUR_KEY"This installs the block to components/beste/block/bento5.tsx plus the badge7 eyebrow it uses.
The installed file exports bento5Demo alongside the block: the exact props behind the preview above. Spread it to get a working bento in one line.
import { Bento5, bento5Demo } from "@/components/beste/block/bento5";
export default function Page() {
return <Bento5 {...bento5Demo} />;
}Then replace the demo with your own props. Written out, a trimmed setup looks like this:
import { Bento5 } from "@/components/beste/block/bento5";
export default function Page() {
return (
<Bento5
badge={{ label: "How it runs" }}
heading="Four phases, photographed as they actually looked."
labels={{ durationTitle: "Time on the clock" }}
phases={[
{
index: "Phase 01",
title: "Reading the room",
description: "Two days on site and a list of what already works.",
duration: "1 week",
src: "/process/site.jpg",
alt: "Team at a shared table",
},
{
index: "Phase 02",
title: "Drawing the options",
description: "Three directions, printed at full size.",
duration: "3 weeks",
src: "/process/sketches.jpg",
alt: "Sketches pinned to a desk",
},
]}
note={{
title: "Twelve weeks, give or take",
description: "Phases overlap by design. The only hard stop is the press date.",
}}
/>
);
}| Prop | Type | Default | Description |
|---|---|---|---|
badge | { label: string } | – | Eyebrow label rendered as a Badge7 |
heading | string | – | Section heading above the mosaic |
phases | PhaseTile[] | [] | Phase tiles; the first one takes the large lead tile |
note | NoteTile | – | Inverted dark tile with the schedule caveat |
labels | Bento5Labels | {} | Fixed strings that are not content: the duration line's title |
className | string | – | Extra classes for the outer <section> |
type PhaseTile = {
index: string;
title: string;
description: string;
duration: string;
src: string;
alt: string;
};
type NoteTile = {
title: string;
description: string;
};
type Bento5Labels = {
durationTitle?: string;
};phases is destructured out as the lead: it spans md:col-span-4 md:row-span-2 and is the only tile that shows description and duration in full, so ordering the array chooses which phase gets explained.md:col-span-2 and the ones after it take md:col-span-3, so a four-phase set plus the note fills every row completely.from-foreground/85 gradient scrim, so the white text on top stays legible whatever the image underneath does.Badge7 is passed className="text-background/70", which is how the eyebrow reads correctly on a dark photograph rather than fighting the theme token.text-background tokens are hardcoded because that surface is fixed rather than adaptive.md the image tiles hold aspect-[4/3] and stack in source order, so the phases read top to bottom on a phone with no text sitting outside its picture.bento9
Magazine mosaic whose cover story fills a two-row photographic tile with its category and page count on the scrim, beside an inverted figure tile, a bordered publication note and three soft article tiles.
bento3
Work mosaic on a six-column track mixing photographic tiles that carry their caption inside on a gradient scrim with a soft statement tile and an inverted figure tile, the lead project spanning four columns and two rows.
bento6
Product mosaic pairing a two-row hero photograph captioned on its scrim with a tall specification tile, then two square macro tiles that carry their caption inside and an inverted figure tile closing the row.
bento4
Service mosaic whose lead tile floats a photo-strip media piece over a dotted field between its eyebrow and statement, beside a photographic tile captioned on its scrim, an inverted figure tile and three soft icon tiles.