Button press
Write animation intent in className. Motionwind compiles it into Motion props before your app ships.
<button className="animate-hover:scale-102 animate-tap:scale-95 animate-spring animate-stiffness-420 animate-damping-24 rounded-lg bg-accent px-5 py-3 text-sm font-semibold text-accent-fg cursor-pointer">
Ship interaction
</button>
<motion.button
data-motionwind-motion=""
className="rounded-lg bg-accent px-5 py-3 text-sm font-semibold text-accent-fg cursor-pointer"
whileHover={{ scale: 1.02 }}
whileTap={{ scale: 0.95 }}
transition={{ type: "spring", stiffness: 420, damping: 24 }}
> Ship interaction
</motion.button>
Nine focused previews, each showing one motion pattern you can author beside the element.
Utility classes compile into Motion props.
Motion props are ready to paste.
Motion that stays out of the way until it matters.
Start building
Add the package, wrap your framework config, and start writing motion classes.
Read the guide$import withMotionwind from "motionwind/next"
export default withMotionwind(config)import motionwind from "motionwind/react"
export default motionwind()import motionwind from "motionwind/vue"
plugins: [motionwind()]import motionwind from "motionwind"
motionwind()