Start a project

Tool 57 of 194 · CSS

Scroll-driven Animation Builder

Make CSS animations that run as you scroll, without JavaScript, and see exactly when each one starts and ends.

Scroll-driven Animation Builder

Animation

Live preview

Scroll inside the frame. Browsers without scroll-driven animations show the finished state, which is what the fallback is for.

CSS

Scroll-driven animation CSS

01

What it does

Generates animation-timeline CSS for scroll() and view() timelines with named ranges, shows a live preview you can scroll, and adds a reduced-motion guard.

  • scroll() and view() timelines, on the block, inline, x or y axis
  • Every named range: cover, contain, entry, exit and the crossing ranges, with offsets
  • Presets: fade in, slide up, reveal, progress bar, parallax
  • Start and end worked out in pixels for the preview box

02

Private by design

Everything happens in your browser. Nothing you type, paste or upload is sent anywhere, and it keeps working offline once the page has loaded.

03

What you get

Ready-to-paste CSS, a live scrolling preview and the start and end points in pixels, with a Copy and a Download button on every result.

  • Scroll-driven animations
  • animation-timeline
  • CSS
  • Animation

Why it matters

Scroll-driven animations tie a CSS animation's progress to scrolling instead of time. A scroll() timeline follows a scroll container from top to bottom, good for reading progress bars. A view() timeline follows one element as it crosses the viewport, good for reveal effects. Named ranges pick the part of that journey that counts: entry is the element coming into view, exit is it leaving, cover is the whole crossing, contain is while it's fully visible.

The ranges are where people get stuck, because "entry 0% to cover 50%" is hard to picture. This builder writes the CSS and runs it in a sandboxed preview you can scroll, then works out where the animation starts and ends in pixels for that box. It wraps the result in @supports (animation-timeline: view()) so older browsers just show the end state, and adds a prefers-reduced-motion block that turns the animation off for people who ask for less motion.

How to use it

  1. Pick a timeline (view or scroll) and a preset.
  2. Choose the range start and end, with offsets.
  3. Scroll the preview to check the timing.
  4. Copy the CSS; the @supports and reduced-motion guards are included.

FAQ

Which browsers support scroll-driven animations?

Chrome and Edge from 115 and Safari from 26. Firefox has them behind a flag. The generated CSS is wrapped in @supports, so other browsers show the final state with no animation.

What does 'entry 0% cover 50%' mean?

The animation starts as the element's leading edge enters the scrollport and finishes when the element is halfway through its full crossing. The builder shows both points in pixels.

Should scroll animations respect reduced motion?

Yes. Movement tied to scrolling can make people with vestibular disorders feel ill. The output turns animations off under prefers-reduced-motion: reduce.

Does it need JavaScript?

No. The output is pure CSS. The page uses script only to build the code and run the preview.

Work with me

Want a site that gets these right?

I build fast, accessible websites and web apps that pass these checks from day one. Tell me about your project and I'll reply personally with honest next steps.

All developer tools · Back to leej.uk