Vertically centered hero with animated scroll-down indicator featuring bouncing dot and arrow. Perfect for single-page sites and immersive landing pages.
Vertically centered, near-fullscreen hero (min-h-[80vh]) for single-page and landing-page openers, with a scroll-down affordance pinned to the bottom of the viewport: a bouncing dot inside a pill "mouse" shape plus a bouncing arrow.
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/hero57"Base UI flavor
npx shadcn add "https://ui.beste.co/r-base/hero57"This installs the block to components/beste/block/hero57.tsx and its shadcn/ui dependencies: Badge, Button.
The installed file exports hero57Demo alongside the block: the exact props behind the preview above. Spread it to get a working hero in one line.
import { Hero57, hero57Demo } from "@/components/beste/block/hero57";
export default function Page() {
return <Hero57 {...hero57Demo} />;
}Then replace the demo with your own props. Written out, the same setup looks like this:
import { Hero57 } from "@/components/beste/block/hero57";
export default function Page() {
return (
<Hero57
badge={{ label: "Launching Soon", variant: "outline" }}
heading="Transform your workflow with intelligent automation"
description="Streamline operations and focus on what matters most."
buttons={[
{ label: "Get Started Free", href: "https://beste.co" },
{ label: "Watch Demo", href: "https://beste.co", variant: "outline" },
]}
scrollText="Scroll to explore"
/>
);
}| 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; the first one gets a trailing arrow icon |
scrollText | string | – | Label shown above the scroll indicator |
className | string | – | Extra classes for the outer <section> |
type ButtonItem = {
label: string;
href?: string;
variant?: "default" | "secondary" | "outline" | "ghost";
};min-h-[80vh] with flex flex-col; the text block sits in a flex-1 justify-center wrapper, so it stays vertically centered in whatever height the section ends up at instead of being pinned to a fixed offset.inset-x-0 bottom-8, independent of the centered content above it, and only renders when scrollText is provided.ArrowDown icon) use Tailwind's built-in animate-bounce utility, not a custom keyframe or a JS animation library.hero134
Full-bleed hero whose background crossfades across items, steered by a minimal vertical pager pinned to the right edge. The active control grows taller while the rest stay short and dimmed; a giant heading and the clickable active item name sit bottom-left.
hero97
Fullscreen bottom-aligned hero with vertical stack cards and inset background video with gradient overlay
hero100
Fullscreen hero with centered content and browser window frame mockup over inset background video
hero128
Full-bleed monochrome hero whose background crossfades to the active project. A giant heading sits bottom-left while a numbered vertical project index on the right highlights and swaps the active row on hover, click, or auto-loop.
hero99
Cinematic fullscreen hero with scrolling marquee keyword band over inset background video
hero130
Full-bleed hero with a static background image, a giant display heading, and a slim bordered bar that auto-rotates through short, clickable announcement messages with position dots.