Skip to content
shadcn.io

shadcn.io is not affiliated with official shadcn/ui

Polaroid Stack CTA Block for React

A centred statement for a photo album app, with a floor band at the foot where three tilted polaroid links peek up, then lift, straighten and develop from a soft blur to clear on hover or focus.

Framework
UI library

Preview

Preview width

Installation

Part of Pro
Pro unlocks the code and one-line install of every Pro button and text effect, plus the MCP for your AI editor.
Have Pro already? Sign in to open it.Opens here as soon as you're Pro.

Overview

Invite people to start a photo album with this centred statement for React with Base UI. Between solid rails, a headline, a sentence about Shoebox (a fictional photo album app) and the Shine Button sit above a floor band: a tinted strip under a hairline, where three tilted, overlapping polaroids peek up from the foot and are cut off by the block's edge. Each polaroid is a link; on hover or keyboard focus a frame lifts, straightens and its photo "develops" from a soft blur to clear. The photos are small scenes (hills, a coast, a trail) drawn in SVG in your theme's foreground tones, so you swap in your own images; the captions are set in a handwritten-style serif italic. It's built from Guides, Aspect Ratio and Shine Button, and every transition is CSS that holds still under reduced motion. Made for photo, scrapbook, travel and portfolio products, gallery launches and any page where the keepsake is the pitch.

FAQ

How do I use my own photos?

Inside each frame's AspectRatio, put an img (or your framework's image component) with className="size-full object-cover" in place of the Scene, and keep the filter classes on the AspectRatio, which is what develops the photo. The POLAROIDS array holds each frame's caption, place in the stack and scene (a list of SVG shapes); drop the scene when you use a photo. Give each image an empty alt, since the caption names the link, and keep them small: they are above the fold.

How does the develop effect work, and what about touch screens and reduced motion?

At rest the photo carries a faint blur; on hover or keyboard focus the frame gets its group-hover and group-focus-visible classes, which ease the filter off and lift and straighten the frame over about 300 milliseconds. Touch screens have no hover, so on a coarse pointer the photos are shown developed from the start. With reduced motion on, the frame still lifts and the photo still clears, but at once, with no transition.

How does the stack fit on a phone?

The frames are sized from the width of their row, up to 11rem each, with the overlap measured in the same unit, so the three always fit side by side, down to 320px. The floor band gets shorter on a phone, so the button stays on the first screen, and the headline steps down from text-5xl to text-3xl.

What changes in right-to-left languages?

The stack runs from the right: the frames' order, their overlap (set with a logical margin) and their tilt all mirror, so the stack leans the same way relative to its start. The band and its rule are symmetric, so they don't move.

How do I change the button?

The Shine Button is a link: point href at your sign-up or editor. A band of light sweeps across it once on hover and keyboard focus, and with reduced motion it fades in where it stands. It's the only primary control; the polaroids are links too, but quiet ones. The button renders the link it's given with render, with nativeButton={false}.

  • Pro

    Icon Medallion CTA

    Trust and security

    A split security prompt for a password vault: the headline and two actions at the start, and at the end a settings panel where a medallion swaps from an alert shield to a checked one when the two-factor switch turns on.

  • Pro

    A centred statement call to action for an accessibility scanner: a big headline, the Shine Button and an outline button, then a framed row of four trust cells on shared hairlines that each open a short note on what they cover.

  • Pro

    Light Email Capture CTA

    Forms and capture

    A newsletter CTA as a band between solid rails: a headline and a sentence at the start, and at the end one Shine Button that opens in place into an email field with its own Shine submit, closes on Escape and ends in a confirmation.

  • Pro

    A split call to action on drafting lines: an invite for a private community beside a framed ring of member avatars that turns slowly while the section is hovered or holds focus.

  • Pro

    A centred showcase hero for a reporting workspace: the headline and a Shine Button, then a band between the rails with a fanned deck of three app windows (Dashboard, Analytics, Reports) that runs off its foot, masked.

  • Pro

    A showcase hero for a design studio: a centered headline with a Shine Button, over a masonry wall of six projects drawn in greyscale inside a hairline frame that fades out at its foot.