A React, Vue, Angular and plain JavaScript library of 1,170 animated SVG icons that play on hover or on demand.
motiondivision/motion
An open source animation library for JavaScript, React and Vue, offering springs, gestures, layout transitions and scroll-linked effects.
- Stars
- 34,961
- Forks
- 1,520
- Open issues
- 16
- Last commit
- 21 hours ago
What is it?
Motion is an animation library for JavaScript, with dedicated packages for React and Vue. The React package is imported from motion/react, while the core JavaScript package exposes an animate function that takes a selector or element and a set of target values.
The library combines JavaScript control with native browser APIs to run animations on the GPU. It includes gestures, spring physics, layout transitions, scroll-linked effects and timelines. The package is TypeScript-based, tree-shakable, and ships with a large set of official examples and step-by-step tutorials.
Motion was previously published as Framer Motion; the README notes that React users should import from motion/react instead of framer-motion. Motion+ is a paid tier that adds premium APIs, a transition editor and additional examples.
Key features
- 01Declarative React components and a plain JavaScript animate function.
- 02Spring physics, gestures and layout transitions.
- 03Scroll-linked effects and timelines.
- 04Vue support through the motion-v package.
- 05TypeScript types and tree-shakable builds.
Use cases
- Adding entrance, exit and hover animations to React component interfaces.
- Animating elements that change position or size in a layout.
- Building scroll-driven effects on marketing or landing pages.
- Adding motion to a Vue application without writing low-level animation code.
Quick start
- 1
Install Motion for React or JavaScript
npm install motion - 2
Install Motion for Vue
npm install motion-v - 3
Import and use the React component
Things to know
- Framer Motion has been renamed to Motion, so older framer-motion imports need updating to motion/react.
Topics
FAQ
- What is motion?
- An open source animation library for JavaScript, React and Vue, offering springs, gestures, layout transitions and scroll-linked effects. Motion is an animation library for JavaScript, with dedicated packages for React and Vue. The React package is imported from motion/react, while the core JavaScript package exposes an animate function that takes a selector or element and a set of target values.
- Is motion free to use? What license does it have?
- motion is open source under the MIT license. Check the license terms before using it in commercial products.
- Is motion still maintained?
- Actively maintained. The last commit to motion was on Nov 6, 2026.
- What can I use motion for?
- Adding entrance, exit and hover animations to React component interfaces. Animating elements that change position or size in a layout. Building scroll-driven effects on marketing or landing pages. Adding motion to a Vue application without writing low-level animation code.
- How do I install motion?
- Install Motion for React or JavaScript: npm install motion Install Motion for Vue: npm install motion-v Import and use the React component
- Where can I get motion?
- The source code and installation instructions are on GitHub: https://github.com/motiondivision/motion
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
A spring-physics based animation library for React that animates DOM and react-three-fiber elements declaratively or imperatively.
Free, MIT-licensed animated React components built with Tailwind CSS and Motion, designed to install into shadcn/ui projects.
A lightweight, dependency-free smooth scroll library for the web that wraps native scrolling with eased, animated motion.
WebGPU shader effects packaged as drop-in components for React, Vue, Svelte, Solid and plain JavaScript.
Customizable 3D moving gradient renderer for React, built on Three.js and React Three Fiber, with Vue, Framer and Figma variants.