Skip to content
caliper ui docs

Blocks

Stacking cards block

Feature cards that stack as you scroll: each sticks a little lower than the last, and as the next slides over it the card underneath settles back, smaller and dimmer, so the pile reads as depth.

Pro
pnpm dlx shadcn@latest add @caliper/stacking-cards-block

How it works

From bank feed to closed books

Four steps, each one a screen you already have.

  1. 01

    Connect your accounts

    Bank feeds, cards and payment processors arrive every morning, already sorted by entity.

  2. 02

    Match in bulk

    Rules and suggestions match thousands of lines; you review the few that need a person.

  3. 03

    Approve with context

    Every large payment carries its invoice, its history and who asked for it.

  4. 04

    Close and explain

    Lock the period and send a written summary of what changed and why.

Installs components/ui/stacking-cards-block.tsxDepends on lucide-reactMotion shared motion tokens

When to use

Use it for

  • Three to five big features or steps on a landing page.
  • A sequence that should feel like it builds.

Skip it when

  • More than five cards; the stack becomes a long wait.
  • Content people compare; use a grid.

Decisions

Why it is built this way, so you know what to keep when you change your copy.

Behaviour

Sticky does the stacking
Plain sticky positioning stacks the cards; script only tells each card how far it has been covered. Without script the stack still works.
Settles, never hides
A covered card shrinks by 5% at most and dims slightly; its top edge stays visible, so the pile can be counted.

Installation

terminal
pnpm dlx shadcn@latest add @caliper/stacking-cards-block

Adds its 6 files to components/ui/, each with its own stylesheet, and installs their packages. Pro installs with your access token, set up once per project. See Pro access. The first part also adds Caliper UI’s tokens; import them once as in Installation.

Usage

Import it from your copy of the source. The example behind the preview comes with the source.

example.tsx
import { StackingCardsBlock } from "@/components/ui/stacking-cards-block"

The worked example comes with Pro

The 20-line example behind the preview opens here, ready to copy.

  • 576 Pro parts, blocks and page templates, all with source
  • $199 once, with a year of updates. What you have stays yours
  • A full refund within 14 days if it is not for you
Checking your licence…

API reference

StackingCardsBlock

component
PropTypeDefault
eyebrowstring—
title *string—
leadstring—
cards *readonly StackingCard[]—
classNamestring—

Accessibility

It is built on native elements, so roles and focus come from the browser.

No custom key handling; Tab and the native activation keys do the work.

Motion

Transitions use the shared duration and easing tokens. Under prefers-reduced-motion those tokens collapse to instant and travel distances go to zero, so state changes still happen without movement.

All Showpiece sections examples