Three tall photographic bands stacked full width, each carrying an eyebrow, display title, explanation, one outcome figure and its own outline pill link over a tinted scrim; the three-column foot only forms from lg up so the sentence keeps its measure on a tablet.
Three full-width photographic bands, each carrying its own eyebrow, statement, story, figure and outline CTA on a rule inside the picture. Every band is one complete case.
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/usecase48?email=YOUR_EMAIL&license_key=YOUR_KEY"Base UI flavor
npx shadcn add "https://ui.beste.co/r-base/usecase48?email=YOUR_EMAIL&license_key=YOUR_KEY"This installs the block to components/beste/block/usecase48.tsx plus the badge7 eyebrow and button12 pill button it uses.
The installed file exports usecase48Demo alongside the block: the exact props behind the preview above. Spread it to get a working section in one line.
import { Usecase48, usecase48Demo } from "@/components/beste/block/usecase48";
export default function Page() {
return <Usecase48 {...usecase48Demo} />;
}Then replace the demo with your own props. Written out, a trimmed setup looks like this:
import { Usecase48 } from "@/components/beste/block/usecase48";
export default function Page() {
return (
<Usecase48
badge={{ label: "Three situations" }}
heading="Full-width, because these are full-width problems."
description="Each band is a job that turned into the reason the system had to exist."
bands={[
{
eyebrow: "Opening week",
title: "Everything printed, delivered and on the wall in nine days",
description: "A lease signed earlier than planned and a room that had to look finished.",
figure: "9 days",
figureTitle: "Brief to opening",
buttonLabel: "Read what shipped",
href: "/work/opening",
src: "/bands/retail.jpg",
alt: "Retail interior with monochrome shelving",
},
{
eyebrow: "Annual report",
title: "Two hundred pages that people actually read to the end",
description: "Data, photography and a reading order argued out first.",
figure: "68%",
figureTitle: "Reached the final section",
buttonLabel: "See the report",
href: "/work/report",
src: "/bands/report.jpg",
alt: "Open print publication",
},
]}
/>
);
}| Prop | Type | Default | Description |
|---|---|---|---|
badge | { label: string } | – | Eyebrow label rendered as a Badge7 |
heading | string | – | Section heading in the left header column |
description | string | – | Supporting paragraph in the right header column |
bands | BandScenario[] | [] | Photographic bands, rendered top to bottom |
className | string | – | Extra classes for the outer <section> |
type BandScenario = {
eyebrow: string;
title: string;
description: string;
figure: string;
figureTitle: string;
buttonLabel: string;
href: string;
src: string;
alt: string;
};lg up. At tablet width the sentence would be squeezed into a four-word column, so the figure and the CTA share a row underneath it instead, using lg:contents to dissolve their wrapper when the wide layout takes over.bg-foreground/65 wash covers the whole photograph rather than a gradient, because content runs from the eyebrow down to the figure and needs even contrast the whole way.background shades and the Badge7 is passed className="text-background/70", correct for a surface that is a dark photograph in both themes.border-background/30, a shade of the copy colour rather than the theme border token, so it belongs to the picture.min-h-[420px] growing to md:min-h-[480px] and are justify-end, so the copy stays anchored to the foot however tall the band gets.shrink-0, so a long button label keeps its width instead of being compressed by the figure beside it.usecase49
Pill tabs for each audience swap a split panel holding a tall photograph beside a title, summary and ruled list of what that audience actually gets.
usecase45
Three use cases as image and text rows, each numbered and carrying a story, two ruled outcome figures and its own outline pill link; pictures stay top-aligned and the side only alternates from lg, so a tablet keeps every image at the top left.
usecase51
Two picture-led routes side by side, each with an eyebrow, title, dotted-rule expectations list and its own pill CTA, separated on desktop by a small pill divider sitting between the columns.
usecase53
One client story told in three photographed steps, opening with the client name on a ruled block beside the heading and closing with three oversized outcome figures.