A feature whose three image tiles step down the page in a staircase on large screens, each floating a different live asset above a small kicker, title, and paragraph.
A feature whose three image tiles step down the page in a staircase on large screens, each floating a different live asset above a small kicker, title and paragraph.
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/feature265?email=YOUR_EMAIL&license_key=YOUR_KEY"Base UI flavor
npx shadcn add "https://ui.beste.co/r-base/feature265?email=YOUR_EMAIL&license_key=YOUR_KEY"This installs the block to components/beste/block/feature265.tsx, the location8, receipt3 and search24 pieces it floats one per tile (installed to components/beste/piece/{name}.tsx), and the badge23 component it uses for the eyebrow.
The installed file exports feature265Demo alongside the block: the exact props behind the preview above. Spread it to get a working trio in one line.
import { Feature265, feature265Demo } from "@/components/beste/block/feature265";
export default function Page() {
return <Feature265 {...feature265Demo} />;
}Then replace the demo with your own props. Written out, a trimmed setup looks like this:
import { Feature265 } from "@/components/beste/block/feature265";
import { Receipt3 } from "@/components/beste/piece/receipt3";
import { Search24 } from "@/components/beste/piece/search24";
export default function Page() {
return (
<Feature265
badge={{ label: "Find, act, settle" }}
heading="Three moves that used to take three systems"
description="Look something up, do the thing it needed, and close the money side of it."
items={[
{
kicker: "Find it",
title: "One search across everything",
description: "Members, notes, appointments, and invoices answer the same query.",
media: (
<Search24
query="rowan"
groupLabel="Members"
results={[{ title: "Rowan Blake", meta: "Active · Clinic 2", kind: "Member" }]}
footer="1 of 11 matches shown"
/>
),
image: { src: "/backdrops/blue.jpg", alt: "Soft blue gradient backdrop" },
},
{
kicker: "Settle it",
title: "Paid before the notes are filed",
description: "The charge is attached to the appointment that created it.",
media: <Receipt3 status="Payment received" amount="$1,240.00" caption="May care plan" />,
image: { src: "/backdrops/green.jpg", alt: "Deep green gradient backdrop" },
},
]}
/>
);
}| Prop | Type | Default | Description |
|---|---|---|---|
badge | { label: string } | – | Eyebrow above the hairline rule, rendered through Badge23 |
heading | string | – | Section heading in the left column of the header |
description | string | – | Supporting paragraph, right-aligned from md up |
items | StepTile[] | [] | Tiles in reading order, offset into a staircase from lg |
className | string | – | Extra classes for the outer section |
type StepTile = {
kicker: string;
title: string;
description: string;
media: ReactNode;
image?: TileImage;
};
type TileImage = {
src: string;
alt: string;
};lg:mt-16 on the second, lg:mt-32 on the third. The offsets cycle with index % offsets.length, so a fourth item starts the pattern again at zero rather than stepping off the page.lg only. Below that the tiles stack in one column with equal spacing, since a staircase would just look like inconsistent gaps.h-80 at every breakpoint, which is what keeps the steps even. Varying tile heights would break the rhythm the offsets create.media is required per item while image is optional, so a tile can float its asset on the plain muted surface with no photograph behind it.flex flex-col, so kicker, title and paragraph stay left-aligned to the tile edge rather than centering under it.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.
feature239
A value proposition with an eyebrow kicker over a hairline rule, a two-column heading and paragraph, and three portrait image tiles that each float a live micro-asset above a title and description.
feature230
Three tall portrait images in a row, each paired with a padded numeral, title, and description — a monochrome statement of guiding principles.
feature194
Three feature cards that swap an icon for a real micro-asset: a bar chart, a before/after stat, and a terminal prompt. Demonstrates how registry-pieces drop into block media slots.