Animation library for Vue 3 and Nuxt. Production-ready, hardware-accelerated animations with minimal bundle size. **Current stable:** motion-v 1.x - Vue port of Motion (formerly Framer Motion) Progressive reference for Motion Vue animations. Load only files relevant to current task (~200 tokens base, 500-1500 per sub-file).
# Vue 3 pnpm add motion-v # Nuxt 3 pnpm add motion-v @vueuse/nuxt
// nuxt.config.ts - Nuxt 3 setup export default defineNuxtConfig({ modules: ['motion-v/nuxt'], })
<script setup lang="ts"> import { motion } from 'motion-v' </script> <template> <motion.div :initial="{ opacity: 0, y: 20 }" :animate="{ opacity: 1, y: 0 }" :exit="{ opacity: 0, y: -20 }" :transition="{ duration: 0.3 }" > Animated content </motion.div> </template> `### Gesture Animations` <motion.button :whileHover="{ scale: 1.05 }" :whilePress="{ scale: 0.95 }" :transition="{ type: 'spring', stiffness: 400 }" > Click me </motion.button> `### Scroll Animations` <motion.div :initial="{ opacity: 0 }" :whileInView="{ opacity: 1 }" :viewport="{ once: true, margin: '-100px' }" > Appears on scroll </motion.div>