Three soft cards, each floating its own media piece over a dotted field before an eyebrow, a title, an explanation and a ruled delivery note, laid out as a plain grid with no horizontal scrolling.
Three soft cards, each pinning a live interface piece over a dotted field before the copy starts. The label, statement, paragraph and a ruled fact line sit underneath, so every card shows the thing it describes.
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/feature251?email=YOUR_EMAIL&license_key=YOUR_KEY"Base UI flavor
npx shadcn add "https://ui.beste.co/r-base/feature251?email=YOUR_EMAIL&license_key=YOUR_KEY"This installs the block to components/beste/block/feature251.tsx, the toolbar7, shapes49 and card23 pieces the demo pins into the cards, and the badge7 eyebrow it uses.
The installed file exports feature251Demo alongside the block: the exact props behind the preview above. Spread it to get a working section in one line.
import { Feature251, feature251Demo } from "@/components/beste/block/feature251";
export default function Page() {
return <Feature251 {...feature251Demo} />;
}Then replace the demo with your own props. Written out, a trimmed setup looks like this:
import { Feature251 } from "@/components/beste/block/feature251";
import { Shapes49 } from "@/components/beste/piece/shapes49";
import { Toolbar7 } from "@/components/beste/piece/toolbar7";
export default function Page() {
return (
<Feature251
badge={{ label: "What lands in your drive" }}
heading="Three things leave the studio, and all three are yours."
description="No licence you cannot transfer and no file you cannot open."
cards={[
{
media: <Toolbar7 active="pen" />,
label: "Working files",
title: "The drawings, not only the exports",
description: "Layered sources with the layers actually named.",
meta: "Handed over on the final day",
},
{
media: <Shapes49 />,
label: "The system",
title: "A layout kit your team can extend",
description: "Components, spacing rules and page templates.",
meta: "Written for a Tuesday, not a jury",
},
]}
/>
);
}| 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 |
cards | MediaCard[] | [] | Cards, each pinning a media object above its copy |
className | string | – | Extra classes for the outer <section> |
type MediaCard = {
/** Media object shown in the card's dotted field, usually a registry piece */
media: ReactNode;
label: string;
title: string;
description: string;
meta: string;
};media is a ReactNode, so any piece fits: the demo uses a toolbar, a shape kit and a contact card, but a browser frame, chart or upload piece drops in without touching the block.radial-gradient on currentColor at text-foreground/20, with no second fill and no border, so the card keeps one surface and the pattern follows the theme in light and dark.flex-1 with min-h-[220px], so pieces of different heights still leave the copy aligned across the three cards.article elements: each one is a self-contained unit rather than a cell in a grid of text.border-current/10 rule, a shade of the card's own surface instead of a hard divider across it.md:grid-cols-3 with gap-6, so the cards keep equal width and no horizontal scrolling is involved at any breakpoint.feature185
Three-column image feature cards grid with sticky header over background media and glass-morphism styling
feature192
Large hero card with image at top followed by three-column feature card grid over background media
feature9
Three side-by-side step cards with a media surface anchored to the bottom of each card. Each slot accepts an image, video, or live registry-component asset.