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
Nothing published for this version
Tap events are now keyboard accessible.
whileFocus only triggers according to focus-visible rules.Ensuring Animation.cancel() is called on finished WAAPI animations.
Animation.cancel() is called on finished WAAPI animations.One column per quarter.
Reducing size of prop filtering.
Manually recording optimised appear startTime to fix inaccuracies of Firefox's Animation.currentTime.
startTime to fix inaccuracies of Firefox's Animation.currentTime.Nothing published for this version
Updated optimised appear animations to defer animations until Chrome releases paint holding.
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
layoutRoot prop. When component has layout and layoutRoot props, it will perform layout animations instantly but all children will perform layout anim
layoutRoot prop. When component has layout and layoutRoot props, it will perform layout animations instantly but all children will perform layout animations relative to it.### Fixed - Fixed right-click filtering.
Fixed WAAPI deoptimisation with layout animations.
while- props.Only trigger animateChanges in a useLayoutEffect when optimised appear animations are present.
animateChanges in a useLayoutEffect when optimised appear animations are present.### Fixed - Filtering values prop.
values prop.Nothing published for this version
When in Reduced Motion mode, transition no longer overrides instant transitions.
transition no longer overrides instant transitions.Events sourced from pointercancel no longer being added to pan gesture history.
pointercancel no longer being added to pan gesture history.delay no longer getting doubled with pregenerated WAAPI keyframes.
delay no longer getting doubled with pregenerated WAAPI keyframes.Exporting frameData and sync for internal Framer use.
frameData and sync for internal Framer use.Detection of hex colors with alpha values within complex strings.
Stop filtering pen hover events.
pen hover events.Allow useMotionTemplate to accept static values.
useMotionTemplate to accept static values.### Fixed - Memoisation of tap callbacks.
motion components can accept a MotionValue as children.
motion components can accept a MotionValue as children.Stop applying scale correction to an element's styles when there's no active projection transform.
Improved memoisation of internal event handlers.
Removed ability to trigger animations via useAnimationControls() during render lifecycle. This would be a source of silent or subtle errors.
useAnimationControls() during render lifecycle. This would be a source of silent or subtle errors.### Added - Exporting easing functions.
Preventing infinite keyframe pre-generation.
Sampling of animations with delay/repeat settings when interrupting WAAPI animations.
Swapping style value between MotionValue and static value.
style value between MotionValue and static value.Minification of process.env.NODE_ENV.
process.env.NODE_ENV.Display warning in development mode when Reduced Motion is enabled on device.
Ensuring child variant components fire onAnimationStart when an animation is triggered by a parent.
onAnimationStart when an animation is triggered by a parent.### Fixed - Fixed times.
times.Fixing error when Transition.type is invalid.
Transition.type is invalid.MotionValue.jump can be used to "jump" a MotionValue to a new value, bypassing active springs, ending current animations and resetting to velocity to
MotionValue.jump can be used to "jump" a MotionValue to a new value, bypassing active springs, ending current animations and resetting to velocity to 0.Cleaning up animations when a MotionValue has no active "change" subscribers.
MotionValue has no active "change" subscribers.useMotionValueEvent subscription to useInsertionEffect.Use range for tslib dependency.
Fixing defaults for hardware-accelerated animations.
Warning for unhydrated refs passed to useScroll() options.
useScroll() options.Removed polyfilled support for mouse/touch events.
<select /> elements.DragControls.start now accepts PointerEvent only.Firing animateChanges in useLayoutEffect rather than useEffect to ensure optimised appear animations are handed off before paint.
animateChanges in useLayoutEffect rather than useEffect to ensure optimised appear animations are handed off before paint.Adding support for all easing functions with WAAPI.
Fixed type inference of useMotionValueEvent.
useMotionValueEvent..on() event method to MotionValue.
.on() event method to MotionValue."animationStart", "animationComplete", "animationCancel" and "change" events for MotionValue.useMotionValueEvent helper method for adding events.Fixing mapping Motion easing names to WAAPI.
Hardware-accelerated opacity animations.
opacity animations.Refactored animation pipeline to better accomodate WAAPI.
Added private APIs for starting initial animations before React hydration and handing off to the component after hydration.
Fixed spring effect of useSpring.
useSpring.Reduced ?? operators to reduce bundlesize.
?? operators to reduce bundlesize.Removed style-value-types and framesync as external dependencies.
style-value-types and framesync as external dependencies.Added support for "startOffset", "textLength" and "lengthAdjust" SVG attributes.
"startOffset", "textLength" and "lengthAdjust" SVG attributes."inertia" animation as "decay" (officially removed in 3.0.0).3.0.0).Animation of viewBox for SVG elements.
viewBox for SVG elements.Removed popmotion as external dependency.
popmotion as external dependency.Manually firing callback with latest callback when useOnChange is provided new motion value (affects useSpring).
useOnChange is provided new motion value (affects useSpring).Fixing useOnChange to resubscribe when provided a new motion value (affects useSpring).
useOnChange to resubscribe when provided a new motion value (affects useSpring).Your coding agent can read these notes before it upgrades. Set up the MCP server →