Centered hero with gradient-highlighted heading text and trusted-by logo cloud below CTA buttons. Perfect for B2B SaaS and enterprise products.
Centered hero built for B2B landing pages: badge, a heading with a gradient-clipped highlighted phrase, description, CTA buttons, and a "trusted by" logo row beneath the buttons. The logos sit desaturated by default and turn to full color on hover, one at a time.
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/hero36"Base UI flavor
npx shadcn add "https://ui.beste.co/r-base/hero36"This installs the block to components/beste/block/hero36.tsx and the Badge and Button shadcn/ui primitives it uses.
The installed file exports hero36Demo alongside the block: the exact props behind the preview above. Spread it to get a working hero in one line.
import { Hero36, hero36Demo } from "@/components/beste/block/hero36";
export default function Page() {
return <Hero36 {...hero36Demo} />;
}Then replace the demo with your own props. Written out, the same setup looks like this:
import { Hero36 } from "@/components/beste/block/hero36";
export default function Page() {
return (
<Hero36
badge={{ label: "Introducing v2.0", variant: "outline" }}
heading="The future of <strong>product development</strong>"
description="Build, test, and ship products faster, with tools your whole team can use."
buttons={[
{ label: "Start Free Trial", href: "/signup" },
{ label: "Book a Demo", href: "/demo", variant: "outline" },
]}
trustedBy={{
label: "Trusted by innovative teams",
logos: [
{ name: "Acme", logo: "/logos/acme.svg", href: "/customers/acme" },
{ name: "Northwind", logo: "/logos/northwind.svg" },
],
}}
/>
);
}| Prop | Type | Default | Description |
|---|---|---|---|
badge | { label: string; variant?: "default" | "secondary" | "outline" } | – | Optional pill badge above the heading |
heading | string | – | Headline HTML; wrap a phrase in <strong> to gradient-highlight it |
description | string | – | Supporting paragraph under the heading |
buttons | ButtonItem[] | [] | CTA buttons rendered in a centered, wrapping row |
trustedBy | { label: string; logos: LogoItem[] } | – | Caption plus a row of partner/customer logos |
className | string | – | Extra classes for the outer <section> |
type ButtonItem = {
label: string;
href?: string;
variant?: "default" | "secondary" | "outline" | "ghost";
};
type LogoItem = { name: string; logo: string; href?: string };heading is rendered via dangerouslySetInnerHTML, following the project's highlighted-text convention: only the text wrapped in <strong> gets the gradient (bg-gradient-to-r from-primary via-primary/80 to-primary bg-clip-text text-transparent); plain text around it stays the normal heading color.grayscale opacity-50 and transitions to full color and opacity on hover, per logo, with a plain CSS transition-all; there is no JavaScript involved.py-24 md:py-32, heavier than the standard py-16 md:py-24 section wrapper, which is intentional for a large top-of-page hero.href="#" when a LogoItem omits its href.hero68
Centered hero with three feature highlights displayed as icon cards with descriptions below the CTA. Perfect for platform and infrastructure products.
hero7
Centered hero with optional badge, heading, description, dual action buttons, and a featured image below. Perfect for product launches and landing pages.
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.
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.