Desktop optimized

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

Go to home

Tumbler Roll Reveal

A mechanical 3D text reveal component. Characters or words roll into place along an invisible 3D cylinder, mimicking the tactile snap of a combination lock or vintage split-flap display.

Last Modified:Aug 17, 2026

Install

CLI

tumbler-roll-reveal
$pnpm dlx shadcn@latest add https://ui.satisium.com/r/tumbler-roll-reveal.json

Or install a specific demo variant:

tumbler-roll-reveal-demo
$pnpm dlx shadcn@latest add https://ui.satisium.com/r/tumbler-roll-reveal-demo.json

Manual

1. Install Dependencies

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

2. Add Source Code

Props

PropTypeDefaultDescription
textstringRequiredThe full string of text to reveal.
asReact.ElementType"h1"The HTML tag to render as.
splitBy"word" | "char""char"Whether to split and animate by word or individual character.
startAnglenumber110The starting rotation angle on the X-axis.
cylinderRadiusstring"-0.8em"The Z-axis pivot point. Creates the 3D cylinder illusion.
durationnumber0.9Duration of the snap animation per element.
delaynumber0Delay before the animation begins (in seconds).
staggernumber0.04Stagger delay between each element rolling.
viewportOncebooleantrueIf true, plays once. If false, seamlessly reverses on scroll away.
triggerStartstring"top 90%"Viewport threshold for when the animation should start.