Video Blinds Reveal CTA
A full-bleed panel is fully covered by six stacked horizontal bars. On hover, the bars slide apart in alternating directions with a staggered delay per bar, like opening a set of blinds, revealing a looping background video underneath. The heading and copy sit on top the whole time and transition from foreground-toned text to white as the video is revealed, so they stay legible against the footage.
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-blinds-reveal-cta.jsonPrefer not to use the CLI? Copy the source from the Code toggle above into src/components/blocks/cta/cta60.tsx instead.
Usage
The file also exports cta60Demo, 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 { Cta60, cta60Demo } from "@/components/blocks/cta/cta60"; export default function Page() { return <Cta60 {...cta60Demo} />; }
Props
| Prop | Type | Default | Description |
|---|---|---|---|
| eyebrow | string | none | Small label above the heading. |
| heading | string | none | Main CTA heading. |
| description | string | none | Supporting paragraph. |
| primaryLabel | string | "Get started" | Primary button label. |
| primaryHref | string | "#" | Primary button destination. |
| secondaryLabel | string | none | Optional secondary outline button label. |
| secondaryHref | string | "#" | Secondary button destination. |
| videoSrc | string | none | MP4 source URL for the background video. |
| posterSrc | string | none | Poster image shown before the video loads. |
| className | string | none | Extra classes for the outer section element. |
Behavior notes
- The reveal is pure CSS: `group`/`group-hover:` on the panel wrapper drives each bar's `-translate-x-full`/`translate-x-full` (alternating direction by index) with a per-bar `transitionDelay` set inline (`index * 60ms`) for the staggered blinds effect, no JS state.
- The background video autoplays muted and looped via native HTML attributes only and is marked `aria-hidden`, purely decorative behind the bars and text.
- Heading, eyebrow, and description text color transitions from the default foreground tones to white on hover (`group-hover:text-white`) since the revealed video needs light text for legibility, an explicitly scoped exception to the semantic-token-only rule for this reveal effect.
- No hover state exists without JS on touch devices; the panel still reads correctly with the bars fully closed (the default, non-hover state shows only the solid bars and legible on-background text).
More CTA Blocks
View all →centered-newsletter-cta
Centered Newsletter CTA
Minimal centered call-to-action with heading, description, and action buttons.
split-layout-newsletter-cta
Split Layout Newsletter CTA
Two-column call-to-action with a decorative image on one side and a feature list plus subscribe form on the other.
newsletter-social-proof-cta
Newsletter CTA with Social Proof
Newsletter call-to-action with an avatar stack, subscriber count, and a testimonial quote.
banner-cta
Banner CTA
Horizontal banner call-to-action with heading and action buttons side by side.
stats-cta
Stats CTA
Call-to-action section with impressive statistics and trust indicators above action buttons.
multi-card-cta
Multi-Card CTA
Three action cards side by side, each offering a different path to conversion.