Two-column hero with interactive image card that tilts in 3D on mouse movement with shine effect. Perfect for showcasing premium or interactive products.
Two-column hero where the image side is a pointer-reactive card: moving the cursor over it tilts the card in 3D toward the pointer and sweeps a diagonal shine across the surface, then eases back flat on pointer leave.
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/hero51?email=YOUR_EMAIL&license_key=YOUR_KEY"Base UI flavor
npx shadcn add "https://ui.beste.co/r-base/hero51?email=YOUR_EMAIL&license_key=YOUR_KEY"This installs the block to components/beste/block/hero51.tsx and its shadcn/ui dependencies: Badge, Button.
The installed file exports hero51Demo alongside the block: the exact props behind the preview above. Spread it to get a working hero in one line.
import { Hero51, hero51Demo } from "@/components/beste/block/hero51";
export default function Page() {
return <Hero51 {...hero51Demo} />;
}Then replace the demo with your own props. Written out, a trimmed setup looks like this:
import { Hero51 } from "@/components/beste/block/hero51";
export default function Page() {
return (
<Hero51
badge={{ label: "3D Experience", variant: "outline" }}
heading="Interactive design that delights"
description="Hover over the card to see the 3D effect."
buttons={[
{ label: "Try It Now", href: "https://beste.co", icon: "arrow-right" },
{ label: "View Examples", href: "https://beste.co", variant: "outline" },
]}
image={{
src: "https://images.unsplash.com/photo-1551288049-bebda4e38f71?w=1200&h=900&fit=crop",
alt: "Dashboard preview",
}}
displayPosition="left"
/>
);
}| 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, each with an optional trailing icon |
image | { src: string; alt: string } | – | Image inside the tilting card |
displayPosition | "left" | "right" | "left" | Which side the tilting card renders on |
className | string | – | Extra classes for the outer <section> |
type ButtonItem = {
label: string;
href?: string;
variant?: "default" | "secondary" | "outline" | "ghost";
icon?: "arrow-right" | "chevron-right" | "external-link";
};displayPosition describes where the image card sits, not the text: "left" (the default) puts the text column in lg:order-2 and the card in lg:order-1, so the card renders on the left and text on the right; "right" reverses both orders.onPointerMove: the pointer's position inside the card's bounding rect is converted to rotateX/rotateY degrees (offset from center, divided by 10) and applied as an inline transform on a wrapper with perspective: 1000px and transformStyle: preserve-3d; the card also scales to 1.02 while hovering. onPointerLeave resets rotation to 0 and clears the hover flag.pointer-events-none, absolutely positioned) uses an inline linear-gradient whose angle shifts with rotation.y * 2, fading in to opacity: 0.15 on hover and back to 0 over duration-300 on leave, giving the sweep its own independent fade separate from the tilt transform.onPointerMove/onPointerEnter/onPointerLeave (not mouse-specific events), so the same handlers also fire for touch and pen input on capable devices.hero35
Two-column hero with playable video (or image), play button overlay, and key stats row. Perfect for product demos and feature announcements.
hero61
Two-column hero with announcement banner, social proof metrics, and three floating feature cards with hover animations. Perfect for SaaS product launches.
hero107
Fullscreen split hero with content left and 3D perspective-tilted phone mockup right over inset background video
hero90
Vertical split hero with video/image on top and content section below
hero20
Two-column carousel with animated content transitions, thumbnail strip navigation, and vertical progress indicator. Perfect for product showcases and feature highlights.
hero93
40/60 asymmetric split hero with narrow content panel and vertical quick links over video