@vueuse/motion

๐Ÿคน Vue Composables putting your components in motion
6,373,564 2,768
Install
npm install @vueuse/motion
Latest Version:3.0.3
Vue:3
Older releases:2
License:MIT
Last Updated:Mar 11, 2025
Links: GitHub  ·  npm
Maintainer: antfu

๐Ÿคน @vueuse/motion

npm npm npm Netlify Status

Vue Composables putting your components in motion

  • ๐ŸŽ Smooth animations based on Popmotion
  • ๐ŸŽฎ Declarative API inspired by Framer Motion
  • ๐Ÿš€ Plug & play with 20+ presets
  • ๐ŸŒ SSR Ready
  • ๐Ÿšš First-class support for Nuxt 3
  • โœจ Written in TypeScript
  • ๐Ÿ‹๏ธโ€โ™€๏ธ Lightweight with <20kb bundle size

๐ŸŒ Documentation

๐Ÿ‘€ Demos

Quick Start

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

From your terminal:

npm install @vueuse/motion

In your Vue app entry file:

import { createApp } from 'vue'
import { MotionPlugin } from '@vueuse/motion'
import App from './App.vue'

const app = createApp(App)

app.use(MotionPlugin)

app.mount('#app')

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

<template>
  <div
    v-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 animation 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.

Nightly release channel

You can try out the latest changes before a stable release by installing the nightly release channel.

npm install @vueuse/motion@npm:vueuse-motion-nightly

Credits

This package is heavily inspired by Framer Motion by @mattgperry.

If you are interested in using WAAPI, check out Motion.dev!

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

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

๐Ÿ‘‹

Related Packages

@azukisiromochi/vue-mo.js

A small wrapper for integrating mo.js to Vue.js

1,063 4
@any-tdf/vue-motion

Vue motion utilities compatible with Svelte transition, animate, easing, and mot...

563 778
motionwind-vue

Write Motion animations as Tailwind-like classes in Vue 3 โ€” powered by Motion fo...

165 203
@vueuse/gesture

๐Ÿ•น Vue Composables making your app interactive

1,771,687 403
@thangdevalone/meeting-grid-layout-vue

Vue 3 integration for meeting-grid-layout with Motion animations

2,232 49

Version History

Version Released Vue License
3.0.3 >=3.0.0 MIT
3.0.2 >=3.0.0 MIT
3.0.1 >=3.0.0 MIT
2.2.6 >=3.0.0 MIT
2.2.5 >=3.0.0 MIT
Pre-releases (38)
Version Released Vue License
2.0.0-beta.29 >=3.0.0 MIT
2.0.0-beta.28 >=3.0.0 MIT
2.0.0-beta.27 >=3.0.0 MIT
2.0.0-beta.26 >=3.0.0 MIT
2.0.0-beta.25 >=3.0.0 MIT