Skip to content
GetUrUI

CTA Sections

4 variantsPro
.md

Four closing calls to action — a frosted card over a tilting product window, cards drifting around the headline with pointer parallax, counter-rotating rings of logos and metrics, and a liquid goo button.

ctacall to actionlandingmarketingsignupemail captureparallaxorbitgoosvg filter

Product window

product-window.tsx

A tilting app window with a frosted glass card on top; the email form shakes on errors and morphs into a confirmation.

$npx shadcn@latest add @geturui-pro/cta-sections-product-window
PropTypeDefaultDescription
eyebrowstring—Chip above the headline.
headlinestring—Section h2.
subcopystring—Supporting paragraph.
actionLabelstring"Start my trial"Submit button label.
finePrintstring—Small line under the form.
onSubmit(email: string) => Promise<void> | void—Resolve to show success, reject to show the error state.
classNamestring—Classes for the section.

Proof orbit

proof-orbit.tsx

The CTA sits at the centre of two counter-rotating rings of customer wordmarks and proof metrics that stay upright and pause on hover.

$npx shadcn@latest add @geturui-pro/cta-sections-proof-orbit
PropTypeDefaultDescription
eyebrowstring—Label above the headline.
headlinestring—Section h2.
subcopystring—Supporting paragraph.
primaryAction{ label: string; href?: string; onClick?: () => void }—Volt button.
secondaryAction{ label: string; href?: string; onClick?: () => void } | null—Ghost button. null hides it.
logosstring[]—Wordmarks on the outer ring.
metrics{ value: string; caption: string }[]—Proof points on the inner ring.
durationnumber70Seconds per turn of the outer ring.
classNamestring—Classes for the section.

Liquid

liquid.tsx

Bold CTA panel whose button is built with an SVG goo filter: droplets and a cursor-following blob melt out of the pill on hover.

$npx shadcn@latest add @geturui-pro/cta-sections-liquid
PropTypeDefaultDescription
eyebrowstring—Chip above the headline.
headlinestring—Section h2.
subcopystring—Supporting paragraph.
primaryAction{ label: string; href?: string; onClick?: () => void }—The liquid button.
secondaryAction{ label: string; href?: string; onClick?: () => void } | null—Underlined text link. null hides it.
metastring[]—Reassurance items under the buttons.
tone"volt" | "ember""volt"Fill colour of the liquid.
classNamestring—Classes for the section.

Install the whole set

Installs every cta sections variant at once. Each section above has its own command for a single variant.

Pro installs use your private registry token. Add the @geturui-pro registry once — setup guide. The command works after you get Pro.

$npx shadcn@latest add @geturui-pro/cta-sections

Also installs: Button

Accessibility

  • Every action is a real link or button; the email form has a label, aria-invalid and a live message for errors and success.
  • Floating cards, orbit rings and goo blobs are aria-hidden; the orbit's logos and metrics are also listed as text for screen readers.
  • Parallax, tilt, orbits and liquid motion stop under reduced motion, and the orbit has a visible Pause control.

Related