Split conversion CTA
Close a major page section with a clear action and supporting visual content.
Ready to continue
Build public pages with reusable components
Keep application pages focused on content and business data while the shared UI package owns presentation.
Add a screenshot, product preview, media block, chart, form, or illustration.
CTASection example
A polished default ctasection for a modern application.
A clean default configuration for everyday product interfaces.
A clean default configuration for everyday product interfaces.
<CTASection
eyebrow="Ready to continue"
title="Build public pages with reusable components"
description="Keep application pages focused on content and business data while the shared UI package owns presentation."
icon="icon-[lucide--rocket]"
align="split"
variant="gradient"
primaryLabel="Use these components"
primaryHref="#components"
primaryIcon="icon-[lucide--blocks]"
secondaryLabel="Back to home"
secondaryHref="/"
secondaryIcon="icon-[lucide--house]"
visualTitle="CTASection example"
visualDescription="A polished default ctasection for a modern application."
visualItems='[
{
"id": "ctasection-0-1",
"key": "ctasection-0-1",
"value": "primary",
"label": "Primary workflow",
"title": "Primary workflow",
"description": "A clean default configuration for everyday product interfaces.",
"text": "A configurable sample message.",
"href": "#ctasection-demo",
"actionHref": "#ctasection-demo",
"actionLabel": "View details",
"icon": "icon-[lucide--sparkles]",
"iconClass": "icon-[lucide--sparkles]",
"variant": "primary",
"status": "Active",
"time": "09:30",
"current": true,
"selected": true,
"checked": true,
"disabled": false,
"outgoing": false,
"open": true,
"number": 1,
"count": 16,
"percentage": 72,
"color": "#7c3aed",
"target": "_self",
"ariaLabel": "Open primary workflow 1",
"items": [
{
"label": "Nested option A",
"value": "nested-a"
},
{
"label": "Nested option B",
"value": "nested-b"
}
],
"links": [
{
"label": "Documentation",
"href": "#documentation"
},
{
"label": "API reference",
"href": "#api-reference"
}
],
"values": [
"Included",
"Standard"
]
},
{
"id": "ctasection-0-2",
"key": "ctasection-0-2",
"value": "secondary",
"label": "Additional option",
"title": "Supporting example",
"description": "A clean default configuration for everyday product interfaces.",
"text": "Another configurable message.",
"href": "#ctasection-demo",
"actionHref": "#ctasection-demo",
"actionLabel": "View details",
"icon": "icon-[lucide--sparkles]",
"iconClass": "icon-[lucide--sparkles]",
"variant": "primary",
"status": "Active",
"time": "09:30",
"current": false,
"selected": false,
"checked": false,
"disabled": false,
"outgoing": true,
"open": true,
"number": 2,
"count": 32,
"percentage": 72,
"color": "#7c3aed",
"target": "_self",
"ariaLabel": "Open primary workflow 2",
"items": [
{
"label": "Nested option A",
"value": "nested-a"
},
{
"label": "Nested option B",
"value": "nested-b"
}
],
"links": [
{
"label": "Documentation",
"href": "#documentation"
},
{
"label": "API reference",
"href": "#api-reference"
}
],
"values": [
"Included",
"Standard"
]
}
]'
maxWidth="full">
<div data-slot="actions">
<div class="showcase-slot">actions slot</div>
</div>
<div data-slot="visual">
<div class="showcase-visual-panel">
<span class="icon-[lucide--layout-template] size-12" aria-hidden="true"></span>
<strong>Composable visual panel</strong>
<p>Add a screenshot, product preview, media block, chart, form, or illustration.</p>
</div>
</div>
<div data-slot="footer">
<div class="showcase-slot">footer slot</div>
</div>
</CTASection>