Resource Rows CTAPRO

A closing call to action that offers three downloadable resources as full-width hairline rows, each a link with a short kicker, a format note, and an arrow that shifts on hover.

Cta87: Resource Rows CTA

A closing call to action that offers three downloadable resources as full-width hairline rows, each a link with a short kicker, a format note and an arrow that shifts on hover.

Upgrade to Pro

Pro blocks install through the shadcn CLI with your license key and ship their full source. Docs and live previews stay open to everyone, so you can read every block's details first.

Upgrade Now

Installation

Swap YOUR_EMAIL and YOUR_KEY for the email and license key on your account. Find your license key on your account page.

Radix flavor

bash
npx shadcn add "https://ui.beste.co/r/cta87?email=YOUR_EMAIL&license_key=YOUR_KEY"

Base UI flavor

bash
npx shadcn add "https://ui.beste.co/r-base/cta87?email=YOUR_EMAIL&license_key=YOUR_KEY"

This installs the block to components/beste/block/cta87.tsx plus the badge23 and button21 components it uses for the eyebrow and the action.

Quick start

The installed file exports cta87Demo alongside the block: the exact props behind the preview above. Spread it to get a working call to action in one line.

tsx
import { Cta87, cta87Demo } from "@/components/beste/block/cta87";

export default function Page() {
  return <Cta87 {...cta87Demo} />;
}

Then replace the demo with your own props. Written out, a trimmed setup looks like this:

tsx
import { Cta87 } from "@/components/beste/block/cta87";

export default function Page() {
  return (
    <Cta87
      badge={{ label: "Before you decide" }}
      heading="Take the homework with you"
      description="Three things practices asked us for often enough that we wrote them down properly."
      resources={[
        {
          kicker: "Guide",
          title: "Migrating without closing for a week",
          description: "The export, mapping, and dry-run sequence in full.",
          meta: "14 pages · PDF",
          href: "/downloads/migration-guide.pdf",
        },
        {
          kicker: "Checklist",
          title: "What to have ready before day one",
          description: "Rooms, rotas, insurers, and access levels, in order.",
          meta: "One page",
          href: "/downloads/checklist.pdf",
        },
      ]}
      button={{ label: "Or just book a demo", href: "/demo" }}
      finePrint="Everything above downloads directly."
    />
  );
}

Props

PropTypeDefaultDescription
badge{ label: string }Eyebrow above the heading, rendered through Badge23
headingstringSection heading in the left column of the header
descriptionstringSupporting paragraph, right-aligned from md up
resourcesResource[][]Linked hairline rows, one per download
button{ label: string; href: string }Fallback action under the rows
finePrintstringSmall line under the action
classNamestringExtra classes for the outer section
ts
type ActionLink = {
  label: string;
  href: string;
};

type Resource = {
  kicker: string;
  title: string;
  description: string;
  meta: string;
  href: string;
};

Behavior notes

More CTA blocks

View all CTA
PRO

cta86

Contact And Availability CTA

A closing call to action splitting a bordered container between a hairline contact table and an inverted dark column that floats a live card naming the person you will meet above the booking action.

PRO

cta74

Centered Closing CTA

A centered call to action with an eyebrow pill, a large light heading, a short paragraph, and two accent buttons on a clean surface.

PRO

cta18

Fullwidth Image CTA

Full-width call-to-action with background image overlay, heading, and action buttons. Perfect for bold, visually striking conversion sections.

PRO

cta90

Multi-Site Coverage CTA

A closing call to action on a soft section that sets an image tile floating a live coverage card against three labelled columns of places, with the action under a hairline.

PRO

cta91

Handheld Reminder CTA

A closing call to action that leads with a narrow portrait tile floating a live phone frame, then sets centered copy and two actions beneath it over three hairline promises.

PRO

cta85

Migration Process CTA

A closing call to action on a soft section that puts a live step tracker between centered copy and three hairline notes, then lands on a single action with its fine print.