Fullscreen Hero with Browser Mockup

Preview

See it in action before you commit

A live preview of your entire workflow — from code to deployment — running right in your browser.

app.example.com
App Preview
About this block

Fullscreen Hero with Browser MockupPRO

Fullscreen hero with centered content and browser window frame mockup over inset background video

Hero100: Fullscreen Hero with Browser Mockup

Hero with a full-bleed background video behind centered heading copy, and a browser-window mockup (traffic-light chrome, fake URL bar) pulled up with a large negative top margin so its top half overlaps the video zone and its bottom half rests on the plain background below.

Upgrade to Pro

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.

Upgrade Now

Installation

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

bash
npx shadcn add "https://ui.beste.co/r/hero100?email=YOUR_EMAIL&license_key=YOUR_KEY"

Base UI flavor

bash
npx shadcn add "https://ui.beste.co/r-base/hero100?email=YOUR_EMAIL&license_key=YOUR_KEY"

This installs the block to components/beste/block/hero100.tsx and its dependencies: the badge and button shadcn/ui primitives.

Quick start

The installed file exports hero100Demo alongside the block: the exact props behind the preview above. Spread it to get a working hero in one line.

tsx
import { Hero100, hero100Demo } from "@/components/beste/block/hero100";

export default function Page() {
  return <Hero100 {...hero100Demo} />;
}

Then replace the demo with your own props. Written out, the same setup looks like this:

tsx
import { Hero100 } from "@/components/beste/block/hero100";

export default function Page() {
  return (
    <Hero100
      badge={{ label: "Preview", variant: "secondary" }}
      heading="See it in action before you commit"
      description="A live preview of your entire workflow, running right in your browser."
      buttons={[
        { label: "Try It Now", href: "/signup", variant: "default" },
        { label: "View Docs", href: "/docs", variant: "outline" },
      ]}
      backgroundMedia={{ type: "video", src: "/videos/hero.mp4" }}
      windowMedia={{ src: "/images/app-preview.png", alt: "App preview" }}
    />
  );
}

Props

PropTypeDefaultDescription
badgeBadgePill shown above the heading
headingstringMain headline
descriptionstringSupporting copy under the heading
buttonsButtonItem[][]CTA buttons under the description
backgroundMediaBackgroundMediaVideo or image behind the heading/text zone
windowMediaBackgroundMediaContent shown inside the browser-window mockup
invertColorbooleantrueLight-on-dark treatment (white text, black overlay) vs. dark-on-light
classNamestringExtra classes for the outer <section>
ts
type Badge = { label: string; variant?: "default" | "secondary" | "outline" };
type ButtonItem = { label: string; href: string; variant?: "default" | "outline" };
type BackgroundMedia = { type: "image" | "video"; src: string; alt?: string };

Behavior notes

  • Unlike most heroes in this set, the section is not forced to min-h-screen; height comes from stacked padding (pt-32 pb-44 growing to lg:pb-64) plus the mockup below, so total height is content-driven.
  • The background video/image panel only covers the top text zone (top-6 bottom-0, no bottom inset), while the browser mockup below uses a negative top margin (-mt-24 growing to lg:-mt-48) to visually pull its top edge up into the video zone, creating the overlap effect. Both pieces are z-10, stacked in DOM order, no absolute positioning trick beyond the margin.
  • The browser mockup chrome (three colored traffic-light dots, a centered fake app.example.com URL pill) is static markup, not a real address bar; windowMedia fills the content pane below it as either an autoplaying muted looping video or a plain <img>.
  • invertColor (defaulting to true) governs only the top zone: heading/description color and the video overlay tint (bg-black/70 vs. bg-background/80); the browser mockup itself is always a fixed white surface regardless of invertColor.

More Hero blocks

View all Hero
PRO

hero86

Fullscreen Hero with Logo Cloud

Cinematic fullscreen hero with inset background video and trusted-by logo strip

PRO

hero82

Left-Aligned Hero with Gradient Overlay

Left-aligned fullscreen hero with inset background media and directional gradient overlay

PRO

hero80

Cinematic Hero with Overlapping Media

Centered hero with inset background media and overlapping product image

PRO

hero85

Fullscreen Hero with Floating Testimonials

Cinematic fullscreen hero with inset background video and floating glassmorphism testimonial cards

PRO

hero81

Fullscreen Hero with Quick-Access Cards

Cinematic fullscreen hero with inset background media and glassmorphism quick-access cards

PRO

hero106

Mobile Hero with Flanking Features

Fullscreen hero with centered phone mockup flanked by feature columns on each side over inset background video