Cta 1
import { placeholderImage as placeholder } from "@/lib/placeholder-image"
import { Cta1 } from "@/components/blocks/cta-1"
const placeholderImage = placeholder.src
export default function Cta1Demo() {
return (
<>
<Cta1
title="Give every launch page a decisive close"
description="Use a centered CTA when the rest of the page already did the explaining and the final section needs one clear invitation."
buttons={[
{ label: "Start project", href: "/docs/" },
{ label: "Browse components", href: "/components/" },
]}
socialProof={{
avatars: [
{ image: placeholderImage, initials: "SV" },
{ image: placeholderImage, initials: "JD" },
{ image: placeholderImage, initials: "MK" },
{ image: placeholderImage, initials: "AR" },
],
rating: 4.8,
ratingLabel: "Rated 4.8 out of 5",
text: "Example: 4.8 from 120 reviews",
}}
/>
</>
)
}Cta 2
import { placeholderImage as placeholder } from "@/lib/placeholder-image"
import { Cta2 } from "@/components/blocks/cta-2"
const placeholderImage = placeholder.src
export default function Cta2Demo() {
return (
<>
<Cta2
title="Turn your component inventory into complete pages"
description="A split CTA works well when the message needs a little more narrative and the actions should stay visually distinct."
buttons={[
{ label: "See block library", href: "/blocks/" },
{ label: "Install primitives", href: "/docs/installation/" },
]}
socialProof={{
avatars: [
{ image: placeholderImage, initials: "SV" },
{ image: placeholderImage, initials: "JD" },
{ image: placeholderImage, initials: "MK" },
],
rating: 4.8,
ratingLabel: "Rated 4.8 out of 5",
text: "Example: 4.8 from 120 reviews",
}}
/>
</>
)
}Cta 3
import { placeholderImage as placeholder } from "@/lib/placeholder-image"
import { Cta3 } from "@/components/blocks/cta-3"
const placeholderImage = placeholder.src
export default function Cta3Demo() {
return (
<>
<Cta3
title="Build one block language for docs and marketing"
description="This spread CTA is useful at the end of feature sections or product comparisons where the surface should feel contained yet spacious."
buttons={[
{ label: "Use Section", href: "/components/section/" },
{ label: "Inspect Card", href: "/components/card/" },
]}
socialProof={{
avatars: [
{ image: placeholderImage, initials: "SV" },
{ image: placeholderImage, initials: "JD" },
{ image: placeholderImage, initials: "MK" },
{ image: placeholderImage, initials: "AR" },
],
rating: 4.8,
ratingLabel: "Rated 4.8 out of 5",
text: "Example: 4.8 from 120 reviews",
}}
/>
</>
)
}Cta 4
import { placeholderImage as placeholder } from "@/lib/placeholder-image"
import { Cta4 } from "@/components/blocks/cta-4"
const placeholderImage = placeholder.src
export default function Cta4Demo() {
return (
<>
<Cta4
title="Move from isolated examples to reusable page sections"
description="A background-image CTA helps the final section feel like a real destination instead of just another block in the stack."
buttons={[
{ label: "Explore blocks", href: "/blocks/" },
{ label: "Button API", href: "/components/button/" },
]}
socialProof={{
avatars: [
{ image: placeholderImage, initials: "SV" },
{ image: placeholderImage, initials: "JD" },
{ image: placeholderImage, initials: "MK" },
],
rating: 4.8,
ratingLabel: "Rated 4.8 out of 5",
text: "Example: 4.8 from 120 reviews",
}}
/>
</>
)
}Cta 5
import { Cta5 } from "@/components/blocks/cta-5"
export default function Cta5Demo() {
return (
<>
<Cta5
title="A CTA with supporting proof points"
description="Great for pages that need a little more reassurance before the final decision. The checklist reinforces the value proposition."
features={[
"Reusable hero sections",
"Editorial article layouts",
"Contact and pricing flows",
]}
buttons={[
{ label: "Read the docs", href: "/docs/" },
{ label: "Feature examples", href: "/blocks/features/" },
]}
/>
</>
)
}Cta 6
import { placeholderImage as placeholder } from "@/lib/placeholder-image"
import { Cta6 } from "@/components/blocks/cta-6"
const placeholderImage = placeholder.src
export default function Cta6Demo() {
return (
<>
<Cta6
title="A reversed layout for visual variety"
description="Use this version when the page needs a different rhythm. The image leads, giving the text a supporting role."
buttons={[
{ label: "Browse blocks", href: "/blocks/" },
{ label: "Component docs", href: "/components/" },
]}
socialProof={{
avatars: [
{ image: placeholderImage, initials: "SV" },
{ image: placeholderImage, initials: "JD" },
{ image: placeholderImage, initials: "MK" },
],
rating: 4.8,
ratingLabel: "Rated 4.8 out of 5",
text: "Example: 4.8 from 120 reviews",
}}
/>
</>
)
}Cta 7
import { placeholderImage as placeholder } from "@/lib/placeholder-image"
import { Cta7 } from "@/components/blocks/cta-7"
const placeholderImage = placeholder.src
export default function Cta7Demo() {
return (
<>
<Cta7
title="Create launch sections everyone can reuse"
description="This centered CTA with a tinted background works when the section needs to feel distinct from the surrounding content without being too bold."
buttons={[
{ label: "Layout docs", href: "/components/layout/" },
{ label: "Sidebar docs", href: "/components/sidebar/" },
]}
socialProof={{
avatars: [
{ image: placeholderImage, initials: "SV" },
{ image: placeholderImage, initials: "JD" },
{ image: placeholderImage, initials: "MK" },
{ image: placeholderImage, initials: "AR" },
],
count: "+120",
text: "Example: join 120 customers",
}}
/>
</>
)
}Cta 8
import { Cta8 } from "@/components/blocks/cta-8"
export default function Cta8Demo() {
return (
<>
<Cta8
title="Choose a CTA pattern that matches the weight of the decision"
description="Some pages need a bold final section. Others only need a quiet nudge. This minimal version with a subtle glow works for the latter."
buttons={[
{ label: "Hero variants", href: "/blocks/hero/" },
{ label: "Pricing variants", href: "/blocks/pricing/" },
]}
/>
</>
)
}