Staaarter

Aurora Spotlight CTA

An immersive, eye-catching conversion card: soft drifting aurora-style gradient blobs in the background, plus a spotlight glow that follows the cursor as it moves over the card. Built to make a launch or upgrade section feel alive without being distracting.

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/aurora-spotlight-cta.json

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

Usage

The file also exports cta38Demo, 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 { Cta38, cta38Demo } from "@/components/blocks/cta/cta38";

export default function Page() {
  return <Cta38 {...cta38Demo} />;
}

Props

PropTypeDefaultDescription
headingstring"Build something people love"Main heading.
descriptionstring"Join thousands of teams..."Supporting copy under the heading.
primaryLabelstring"Start building"Primary call-to-action button label.
primaryHrefstring"#"Link target for the primary button.
secondaryLabelstring"See how it works"Secondary button label.
secondaryHrefstring"#"Link target for the secondary button.
classNamestringnoneExtra classes for the outer section element.

Behavior notes

  • The spotlight glow is a real, mouse-driven effect: an onMouseMove handler on the card computes the cursor's position relative to the card's own bounding box, stores it in useState<{x, y}>, and writes it out as CSS custom properties (--x/--y) that drive a radial-gradient overlay positioned at the cursor.
  • The large blurred aurora blobs behind the card are purely decorative: they're pure-CSS @keyframes animations that drift slowly and continuously, independent of the cursor position.
  • Both call-to-action buttons render as real Next.js Links via the button's render prop, but default to "#" and don't perform a real signup or navigate anywhere on their own.