Centered hero with optional badge, heading, description, dual action buttons, and a featured image below. Perfect for product launches and landing pages.
Centered, text-first hero: badge, heading, description, and up to two CTA buttons stacked in a single column, with an optional full-width featured image below the text block. The image is not clipped into a card or aspect box; it renders edge to edge inside a max-w-4xl wrapper with rounded corners.
Free block
This block is free. No license or account is required: install it with the CLI and use it in unlimited projects.
Radix flavor
npx shadcn add "https://ui.beste.co/r/hero7"Base UI flavor
npx shadcn add "https://ui.beste.co/r-base/hero7"This installs the block to components/beste/block/hero7.tsx and the Badge and Button shadcn/ui primitives it uses.
The installed file exports hero7Demo alongside the block: the exact props behind the preview above. Spread it to get a working hero in one line.
import { Hero7, hero7Demo } from "@/components/beste/block/hero7";
export default function Page() {
return <Hero7 {...hero7Demo} />;
}Then replace the demo with your own props. Written out, the same setup looks like this:
import { Hero7 } from "@/components/beste/block/hero7";
export default function Page() {
return (
<Hero7
badge={{ label: "New Release", variant: "secondary" }}
heading="Build stunning websites with easy tools"
description="Drag, drop, and customize templates without writing a line of code."
buttons={[
{ label: "Get Started", href: "/signup" },
{ label: "Watch Demo", href: "/demo", variant: "outline" },
]}
image={{
src: "https://images.unsplash.com/photo-1460925895917-afdab827c52f?w=1200&h=800&fit=crop",
alt: "Product dashboard screenshot",
}}
/>
);
}| Prop | Type | Default | Description |
|---|---|---|---|
badge | { label: string; variant?: "default" | "secondary" | "outline" } | – | Optional pill badge above the heading |
heading | string | – | Main headline (required, no fallback) |
description | string | – | Supporting paragraph under the heading |
buttons | Hero7Button[] | – | CTA buttons rendered in a centered, wrapping row |
image | { src: string; alt: string } | – | Featured image below the text block |
className | string | – | Extra classes for the outer <section> |
type Hero7Button = {
label: string;
href: string;
variant?: "default" | "outline";
};heading is the only required prop; badge, description, buttons, and image are all conditionally rendered and the section still lays out cleanly with just a heading.max-w-4xl, and is not wrapped in a card or bordered container: it is a plain <img> with w-full rounded-lg, so its own aspect ratio drives the height.flex flex-wrap row; each button's variant defaults to "default" only when the array item omits it, so mixed default/outline pairs (as in the demo) are explicit per button.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.
hero36
Centered hero with gradient-highlighted heading text and trusted-by logo cloud below CTA buttons. Perfect for B2B SaaS and enterprise products.
hero50
Clean centered hero with clickable announcement banner pill above the heading with sparkle icon. Perfect for product launches and feature announcements.