Centered hero with prominent price display, period label, and horizontal feature checklist. Perfect for freemium products and pricing-focused landing pages.
Centered pricing-style hero: headline and copy lead into a large price figure with an optional billing period and note, followed by a horizontal checklist of plan features and a CTA row.
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/hero71?email=YOUR_EMAIL&license_key=YOUR_KEY"Base UI flavor
npx shadcn add "https://ui.beste.co/r-base/hero71?email=YOUR_EMAIL&license_key=YOUR_KEY"This installs the block to components/beste/block/hero71.tsx and the shadcn/ui badge and button components it depends on.
The installed file exports hero71Demo alongside the block: the exact props behind the preview above. Spread it to get a working hero in one line.
import { Hero71, hero71Demo } from "@/components/beste/block/hero71";
export default function Page() {
return <Hero71 {...hero71Demo} />;
}Then replace the demo with your own props. Written out, the same setup looks like this:
import { Hero71 } from "@/components/beste/block/hero71";
export default function Page() {
return (
<Hero71
badge={{ label: "Launch Pricing", variant: "default" }}
heading="One plan, everything included"
description="No tiers to compare, no add-ons to hunt for."
price={{ amount: "$29", period: "/month", note: "Billed annually" }}
features={[
{ text: "Unlimited team members" },
{ text: "50GB storage" },
{ text: "Priority support" },
]}
buttons={[{ label: "Start Free Trial", href: "/signup" }]}
/>
);
}| Prop | Type | Default | Description |
|---|---|---|---|
badge | { label: string; variant?: "default" | "secondary" | "outline" } | – | Badge above the heading |
heading | string | – | Main headline |
description | string | – | Supporting paragraph |
price | { amount: string; period?: string; note?: string } | – | Price block: large amount, an optional period suffix next to it, and an optional note line underneath |
features | { text: string }[] | [] | Horizontal checklist of plan features below the price |
buttons | ButtonItem[] | [] | CTA buttons at the bottom |
className | string | – | Extra classes for the outer <section> |
type ButtonItem = {
label: string;
href?: string;
variant?: "default" | "secondary" | "outline" | "ghost";
};amount and period are two independent strings placed side by side with no numeric parsing, formatting, or currency logic behind them.flex-wrap row (gap-x-4 gap-y-3) rather than a grid, so it reflows naturally regardless of how many items are passed."use client" is present for registry consistency, not for any hook or animation.hero68
Centered hero with three feature highlights displayed as icon cards with descriptions below the CTA. Perfect for platform and infrastructure products.
hero144
A centered hero with an eyebrow pill, a large light heading, a supporting paragraph, two accent buttons, and a wide image tile below that floats a live product micro-asset.
hero7
Centered hero with optional badge, heading, description, dual action buttons, and a featured image below. Perfect for product launches and landing pages.
hero120
Centered editorial hero with eyebrow, large heading, description, dual dark and outline CTAs, and a wide 16:9 image with a mono caption below.
hero80
Centered hero with inset background media and overlapping product image
hero50
Clean centered hero with clickable announcement banner pill above the heading with sparkle icon. Perfect for product launches and feature announcements.