Bounded Carousel Hero — Aligned

Contained 16:9 hero carousel with badge, title, description, and CTA. Vertically centered content that anchors to the left, center, or right via the contentAlign prop. Auto-rotates with centered, clickable dots.

PRO

Full-bleed hero carousel with the same badge, heading, description and CTA slide content as hero109, but the content column can anchor to the left, center, or right of the frame through contentAlign, and the background scrim direction switches to match so the text always sits on a legible gradient.

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.

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/hero110?email=YOUR_EMAIL&license_key=YOUR_KEY"

Base UI flavor

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

This installs the block to components/beste/block/hero110.tsx and the badge and button shadcn/ui primitives it depends on.

Quick start

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

tsx
import { Hero110, hero110Demo } from "@/components/beste/block/hero110";

export default function Page() {
  return <Hero110 {...hero110Demo} />;
}

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

tsx
import { Hero110 } from "@/components/beste/block/hero110";

export default function Page() {
  return (
    <Hero110
      transition="slide"
      contentAlign="left"
      slides={[
        {
          id: "slide-1",
          badge: { label: "New", variant: "secondary" },
          heading: "Launch week is here",
          description: "Ship your product page in an afternoon, not a sprint.",
          image: {
            src: "https://images.unsplash.com/photo-1519389950473-47ba0277781c?w=1500&h=844&fit=crop",
            alt: "Team celebrating a product launch",
          },
          buttons: [{ id: "btn-1", label: "See the release", href: "https://beste.co" }],
        },
        {
          id: "slide-2",
          badge: { label: "Design", variant: "secondary" },
          heading: "Built for detail",
          description: "Every transition, spacing and shadow considered.",
          image: {
            src: "https://images.unsplash.com/photo-1498050108023-c5249f4df085?w=1500&h=844&fit=crop",
            alt: "Designer reviewing a layout on a laptop",
          },
          buttons: [{ id: "btn-1", label: "View the system", href: "https://beste.co" }],
        },
      ]}
    />
  );
}

Props

PropTypeDefaultDescription
slidesHeroSlide[]Slide list; each slide carries its own badge, heading, description, image and buttons
autoPlaybooleantrueAuto-advances to the next slide on the interval timer
intervalnumber6000Milliseconds between auto-advances
transition"fade" | "slide" | "zoom" | "blur" | "kenBurns""fade"Which framer-motion variant set drives the slide change
showDotsbooleantrueShows the clickable dot pager at the bottom of the frame
contentAlign"left" | "center" | "right""center"Horizontal anchor for the badge/heading/description/buttons column
classNamestringExtra classes for the outer <section>
ts
type HeroSlide = {
  id: string;
  badge?: { label: string; variant?: "default" | "secondary" | "outline" };
  heading?: string;
  description?: string;
  image?: { src: string; alt: string };
  buttons?: ButtonItem[];
};

type ButtonItem = {
  id: string;
  label: string;
  href?: string;
  variant?: "default" | "secondary" | "outline" | "ghost" | "link" | "destructive";
};

Behavior notes

More Hero blocks

View all Hero
PRO

hero109

Bounded Carousel Hero

Contained 16:9 hero carousel with badge, title, description, and CTA over an image background. Auto-rotates with centered, clickable dots at the bottom — same carousel engine as hero19 but not full-height.

FREE

hero7

Centered Hero with Media

Centered hero with optional badge, heading, description, dual action buttons, and a featured image below. Perfect for product launches and landing pages.

PRO

hero111

Hero with Feature List and Image

Two-column hero with heading, description, icon-only feature list, and CTA on one side and a square image on the other. Image position is configurable.

PRO

hero122

Typographic Card Hero

Centered typographic hero on a muted card with an oversized heading, inline CTA, and a bottom monospace meta row of three labels.

PRO

hero120

Editorial Image Hero

Centered editorial hero with eyebrow, large heading, description, dual dark and outline CTAs, and a wide 16:9 image with a mono caption below.

PRO

hero20

Split Carousel with Thumbnails

Two-column carousel with animated content transitions, thumbnail strip navigation, and vertical progress indicator. Perfect for product showcases and feature highlights.