Skip to content

Repository files navigation

🤹 @vueuse/motion

npmnpmNetlify Status

Vue Composables putting your components in motion

  • 🏎 Smooth animations based on Popmotion
  • 🎮 Declarative API
  • 🚀 Plug & play with 20+ presets
  • ✅ Supports Vue 2 & 3 using vue-demi
  • 🌐 Supports SSR
  • 🚚 Supports Nuxt 3 and @nuxt/bridge
  • ✨ Written in TypeScript
  • 🏋️‍♀️ Lightweight with <20kb bundle size

🌍 Documentation

👀 Demos

Quick Start

Let's get started quick by installing the package and adding the plugin.

From your terminal:

pnpm add @vueuse/motion

In your Vue app entry file:

import{createApp}from'vue'import{MotionPlugin}from'@vueuse/motion'importAppfrom'./App.vue'constapp=createApp(App)app.use(MotionPlugin)app.mount('#app')

You can now animate any of your component, HTML or SVG elements using v-motion.

<template>
<divv-motion:initial="{ opacity: 0, y: 100, }":enter="{ opacity: 1, y: 0, }"
/>
</template>

To see more about how to use directives, check out Directive Usage.

To see more about what properties you can animate, check out Motion Properties.

To see more about how to create your own animations styles, check out Transition Properties.

To see more about what are variants and how you can use them, check out Variants.

To see more about how to control your declared variants, check out Motion Instance.

Credits

This package is heavily inspired by Framer Motion.

I would also like to thankantfu, patak-dev and kazupon for their kind help!

If you like this package, consider following me on GitHub and on Twitter.

👋

About

🤹 Vue Composables putting your components in motion

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages