Skip to content

CTA

CTA Marquee

A large invitation and a button above an endless strip of photos running edge to edge.

Layout and motion from the Nitip template — see it in context

Installation

$ npx shadcn@latest add https://framebrick.co/r/blocks/cta-marquee.json

Usage

import { CtaMarquee } from "@/components/cta-marquee";

<CtaMarquee
  title="Ready to grow?"
  action={{ label: "Start a project", href: "/contact" }}
  images={["/work/1.jpg", "/work/2.jpg", "/work/3.jpg"]}
/>

Props

PropTypeDefaultDescription
titlestring—Section heading (h2), set large.
action{ label, href }Start a projectButton under the heading.
imagesstring[]6 photosSquare photos for the strip (decorative, hidden from assistive tech).
speednumber30Pixels per second.
classNamestring—Classes for the <section>.
  • The heading column (up to 56rem) is left-aligned below 1024px and centered from 1024px; the strip runs the full page width under it.
  • Tiles are 400px square, 30px apart, from 768px — 256px on phones. The strip runs left at 30px/s and stands still with reduced motion (marquee).

AI prompt

Paste into v0, Lovable, Bolt or Claude to rebuild this block in your own project.

Create a React + Tailwind CSS block called CtaMarquee (Next.js).
- <section className="overflow-hidden py-(--section-y)">. In a container (mx-auto max-w-(--container) px-(--gutter)) a column up to max-w-4xl,
  centered from 1024px (text left-aligned): an h2 font-heading text-h1 semibold tracking-tight and a large shadcn-style button, gap-12.
- Under it (mt-16 / md:mt-20 / lg:mt-24), outside the container, an aria-hidden strip of square photos (256px, 400px from 768px,
  rounded-lg, 30px apart) that scrolls left forever at 30px per second (Web Animations or Motion, duration from the width), still with
  prefers-reduced-motion.
- Only shadcn variables and block tokens.

Be the first to know

Get new templates and components first

One short email when we release a template or a free component. No spam — unsubscribe anytime.

We use your email only for Framebrick updates. Privacy policy