Staaarter

Bordered Stack CTA

A storytelling-driven conversion section: three bordered boxes, each pairing an icon with a title and short description and alternating icon-left/icon-right alignment down the stack, build the case before a final bordered call-to-action box with a heading and button.

By Staaarter Team
CTA
Docs
Live preview

Docs

Installation

A real shadcn registry command, not a copy-paste stand-in: it fetches this block plus its button dependencies and any missing npm packages, and installs them straight into your project.

npx shadcn add https://staaarter.com/r/bordered-stack-cta.json

Prefer not to use the CLI? Copy the source from the Code toggle above into src/components/blocks/cta/cta34.tsx instead.

Usage

The file also exports cta34Demo, the exact props behind the preview above. Spread it to get a working section in one line, then replace it with your own data.

import { Cta34, cta34Demo } from "@/components/blocks/cta/cta34";

export default function Page() {
  return <Cta34 {...cta34Demo} />;
}

Props

PropTypeDefaultDescription
eyebrowstring"Why teams choose us"Small label above the stack.
itemsStackItem[]noneThe bordered value-prop rows, in order.
headingstringnoneHeading in the closing call-to-action box.
descriptionstringnoneSupporting text in the closing call-to-action box.
buttonLabelstring"Start free trial"Label for the closing button.
buttonHrefstring"/signup"Link for the closing button.
classNamestringnoneExtra classes for the outer section element.

Types

interface StackItem {
  title: string;
  description: string;
}

Behavior notes

  • Fully static: icons are drawn from a fixed, hardcoded array and assigned by array position (a component reference can't be passed as prop data), alternating icon-left/icon-right by row index.
  • The closing button is a real link to a placeholder route; nothing else in the block is interactive.