<FadeIn>
Enter animation with configurable duration & easing
The animation power of anime.js, wrapped in beautiful React components. Zero boilerplate. Production-ready.
Chapter I — Capabilities
Six reasons it replaces a hand-rolled animation layer — each one a chapter of its own.
One import, one component. No useEffect, no cleanup refs, no imperative anime.js calls cluttering your render.
Full type inference on every prop. Autocomplete your animations — duration, easing, delay, stagger, all typed.
Import only what you use. <FadeIn> weighs ~1.2 kB gzipped. Your bundle stays lean by default.
useAnimeOnScroll wraps ScrollTrigger. Reveal, parallax, and progress — server-side safe with a fallback.
Compose stagger with any easing curve. Orchestrate multi-step timelines with precise keyframe timing.
useAnimeLayout runs FLIP automatically. Animate between list, grid, and detail views without measuring.
Chapter II — The Lab
Real, running animations. Tweak duration, easing, and stagger — the controls are the docs.
Enter animation with configurable duration & easing
Sequenced children with stagger timing
Cursor-driven attraction — hover the field
Scroll-triggered reveal — enters from below
Chapter III — The Syntax
Every anime.js API has a React-native counterpart. Pick a topic and compare the two, side by side.
import { animate } from 'animejs'
import { useEffect, useRef } from 'react'
function FadeIn({ children }) {
const ref = useRef(null)
useEffect(() => {
const anim = animate(ref.current, {
opacity: [0, 1],
translateY: [20, 0],
duration: 600,
ease: 'outCubic',
})
return () => anim.pause()
}, [])
return <div ref={ref}>{children}</div>
}import { useAnime } from '@shakibdshy/react-animejs'
function FadeIn({ children }) {
const { ref } = useAnime({
opacity: [0, 1],
translateY: [20, 0],
duration: 600,
ease: 'outCubic',
})
return <div ref={ref}>{children}</div>
}Chapter IV — Begin
Install, import a component, and ship motion. Sensible typed defaults mean there is nothing to configure before the first animation runs.
✓ added 1 package — you are ready to animate.