tween
ComponentsTemplatesShowcaseContact

Command Palette

Search for a command to run...

Getting Started
  • Introduction
  • Installation
  • StoryNew
Guides
  • Motion Principles
  • Scroll and Smooth Scroll
  • Performance and Accessibility
Scroll Animations
  • Sticky Cards Scroll
  • Rise Fan Cards Scroll
  • Rotate Stack Scroll
  • Doodle Lens ScrollNew
  • Slit Open Hero ScrollNew
  • Logo Mask Zoom ScrollNew
  • ASCII Dissolve ScrollNew
  • Lottie Flight ScrollNew
  • Inline Icon Text ScrollNew
  • Starfield ScrollNew
  • Name Swap ScrollNew
  • Spotlight Gallery HeroNew
  • Slit Rotate Hero ScrollNew
  • Stroke Cover ScrollNew
  • Stroke Rows ScrollNew
Text Animations
  • Text Skew Reveal
  • Block Text Reveal
Hover & Cursor
  • Image Trail Cursor
  • Cursor Depth Logo
  • Physics Tag Drop
  • Elastic Card ListNew
  • Magnetic Cards SpringNew
Sliders & Carousels
  • Wheel Fullscreen Carousel
  • Ripple Displacement Slider
  • Three.js Blend Slider
  • Stacked Deck Slider
  • Orbit Cylinder SliderNew
  • Fan Stack SliderNew
  • Exponential Strip SliderNew
  • Dual Column SliderNew
Galleries & Grids
  • Scroll Wave Gallery
Menus & Navigation
  • Shrink Page MenuNew
Preloaders & Intros
  • Floating Items RevealNew
  • Word Cycle RevealNew
  • Tile Grid LoaderNew
Page Transitions
  • Panel Assembly TransitionNew
3D & WebGL
  • Fractal Glass Hero
  • Fluid Cursor Canvas
  • Fluid Portrait Hero
  • Fluid Gradient Canvas
  • Inversion Lens HoverNew
UI Elements
  • Circular Widgets
  • Vinyl Cover
  • Image Explosion Footer
  • Accordion Image FramesNew

(Tween) — Motion registry

Animated components & full sites, one command away.

Product

  • Components
  • Templates
  • Installation
  • Guides
  • Blog
  • Contact

Categories

  • Scroll Animations
  • Text Animations
  • Hover & Cursor
  • Sliders & Carousels
  • Galleries & Grids
  • Menus & Navigation
  • Preloaders & Intros
  • Page Transitions
  • 3D & WebGL
  • UI Elements
TWEEN
ease: power2.inOut0.00s
© 2026 TweenBack to topBuilt by mohammad
  1. Docs/
  2. Components/
  3. Stacked Deck Slider

Stacked Deck Slider

PreviousNext

A wheel- and touch-driven slider where slides sit in a receding 3D card stack and cycle with a word-by-word title reveal.

Open in
stacked-deck-slider-demo
components/ui/stacked-deck-slider-demo.tsx
import { StackedDeckSlider } from "@/registry/tween/stacked-deck-slider"

export function StackedDeckSliderDemo() {
  return <StackedDeckSlider />
}

Installation

pnpm dlx shadcn@latest add https://tweenui.dev/r/stacked-deck-slider.json

Usage

import { StackedDeckSlider } from "@/components/ui/stacked-deck-slider"
<StackedDeckSlider
  slides={[
    {
      title: "Gilt Hour",
      image:
        "https://images.unsplash.com/photo-1593118854491-81cb5a79b868?q=80&w=1200&h=900&fit=crop&crop=faces,center&auto=format",
      alt: "Model on a dune lifting gold fabric",
    },
    {
      title: "Linen Drift",
      image:
        "https://images.unsplash.com/photo-1505340261985-ef955dabca9d?q=80&w=1200&h=900&fit=crop&crop=faces,center&auto=format",
    },
    {
      title: "Last Light",
      image:
        "https://images.unsplash.com/photo-1596325426091-d11002d625fa?q=80&w=1200&h=900&fit=crop&crop=faces,center&auto=format",
    },
  ]}
/>

The slider keeps a window of up to five slides positioned along a CSS perspective axis — each one offset down and back by a fixed step so they read as a receding deck. A wheel or vertical swipe accumulates past a threshold and advances one step: the front card animates out and is removed, every other card eases up one position, and a fresh card fades in at the back with its title sliding up word by word via SplitText. A cooldown prevents accidental multi-steps. Wheel and touch listeners bind to the component element with preventDefault, so the deck never steals page scroll. When prefers-reduced-motion: reduce is set, the deck renders static with no listeners.

Props

PropTypeDefaultDescription
slidesStackedDeckSlide[]6 defaultsEach slide is { title, image, alt? }.
backgroundstring"#0f0f0f"Container background color.
wheelThresholdnumber100Accumulated wheel delta required to advance one step.
stepCooldownnumber1200Lockout in milliseconds between steps.
classNamestring—Extra classes on the outer container.
Three.js Blend SliderOrbit Cylinder Slider

On This Page

InstallationUsageProps

Contribute

  • Report an issue
  • Request a feature
  • Edit this page