The most advanced pure CSS scroll animation library. Horizontal scrolling, mask reveals, glassmorphism โ no JavaScript.
Every feature uses animation-timeline. Zero JavaScript.
Vertical โ horizontal via sticky + scroll().
Circle, diamond, wipe via clip-path.
Dynamic box-shadows on scroll.
Progressive blur on scroll.
Background-position via view().
Reduced motion + @supports fallback.
Scroll down โ content moves horizontally.
Every animation is tied to scroll position via CSS animation-timeline. No event listeners. No JS runtime.
Fade, scale, rotate, flip, blur, reveal, mask, parallax, glow โ all GPU-optimized.
Control via data-roopm-* attributes. Effect, duration, delay, easing โ all from markup.
Wrapped in @supports. Firefox/Safari get static designs. Zero broken layouts.
Animated clip-path reveals. Scroll slowly.
Box shadows expand dynamically. Scroll slowly.
.roopm-parallax-bg animates background-position 15% โ 85%.
Each card uses a different animation. Scroll through to see them all.
Scales from 0.35
Most popular effect
X-axis rotation
Clip-path wipe
v2.3 feature
Blur โ sharp
Spring easing
Horizontal entry
Polygon clip-path
Pin elements while content flows. Combine with scrubbing.
Left: 360ยฐ rotation | Right: Scale pulse
Sticks for 250vh.
Progress bar via scroll().
After pin ends, flow continues seamlessly.
Change --roopm-pin-height for longer pins.
Nest scrub animations inside pinned containers for scroll storytelling.
<!-- 1. Link the CSS --> <link rel="stylesheet" href="roopm-scrolltrigger.css"> <!-- 2. Add class + effect --> <div class="roopm-animate" data-roopm-effect="fade-up"> Hello, scroll world! </div> <!-- โ Use overflow-x: clip NOT hidden --> html { overflow-x: clip; } body { overflow-x: clip; } <!-- โ Horizontal Scroll --> <div class="roopm-horizontal-section" style="--roopm-h-panels: 3;"> <div class="roopm-horizontal-sticky"> <div class="roopm-horizontal-track"> <div class="roopm-horizontal-panel">1</div> <div class="roopm-horizontal-panel">2</div> <div class="roopm-horizontal-panel">3</div> </div> </div> </div> <!-- โ Progress Bar --> <div class="roopm-progress-bar"></div> <!-- โ Neon Glow --> <div class="roopm-animate" data-roopm-effect="neon-glow" data-roopm-scrub="true" style="--roopm-glow-color-b: rgba(0,229,255,.5);"> Glowing content </div> <!-- โ Mask Reveals --> <div class="roopm-animate" data-roopm-effect="mask-reveal-circle"> Expanding circle reveal </div> <!-- โ Glassmorphism Header --> <nav class="roopm-glass" data-roopm-glass="header"> Gets blurry on scroll </nav> <!-- โ Parallax Background --> <div class="roopm-parallax-bg" style="background-image: url(bg.jpg);"> Background shifts with scroll </div>
Built with โฅ by RoopM
roopm-scrolltrigger.css v2.3.0
ยท MIT