AnimateScrollTriggered:Animate.css with CSS scroll-triggered animations
CSS-only Animate.css scroll triggers, but browser support for scroll-triggered animations is limited.
Animate with just HTML. Drop-in animations using data attributes.
Under 3KB gzipped with 30+ animations — lighter than Framer Motion's 30KB.
Frontend developers building landing pages
AOS.js · animate.css · Framer Motion
You just write:
<div data-anim="fadeInUp">Hello</div>
That's it. Scroll-triggered fade-in animation, zero JS to write.What it does:
- 30+ built-in animations (fade, slide, zoom, bounce, rotate, etc.)
- 4 triggers: scroll (default), load, click, hover
- 3-layer anti-FOUC protection (immediate style injection → noscript fallback → 5s timeout)
- Responsive controls: disable per device or swap animations on mobile
- TypeScript autocomplete for all attributes
- Under 3KB gzipped, zero dependencies
Why I built this:
I noticed that most animation needs on landing pages and marketing sites are simple — fade in on scroll, slide in from left, bounce on hover. But the existing options are either too heavy (Framer Motion ~30KB) or require JS boilerplate.
I also think declarative HTML attributes are the most AI-friendly animation format. When LLMs generate UI, HTML attributes are the output they hallucinate least on — no selector matching, no JS API to misremember, no script execution order to get wrong.
Docs: https://ryo-manba.github.io/data-anim/
Playground: https://ryo-manba.github.io/data-anim/playground/
npm: https://www.npmjs.com/package/data-anim
Happy to answer any questions about the implementation or design decisions.
CSS-only Animate.css scroll triggers, but browser support for scroll-triggered animations is limited.
Click-driven zoom pipeline with outlier clamping beats manual editing in Loom or ScreenFlow.
Awwwards-style template when dozens of GSAP + Svelte starters already exist.
Exports dependency-free SwiftUI and WebGL code, not just PNG screenshots.
LLM-generated HTML animations recorded as video—fun but fragile and not repeatable.
Pure CSS scroll animations with @scope and cascade layers, no JavaScript required.