Desktop optimized

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

Go to home

Pendulum Reveal

A kinetic text reveal component. Elements drop down from a top hinge point, utilizing a heavy elastic ease to simulate a swinging pendulum settling into place.

Last Modified:Aug 17, 2026

Install

CLI

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

Or install a specific demo variant:

pendulum-reveal-demo
$pnpm dlx shadcn@latest add https://ui.satisium.com/r/pendulum-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.
startAngleXnumber90The degree to which elements are folded up into the ceiling.
startAngleZnumber-8A slight loose hinge twist added to the drop.
durationnumber1.6The duration of the swing. Elastic eases need longer durations to resolve the wobble.
delaynumber0Delay before the animation begins (in seconds).
staggernumber0.04Stagger delay between each element dropping.
viewportOncebooleantrueIf true, plays once. If false, seamlessly reverses on scroll away.
triggerStartstring"top 90%"Viewport threshold for when the animation should start.