A lightweight, declarative animation library with 80+ ready-to-use animations. Just spread and go.
import { motion } from "motion/react";
import { fadeUpBlur } from "cnippet-aos";
function Hero() {
return (
<motion.h1 {...fadeUpBlur({ scroll: true, y: 50 })}>
Hello World
</motion.h1>
);
}Everything you need for scroll animations, nothing you don't.
Explore all available animations. Hover to replay and copy code.
Smooth opacity transitions
fadeIn
fadeUp
fadeDown
fadeLeft
fadeRight
fadeInOut
fadeUpOut
Animate lists and grids with cascading delays. Perfect for card grids, navigation menus, and content reveals.
const containerProps = staggerFadeUp({
staggerChildren: 0.1,
delayChildren: 0.2,
scroll: true,
});
<motion.ul {...containerProps}>
{items.map((item) => (
<motion.li
key={item.id}
variants={containerProps.variants.item}
>
{item.name}
</motion.li>
))}
</motion.ul>staggerFadeUp
Ready-made interaction states for buttons and interactive elements.
hoverLift
hoverGrow
hoverShrink
hoverTilt
hoverBounce
hoverShake
hoverPulse
fast
{"duration":0.3,"ease":"easeOu...
default
{"duration":0.6,"ease":"easeOu...
slow
{"duration":1,"ease":"easeInOu...
slower
{"duration":1.4,"ease":"easeIn...
bouncy
{"type":"spring","bounce":0.5,...
gentle
{"type":"spring","stiffness":1...
elastic
{"type":"spring","stiffness":4...
smooth
{"duration":0.6,"ease":[0.25,0...
apple
{"duration":0.5,"ease":[0.25,0...
snappy
{"duration":0.4,"ease":[0.16,1...
Common timing configurations ready to use. Mix and match with any animation.
import { presets, fadeUp } from "cnippet-aos";
// Use a preset
<motion.div {...fadeUp({ ...presets.bouncy })}>
Bouncy fade up
</motion.div>
// Available presets:
// fast, default, slow, slower
// bouncy, gentle, elastic
// smooth, apple, snappyInstall the package and start animating. It's that simple.
npm install cnippet-aos motionimport { motion } from "motion/react";
import { fadeUpBlur } from "cnippet-aos";
export function MyComponent() {
return (
<motion.div {...fadeUpBlur({ scroll: true })}>
✨ Animated content
</motion.div>
);
}