$99 launch price

Components

Shutter Gallery

Pro

Installation

ProRequires a Planes Pro license.
npx shadcn add @useplanes/shutter-gallery

Works once the @useplanes registry is set up in your project (one-time). After that, copy and run commands directly.

Unlock with Planes Pro

$99 once · 118 Pro components · lifetime updates.

<ShutterGallery
  items={[
    { src: "/cars/1.webp", alt: "Red coupe at night", title: "Night Run", subtitle: "Rear three-quarter" },
    { src: "/cars/2.webp", alt: "Black car in a studio", title: "Obsidian", subtitle: "Studio, single key light" },
  ]}
  height={480}
/>

Examples

Controlled

Drive the open panel from your own state, e.g. to sync it with a list or the URL.

const [open, setOpen] = useState<number | null>(0);

<ShutterGallery items={items} open={open} onOpenChange={setOpen} />

Keyboard and touch

Each panel is a button with aria-expanded. Tab to peek, Enter to open, Escape to close. On touch there is no peek, so the first tap opens.

<ShutterGallery items={items} />

Reduced motion

With prefers-reduced-motion panels snap open and closed, and the caption fades without travel or blur.

<ShutterGallery items={items} />

Use cases

  • Product lineup

    Models, colorways or editions side by side, each opening into its own hero shot.

  • Portfolio strip

    A row of projects that stays calm until the visitor picks one.

  • Collection teaser

    A drop or lookbook where the shade on each panel builds anticipation.

  • Case study chapters

    Chapters of a story as panels, opened one at a time.