CTA Section

Closing call-to-action section in a centered layout (large headline, two CTAs and a reassurance checklist inside a card) or a split layout (copy beside a visual or an email capture with a stateful submit), with a word-by-word headline reveal on scroll, a rotating gradient beam on the card border or a soft dotted field, and a layout that adapts to its own container width.

Preview

CTA Section preview width

Install

Add it with the shadcn CLI, or copy the source manually.

$ bunx --bun shadcn add @karaui/cta-section
@karaui not found? Add it to components.json
{
  "registries": {
    "@karaui": "https://karaui.kamisama-v0.my.id/r/{name}.json"
  }
}

@karaui is in shadcn's public registry directory, so the latest CLI needs no setup. On an older CLI, merge this into the existing file once and every @karaui/… install resolves.

API Reference

variant?
"split" | "centered"

"centered" stacks everything in one card; "split" puts copy left and a visual or email capture right.

centered
eyebrow?
ReactNode
—
headline
string | string[]

Revealed word by word when the section scrolls into view.

—
description?
ReactNode
—
primaryAction?
CtaAction
—
secondaryAction?
CtaAction
—
checklist?
ReactNode[]

Short reassurance list ("No credit card", "Cancel any time").

—
emailCapture?
CtaEmailCapture

Email field with a stateful submit button.

—
visual?
ReactNode

Right column for `variant="split"` (mock UI, illustration). When omitted, the email capture takes that slot.

—
background?
"none" | "dots" | "beam"

Card decoration: rotating gradient beam on the border, a dotted field, or nothing. Default "beam".

beam
headingAs?
ElementType

Heading element for the headline. Default "h2".

h2
className?
string
—
cardClassName?
string
—

Keep in mind

Some components on this site are inspired by or recreated from existing work across the web. I'm not here to take credit; just to learn, experiment, and sometimes push things a bit further. If something looks familiar and I forgot to mention you, reach out and I'll fix that right away.

Updated