Scrollable Card Stack

Interactive stacked card carousel with scroll-snap navigation and smooth parallax reveal animations. Touch-friendly React component for showcases and galleries.

Open in v0~10.2 kB

Last updated: March 7, 2026

Card 1 of 4 selected. Use arrow keys to navigate one card at a time, or click the dots below.

Installation

npx smoothui-cli add scrollable-card-stack

Features

  • Stacked, snap-scrolling layout
  • Parallax and reveal motion
  • Keyboard and touch friendly
  • Theming options

Accessibility

Keyboard Interactions

KeyDescription
ArrowUp / ArrowLeftNavigates to the previous card
ArrowDown / ArrowRightNavigates to the next card
HomeJumps to the first card
EndJumps to the last card

ARIA Attributes

AttributeElementPurpose
aria-labelSectionProvides an accessible name "Scrollable card stack"
aria-live="polite"SectionAnnounces card changes to screen readers
aria-atomic="true"SectionEnsures the full announcement is read together
role="application"ContainerIndicates custom keyboard interaction model
role="tablist"Navigation dotsGroups the dot indicators as a tab list
role="tab"Each dotIdentifies each dot as a tab control
aria-selectedEach dotIndicates the active card indicator
aria-labelEach dotDescribes position (e.g., "Go to card 1 of 5")
aria-hiddenNon-active cardsHides stacked cards behind the current one from screen readers
aria-labelProfile linkDescribes the link action (e.g., "View John's profile")

Screen Reader

  • A live region announces the current card position (e.g., "Card 1 of 5 selected. Use arrow keys to navigate one card at a time, or click the dots below.").
  • Non-active cards are marked aria-hidden so only the visible card is announced.

Reduced Motion

This component respects the prefers-reduced-motion media query via useReducedMotion from Motion. When reduced motion is preferred, card scale/translate animations, blur effects, and hover scale transitions are all disabled.

Props