Desktop optimized

Please maximize your browser window or use a larger screen to explore the component library.

Go to home

Dimensional Carousel

A high-performance WebGL horizontal carousel. Cards arriving from the right are flat, while cards passing the center seamlessly stack into a 3D Cover Flow layout. Features custom GLSL shaders for aerodynamic bending and kinetic RGB splitting based on swipe velocity.

Last Modified:Aug 17, 2026

Install

CLI

dimensional-carousel
$pnpm dlx shadcn@latest add https://ui.satisium.com/r/dimensional-carousel.json

Or install a specific demo variant:

dimensional-carousel-demo
$pnpm dlx shadcn@latest add https://ui.satisium.com/r/dimensional-carousel-demo.json

Manual

1. Install Dependencies

Dependencies
$pnpm add three @react-three/fiber @react-three/drei gsap @gsap/react clsx tailwind-merge

2. Add Source Code

Props

PropTypeDefaultDescription
imagesstring[]RequiredArray of image URLs to load into the carousel.
cardWidthRationumber0.35Percentage of screen width the card occupies on desktop.
cardAspectRationumber1.4Width-to-height ratio of the cards.
gapMultipliernumber0.8Space between incoming flat cards.
scrollSensitivitynumber0.04How heavily the scroll wheel/drag affects movement.
lerpFactornumber0.08How buttery smooth the momentum is (0.01 to 1).
stackGapMultipliernumber0.1Distance between cards when stacked on the left.
depthMultipliernumber0.8How deep into the Z-axis cards are pushed when stacked.
rotationMultipliernumber0.08How much cards tilt horizontally as they stack.
flexMultipliernumber0.12How aggressively the cards bow physically when swiping fast.
parallaxIntensitynumber0.1Intensity of the internal texture slide.
chromaticAberrationIntensitynumber0.005Intensity of the color split on scroll.
dimmingMultipliernumber0.6How much the cards darken as they move to the back.
cornerRadiusnumber0.04SDF corner radius (0.0 to 0.5).