A hero framed inside a bordered card on a soft section, with centered copy and two actions above an image tile that runs past the card's bottom edge so the live metrics panel is cropped like a real screenshot.
A hero framed inside a bordered card on a soft section, with centered copy and two actions above an image tile that runs past the card's bottom edge so the live metrics panel is cropped like a real screenshot.
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/hero163?email=YOUR_EMAIL&license_key=YOUR_KEY"Base UI flavor
npx shadcn add "https://ui.beste.co/r-base/hero163?email=YOUR_EMAIL&license_key=YOUR_KEY"This installs the block to components/beste/block/hero163.tsx, the dashboard33 metrics piece it crops at the card edge (installed to components/beste/piece/dashboard33.tsx), and the badge23 and button21 components it uses for the eyebrow and the actions.
The installed file exports hero163Demo alongside the block: the exact props behind the preview above. Spread it to get a working hero in one line.
import { Hero163, hero163Demo } from "@/components/beste/block/hero163";
export default function Page() {
return <Hero163 {...hero163Demo} />;
}Then replace the demo with your own props. Written out, a trimmed setup looks like this:
import { Dashboard33 } from "@/components/beste/piece/dashboard33";
import { Hero163 } from "@/components/beste/block/hero163";
export default function Page() {
return (
<Hero163
badge={{ label: "Monday morning" }}
heading="Open one tab and the week is already sorted"
description="It opens on the numbers a practice lead checks first, so nobody spends the first hour assembling them by hand."
buttons={[
{ label: "Start free", href: "/signup" },
{ label: "Book a walkthrough", href: "/demo", tone: "outline" },
]}
note="Free for the first clinic, for as long as you like."
media={
<Dashboard33
title="This week"
range="Mon to Sun"
items={[
{ label: "Booked", value: "142", delta: "+9", direction: "up" },
{ label: "No-shows", value: "3", delta: "-4", direction: "down" },
]}
/>
}
image={{ src: "/backdrops/green.jpg", alt: "Deep green gradient backdrop" }}
/>
);
}| Prop | Type | Default | Description |
|---|---|---|---|
badge | { label: string } | – | Centered eyebrow above the heading, rendered through Badge23 |
heading | string | – | Display heading, rendered as the page h1 |
description | string | – | Centered supporting paragraph, capped at max-w-lg |
buttons | ActionLink[] | [] | Centered actions in source order |
note | string | – | Small line under the actions, for pricing or trial caveats |
media | ReactNode | – | Live asset inside the cropped tile, dashboard33 in the demo |
image | { src: string; alt: string } | – | Backdrop behind the media tile |
className | string | – | Extra classes for the outer section |
type ButtonTone = "primary" | "neutral" | "outline";
type ActionLink = {
label: string;
href: string;
tone?: ButtonTone;
};
type TileImage = {
src: string;
alt: string;
};h-48 (then md:h-56) while the tile inside it is h-72 (then md:h-80). The card's overflow-hidden clips the difference, so the panel is cut off partway down instead of ending cleanly.bg-background on a bg-muted section, so the frame reads as a raised surface. That inversion is what lets the border stay a single hairline rather than needing a shadow.tone is honored when set, otherwise the first button renders primary and every later one renders outline.max-w-2xl and centered inside the card, independent of the tile, which is capped at max-w-4xl. The two are sized separately so the screenshot can be wider than the text it sits under.hero81
Cinematic fullscreen hero with inset background media and glassmorphism quick-access cards
hero85
Cinematic fullscreen hero with inset background video and floating glassmorphism testimonial cards
hero122
Centered typographic hero on a muted card with an oversized heading, inline CTA, and a bottom monospace meta row of three labels.
hero97
Fullscreen bottom-aligned hero with vertical stack cards and inset background video with gradient overlay