Staaarter

Video Bento Grid CTA

CTA heading, description, and buttons sit centered above an asymmetric bento showcase grid: one large video tile spans two rows on one side, with two smaller stacked video tiles filling the remaining space, three video tiles total, contained rather than full-bleed.

By Staaarter Team
CTA
Docs
Live preview

Docs

Installation

A real shadcn registry command, not a copy-paste stand-in: it fetches this block plus its button dependencies and any missing npm packages, and installs them straight into your project.

npx shadcn add https://staaarter.com/r/video-bento-grid-cta.json

Prefer not to use the CLI? Copy the source from the Code toggle above into src/components/blocks/cta/cta63.tsx instead.

Usage

The file also exports cta63Demo, the exact props behind the preview above. Spread it to get a working section in one line, then replace it with your own data.

import { Cta63, cta63Demo } from "@/components/blocks/cta/cta63";

export default function Page() {
  return <Cta63 {...cta63Demo} />;
}

Props

PropTypeDefaultDescription
headingstring"One platform, every format you ship"Main headline, centered above the grid.
descriptionstringnoneSupporting copy under the heading.
primaryLabelstring"Explore the pipeline"Primary button label.
primaryHrefstring"#"Primary button destination.
secondaryLabelstring"Book a demo"Secondary button label, omit to hide the button.
secondaryHrefstring"#"Secondary button destination.
featureTileVideoTilenoneThe large video tile spanning two rows on desktop.
supportingTilesVideoTile[]noneThe two smaller, stacked video tiles alongside the feature tile.
classNamestringnoneExtra classes for the outer section element.

Types

interface VideoTile {
  videoSrc: string;
  posterSrc: string;
}

Behavior notes

  • All videos autoplay muted and looped purely through native HTML attributes (`autoPlay loop muted playsInline`) — there is no JavaScript play/pause control in this demo.
  • A real integration should add a user-facing mute/pause control for accessibility (respecting prefers-reduced-motion and giving users a way to stop the motion); that is intentionally not implemented here.
  • On mobile the bento grid collapses to a single stacked column; the row-span layout that makes the feature tile visually larger only applies at the `sm` breakpoint and up.