A last call to action on a soft glow with the reassurance under it, then the links and the copyright.
$ pnpm dlx shadcn@latest add @dashral/cta-footerWhen to use
- A last call to action on a soft glow, then the links and the copyright.
- Landing pages that end on one more ask.
When not to use
- Pages that already end on a call-to-action section: two asks in a row read as pushy.
- Inside an app: Simple footer.
Usage
CTA footer with your own data: every prop has the sample as its default, so pass only what you have.
example.tsx
import { CtaFooter } from "@/components/dashral/blocks/cta-footer"
<CtaFooter
title="Start in five minutes"
primary={{ label: "Start free", href: "/register" }}
brand={{ name: "Acme", href: "/" }}
columns={footerColumns}
/>API reference
CtaFooter
The end of a landing page: a last call to action on a soft glow — the promise, the main action and the reassurance under it — then the brand, three columns of links and the copyright. Every part comes from props.
| Prop | Type | Default |
|---|---|---|
title | React.ReactNode | sample |
description | React.ReactNode | sample |
primary | BlockAction | sample |
secondary | BlockAction | nullThe second button; null hides it. | sample |
note | React.ReactNodeA line under the buttons; none hides it. | sample |
brand | { name: string; href: string; tagline?: string; logo?: React.ReactNode } | sample |
columns | { title: string; links: FooterLink[] }[] | sample |
copyright | stringThe copyright line (© this year and the brand without it). | — |
legal | FooterLink[] | sample |
type BlockAction
A button: a link with href, or your handler with onClick.
| Prop | Type | Default |
|---|---|---|
label | string | — |
href | string | — |
onClick | () => void | — |
type FooterLink
A link in the footer.
| Prop | Type | Default |
|---|---|---|
label | string | — |
href | string | — |