NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
npm · #4107 most downloaded on npm
A simple and powerful JavaScript animation library
Last release 2 days ago
02 Oct 2026
Release timing varies
gaps range from 8 days to 2 months
Nearly every release is documented
notes for 60 of the last 60 stable releases
1 version withdrawn
withdrawn after publishing
8 years old
1404 releases · first in 2019
Ensure animations are removed from scope when finished.
Add transformPerspective to TargetAndTransition.
transformPerspective to TargetAndTransition.CSSStyleDeclaration.One column per quarter.
Nothing published for this version
Nothing published for this version
Nothing published for this version
React: Prevent duplicate layout animation commits within Suspense boundaries.
React: Fix export * error message in Next.js.
export * error message in Next.js.React: usePageInView for tracking document visibility.
usePageInView for tracking document visibility.Fixed es bundle dependency imports for "motion".
"motion".translateX, originX etc values in animation targets.Removed "react" import from "motion-dom".
"react" import from "motion-dom".Support for defining a timeline position relative to the start of the most recently added animation (e.g. <+0.5, <-1)
<+0.5, <-1)Refactored MotionProps into vanilla MotionNodeOptions type within "motion-dom" package.
MotionProps into vanilla MotionNodeOptions type within "motion-dom" package.Handle colors when creating animatable "none" keyframes for complex strings.
"none" keyframes for complex strings.Fixes isValidProp check with Rolldown.
isValidProp check with Rolldown.Improved rounding for linear() easing curves.
linear() easing curves.Nothing published for this version
Nothing published for this version
Nothing published for this version
### Added - resize().
resize().Support for pathLength/pathSpacing/pathOffset for svgEffect.
pathLength/pathSpacing/pathOffset for svgEffect.data and aria attributes in attrEffect.attrEffect applies attributes via JS property where possible.transform-box: fill-box for SVGs with transform in styleEffect.Support for originX/Y/Z in styleEffect.
originX/Y/Z in styleEffect.svgEffect, propEffect and attrEffect.
svgEffect, propEffect and attrEffect.Ensure scroll updates are only triggered after a scroll read.
Nothing published for this version
Checks for instanceof HTMLElement made compatible with dynamically generated iframes.
instanceof HTMLElement made compatible with dynamically generated iframes.Fixed various typos in the type definitions along with a stale documentation link.
springValueOnly read transform from the DOM for initial independent transforms when there's no active projection.
transform from the DOM for initial independent transforms when there's no active projection.useWillChange now only adds transform to will-change to prevent issues with prematurely flattened preserve-3d.
useWillChange now only adds transform to will-change to prevent issues with prematurely flattened preserve-3d.Removed __VERSION__ placeholder from motion value.
__VERSION__ placeholder from motion value.Reorder component.Default scroll tracking to document.scrollingElement.
scroll tracking to document.scrollingElement.Added value.isEffectActive for internal use.
value.isEffectActive for internal use.Stop firing .then() after .stop() and .cancel().
.then() after .stop() and .cancel().Fixed attaching multiple press handlers on the same element.
press handlers on the same element.Fixed layout animations jumping when interrupted.
Attempting to fix layout animations jumping when interrupted.
### Fixed - Fixed .cancel() after .stop().
.cancel() after .stop().Main thread scroll animations are now lazy, resolving after "scroll" events instead of every animation frame.
scroll animations are now lazy, resolving after "scroll" events instead of every animation frame.### Added - styleEffect now supports: - Default value types - Independent transforms - CSS variables
styleEffect now supports:
Fix mixing PopChild with Astro view transitions.
PopChild with Astro view transitions.Fix setting transformBox via style.
transformBox via style.Fixed drag undefined error in React 19 Strict Mode.
undefined error in React 19 Strict Mode.Remove version check for MotionValue.
MotionValue.Fixed memory leak when unmounting motion components.
motion components.Fixed scroll timeline cache when defining offset.
offset.document.body and use this instead of document.documentElement.Restarting a finished main thread animation with a negative .speed now works as expected.
.speed now works as expected.### Added - styleEffect
styleEffectUnifying transform behaviour for SVG and CSS switched from element measurements for transform-box: fill-box.
transform behaviour for SVG and CSS switched from element measurements for transform-box: fill-box.Removed support for Framer's internal CustomValueType.
mapValuetransformValueCustomValueType.Improved scroll timeline caching.
linear() easing.instantAnimationState.current to MotionGlobalConfig.instantAnimations.delay from read to setup frameloop step..then() and await early resolution..speed works correctly across all animation types.Nothing published for this version
Nothing published for this version
Nothing published for this version
Removed non-deterministic behaviour from AnimatePresence.
AnimatePresence.Fixing duration for animateView transitions.
duration for animateView transitions..commitStyles() on pseudoElement animations.Adding "sideEffects": false to motion-dom and motion-utils packages.
"sideEffects": false to motion-dom and motion-utils packages.Skip .commitStyles on psuedoElement animations.
.commitStyles on psuedoElement animations.Private layoutCrossfade allows disabling crossfade of shared layout elements.
layoutCrossfade allows disabling crossfade of shared layout elements.Polyfilled sync and cancelSync exports.
sync and cancelSync exports.Global injection of WillChangeMotionValue for internal Framer use.
WillChangeMotionValue for internal Framer use.Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →