Staaarter

Animated Border Video CTA

Split CTA layout: heading, copy, and buttons on one side, and on the other a video card wrapped in a rotating conic-gradient border ring, a soft blurred glow shape behind it for depth, and the whole card gently floating up and down, a premium, ambient showcase for a short product clip.

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/animated-border-video-cta.json

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

Usage

The file also exports cta61Demo, 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 { Cta61, cta61Demo } from "@/components/blocks/cta/cta61";

export default function Page() {
  return <Cta61 {...cta61Demo} />;
}

Props

PropTypeDefaultDescription
eyebrowstringnoneSmall label above the heading.
headingstringnoneMain CTA heading.
descriptionstringnoneSupporting paragraph.
primaryLabelstring"Get started"Primary button label.
primaryHrefstring"#"Primary button destination.
secondaryLabelstringnoneOptional secondary link-style button label.
secondaryHrefstring"#"Secondary button destination.
videoSrcstringnoneMP4 source URL for the looping card video.
posterSrcstringnonePoster image shown before the video loads.
classNamestringnoneExtra classes for the outer section element.

Behavior notes

  • The border ring is a `conic-gradient` painted onto an oversized absolutely-positioned layer behind an inset video, continuously rotated with a pure CSS `@keyframes` transform: rotate loop, no JS; only the ring color shows past the inset video's edge.
  • The float animation reuses the same translateY `@keyframes` pattern as the circular-video CTA, layered on top of the rotating ring so both animations run independently and continuously.
  • The blurred glow behind the card is a plain `bg-primary/30 blur-3xl` shape, decorative and `aria-hidden`, not a video or interactive element.
  • The video autoplays muted and looped via native HTML attributes only and is marked `aria-hidden`, purely decorative inside the card.