Centered hero with four-column metrics panel showing values and trend indicators below the CTA buttons. Perfect for analytics dashboards and business tools.
Centered hero for analytics products: a standard heading and CTA block sits above a four-column metrics panel showing headline values with up/down trend arrows, styled like a strip pulled straight out of a dashboard.
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/hero48?email=YOUR_EMAIL&license_key=YOUR_KEY"Base UI flavor
npx shadcn add "https://ui.beste.co/r-base/hero48?email=YOUR_EMAIL&license_key=YOUR_KEY"This installs the block to components/beste/block/hero48.tsx and its shadcn/ui dependencies: Badge, Button.
The installed file exports hero48Demo alongside the block: the exact props behind the preview above. Spread it to get a working hero in one line.
import { Hero48, hero48Demo } from "@/components/beste/block/hero48";
export default function Page() {
return <Hero48 {...hero48Demo} />;
}Then replace the demo with your own props. Written out, a trimmed setup looks like this:
import { Hero48 } from "@/components/beste/block/hero48";
export default function Page() {
return (
<Hero48
badge={{ label: "Dashboard", variant: "secondary" }}
heading="Real-time insights at your fingertips"
description="Monitor your business metrics in real-time."
buttons={[{ label: "View Dashboard", href: "https://beste.co" }]}
metrics={[
{ label: "Total Revenue", value: "$1.2M", change: { value: "+12.5%", trend: "up" } },
{ label: "Active Users", value: "48.2K", change: { value: "+8.1%", trend: "up" } },
{ label: "Conversion Rate", value: "3.24%", change: { value: "-0.4%", trend: "down" } },
]}
/>
);
}| Prop | Type | Default | Description |
|---|---|---|---|
badge | { label: string; variant?: "default" | "secondary" | "outline" } | – | Pill above the heading |
heading | string | – | Main heading |
description | string | – | Supporting paragraph |
buttons | ButtonItem[] | [] | CTA buttons; the first one gets a trailing arrow icon |
metrics | MetricCard[] | [] | Cells rendered in the panel below the CTAs |
className | string | – | Extra classes for the outer <section> |
type ButtonItem = {
label: string;
href?: string;
variant?: "default" | "secondary" | "outline" | "ghost";
};
type MetricCard = {
label: string;
value: string;
change?: { value: string; trend: "up" | "down" };
};rounded-2xl border bg-card) with divide-y sm:divide-x between cells rather than separate cards, so dividers automatically switch from horizontal to vertical once the grid moves from one column to a row.sm, 4 columns from lg.text-emerald-500 for "up", text-rose-500 for "down", each paired with a matching TrendingUp/TrendingDown icon.metrics is entirely optional; omitting it collapses the hero to just heading, description, and buttons with no panel below.hero37
Centered hero with four floating stat cards positioned around the content displaying key metrics. Perfect for analytics platforms and data-driven products.
hero96
50/50 split hero with content left and metric dashboard cards with trend badges over video right
hero25
Split-layout hero with interactive dashboard mockup featuring stats cards, line chart, and recent activity feed. Perfect for SaaS and analytics platforms.
hero68
Centered hero with three feature highlights displayed as icon cards with descriptions below the CTA. Perfect for platform and infrastructure products.
hero36
Centered hero with gradient-highlighted heading text and trusted-by logo cloud below CTA buttons. Perfect for B2B SaaS and enterprise products.
hero71
Centered hero with prominent price display, period label, and horizontal feature checklist. Perfect for freemium products and pricing-focused landing pages.