Fullscreen split hero with content left and 3D perspective-tilted phone mockup right over inset background video
Fullscreen split hero for a mobile app: heading, description, a short checklist of feature highlights with icon bullets, and app-store badges on the left, a single notched phone mockup on the right, over an inset background video panel.
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/hero107?email=YOUR_EMAIL&license_key=YOUR_KEY"Base UI flavor
npx shadcn add "https://ui.beste.co/r-base/hero107?email=YOUR_EMAIL&license_key=YOUR_KEY"This installs the block to components/beste/block/hero107.tsx and its dependency: the badge shadcn/ui primitive.
The installed file exports hero107Demo alongside the block: the exact props behind the preview above. Spread it to get a working hero in one line.
import { Hero107, hero107Demo } from "@/components/beste/block/hero107";
export default function Page() {
return <Hero107 {...hero107Demo} />;
}Then replace the demo with your own props. Written out, the same setup looks like this:
import { Check, Fingerprint, Zap } from "lucide-react";
import { Hero107 } from "@/components/beste/block/hero107";
export default function Page() {
return (
<Hero107
badge={{ label: "New Release", variant: "secondary" }}
heading="Experience a new perspective"
description="Crafted with obsessive attention to detail."
features={[
{ icon: Zap, text: "Instant sync across all devices" },
{ icon: Fingerprint, text: "Biometric authentication built-in" },
{ icon: Check, text: "Works offline, syncs when ready" },
]}
appStores={[
{ image: { src: "/badges/app-store.svg", alt: "Download on App Store" }, href: "/ios" },
{ image: { src: "/badges/google-play.svg", alt: "Get it on Google Play" }, href: "/android" },
]}
backgroundMedia={{ type: "video", src: "/videos/hero.mp4" }}
phoneScreenshot={{ src: "/images/app-screen.png", alt: "App screenshot" }}
/>
);
}| Prop | Type | Default | Description |
|---|---|---|---|
badge | Badge | – | Pill shown above the heading |
heading | string | – | Main headline |
description | string | – | Supporting copy under the heading |
features | FeatureHighlight[] | [] | Icon + text checklist rendered between the description and the app-store row |
appStores | AppStore[] | [] | Store badge images/links rendered under the feature list |
backgroundMedia | BackgroundMedia | – | Video or image behind the whole section |
phoneScreenshot | { src: string; alt: string } | – | Screenshot rendered inside the phone frame |
invertColor | boolean | true | Light-on-dark treatment (white text, black overlay) vs. dark-on-light |
className | string | – | Extra classes for the outer <section> |
type Badge = { label: string; variant?: "default" | "secondary" | "outline" };
type BackgroundMedia = { type: "image" | "video"; src: string; alt?: string };
type AppStore = { image: { src: string; alt: string }; href: string };
type FeatureHighlight = { icon: LucideIcon; text: string };rounded-[2.75rem] frame used by hero103 and hero108, just placed in a two-column split layout instead of centered. The "3D perspective" is purely a naming/positioning choice, not a CSS perspective/rotate3d effect.features renders as a plain <ul> of icon-in-circle rows; unlike hero106's flanking columns, this list stays attached to the text column and does not move to flank the phone.text-center, justify-center), left-aligned from lg (lg:text-left, lg:justify-start), applied independently to the heading block, feature list, and app-store row.max-w-4xl (narrower than hero103's max-w-6xl) and uses justify-between between the text column and the phone, giving this hero a tighter, more compact split than the other phone-mockup heroes.inset-x-6 top-6 bottom-6, wider from lg).hero105
Fullscreen hero with two overlapping angled phone mockups and app store buttons over inset background video
hero106
Fullscreen hero with centered phone mockup flanked by feature columns on each side over inset background video
hero103
Fullscreen hero with app store buttons and phone mockup over inset background video
hero108
Fullscreen hero with phone mockup, star rating review card, and app store buttons over inset background video
hero82
Left-aligned fullscreen hero with inset background media and directional gradient overlay
hero100
Fullscreen hero with centered content and browser window frame mockup over inset background video