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
Rounding tree scale to 1 to prevent unnecessary scale transforms.
1 to prevent unnecessary scale transforms.### Fixed - Nothing to see here.
Nothing published for this version
One column per quarter.
isTransformDirty node skipping logic.
isTransformDirty node skipping logic.Further layout animation performance enhancements.
<motion.svg /> components as HTML.Removing read of (currently unused) position style as it's erroneously breaking a test in Framer.
position style as it's erroneously breaking a test in Framer.Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Only updating projection calculations for dirty nodes.
Reducing number of scroll reads during layout animations.
Removed instantiation of externally-provided motion values.
Minor layout animation refactors.
VisualElement changed to class implementation.
VisualElement changed to class implementation.Updated buildTransform types to only expect required arguments.
buildTransform types to only expect required arguments.Nothing published for this version
Exposing buildTransform for internal use.
buildTransform for internal use.Internal option for useScroll to use useEffect instead of useLayoutEffect.
useScroll to use useEffect instead of useLayoutEffect.Nothing published for this version
Exporting CycleState and Cycle types.
CycleState and Cycle types.delay(): An alternative to window.setTimeout() that is locked to the animation framerate.
delay(): An alternative to window.setTimeout() that is locked to the animation framerate.Fixed bug relative layout animations within rotated layers.
layout="preserve-aspect" where layers that do change size but aren't moved are reprojected to the old size and stay there.If the initial style was derived from the initial prop, and that style is removed from animate, while also being removed from initial, it won't animat
initial prop, and that style is removed from animate, while also being removed from initial, it won't animate back to the originally-defined value.Gracefully handle undefined values in values prop.
undefined values in values prop.useTransform correctly cleans up any scheduled animation frames when it unmounts.
useTransform correctly cleans up any scheduled animation frames when it unmounts.Nothing published for this version
useAnimationFrame now passes delta to provided callbacks as the second argument.
useAnimationFrame now passes delta to provided callbacks as the second argument.Added internal values prop that allows the provision of motion values to use exclusively for performing animations on.
values prop that allows the provision of motion values to use exclusively for performing animations on.Increasing threshold for what's considered a similar aspect ratio in "preserve-ratio" layout animations.
"preserve-ratio" layout animations.isMotionValue no longer crashing when provided null.
isMotionValue no longer crashing when provided null.Run feature detection based on rendered props.
Ensuring children dynamic components re-render when context changes.
isMotionComponent returns true if the provided component is a motion component.
isMotionComponent returns true if the provided component is a motion component.unwrapMotionComponent returns the rendered component.### Fixed - Fixing application of rotateZ.
rotateZ.layout="preserve-ratio" performs a position-only transition if the aspect ratio has changed.
layout="preserve-ratio" performs a position-only transition if the aspect ratio has changed.layout="position" now works with shared element transitions.### Added - Various filesize reductions.
AnimatePresence's new mode="popLayout" prop will "pop" exiting elements from the document layout flow, allowing sibling layout elements to animate to
AnimatePresence's new mode="popLayout" prop will "pop" exiting elements from the document layout flow, allowing sibling layout elements to animate to their new layout as soon as exiting starts.exitBeforeEnter - replace with mode="wait".Nothing published for this version
Nothing published for this version
### Fixed - Fixing useWillChange export.
useWillChange export.Upping TypeScript output target to "ES6".
target to "ES6".typescript@4.7useWillChange for automatically managing the will-change style.
useWillChange for automatically managing the will-change style.### Fixed - Trimming CSS vars.
Nothing published for this version
Nothing published for this version
Correctly parsing slash-delimited opacities within colors.
Replacing internal useId with React 18's useId.
useId with React 18's useId.Drag to reorder items no longer jumping in React 18.
react@18react-three-fiber@8Adding onChange handlers in useTransform on useLayoutEffect.
onChange handlers in useTransform on useLayoutEffect.useScroll for creating scroll-linked animations.
useScroll for creating scroll-linked animations.useViewportScroll and useElementScroll.Split module to improve ability to code-split and tree-shake and domMax.
<m> and domMax.useInView now automatically respects rootMargin within an iframe.
useInView now automatically respects rootMargin within an iframe.Renaming useAnimation to useAnimationControls. useAnimation will stay as backwards compatible alias.
useAnimation to useAnimationControls. useAnimation will stay as backwards compatible alias.### Added - useInView.
useInView.Fixing layout animations within position: fixed elements. Provide position: fixed elements the layoutScroll prop to fix.
position: fixed elements. Provide position: fixed elements the layoutScroll prop to fix.Explicitly declaring children prop for components.
children prop for components.### Fixed - Exposing more internal types.
Fix some missing types by replacing @internalRemarks comment with @privateRemarks.
@internalRemarks comment with @privateRemarks.Rolling up published type definitions.
Your coding agent can read these notes before it upgrades. Set up the MCP server →