Left-aligned fullscreen hero with inset background media and directional gradient overlay
Fullscreen hero with left-aligned copy over an inset background image or video, darkened by a directional left-to-right gradient so the text stays legible while the right side of the image stays visible.
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/hero82?email=YOUR_EMAIL&license_key=YOUR_KEY"Base UI flavor
npx shadcn add "https://ui.beste.co/r-base/hero82?email=YOUR_EMAIL&license_key=YOUR_KEY"This installs the block to components/beste/block/hero82.tsx along with the badge and button shadcn/ui primitives it depends on.
The installed file exports hero82Demo alongside the block: the exact props behind the preview above. Spread it to get a working hero in one line.
import { Hero82, hero82Demo } from "@/components/beste/block/hero82";
export default function Page() {
return <Hero82 {...hero82Demo} />;
}Then replace the demo with your own props. Written out, the same setup looks like this:
import { Hero82 } from "@/components/beste/block/hero82";
export default function Page() {
return (
<Hero82
badge={{ label: "Introducing V2", variant: "secondary" }}
heading="Design without limits, build without boundaries"
description="A modern workspace for teams who want to move fast."
buttons={[
{ label: "Get Started", href: "/signup" },
{ label: "Learn More", href: "/product", variant: "outline" },
]}
backgroundMedia={{ type: "image", src: "https://images.unsplash.com/photo-1621063573999-5af1e96634f8?w=1600&h=900&fit=crop" }}
invertColor
/>
);
}| Prop | Type | Default | Description |
|---|---|---|---|
badge | { label: string; variant?: "default" | "secondary" | "outline" } | – | Small label above the heading |
heading | string | – | Main headline |
description | string | – | Supporting paragraph under the heading |
buttons | { label: string; href: string; variant?: "default" | "outline" }[] | [] | CTA buttons rendered left-aligned below the description |
backgroundMedia | { type: "image" | "video"; src: string; alt?: string } | – | Full-viewport inset image or video behind the content |
invertColor | boolean | true | Switches text and overlay between dark-background and light-background styling |
className | string | – | Extra classes for the outer <section> |
max-w-xl and left-aligned inside a much wider max-w-7xl container with heavy horizontal padding (px-12 up to px-20 on lg), instead of being centered like most other heroes in this set.bg-gradient-to-r from-black/80 via-black/60 to-black/30 (or the background-token equivalent when invertColor is false), so the left side of the image is darkest where the text sits and the right side stays comparatively visible.backgroundMedia sits in an inset rounded panel (inset-x-6 top-6 bottom-6, inset-x-8/top-8/bottom-8 on lg) rather than true edge-to-edge; it accepts either a video (autoPlay/loop/muted/playsInline) or a static image.min-h-screen with the content vertically centered via flex items-center inside it, so the left column's vertical position tracks the viewport height rather than a fixed offset.hero97
Fullscreen bottom-aligned hero with vertical stack cards and inset background video with gradient overlay
hero83
Bottom-aligned fullscreen hero with inset background media and right-side quick link cards
hero100
Fullscreen hero with centered content and browser window frame mockup over inset background video
hero80
Centered hero with inset background media and overlapping product image
hero81
Cinematic fullscreen hero with inset background media and glassmorphism quick-access cards
hero90
Vertical split hero with video/image on top and content section below