Changelog
Releases across Motion, Motion UI, Motion AI Kit, and Motion Studio.
Fixed
AnimatePresence: FireonExitCompleteafter exiting children unmount.AnimatePresence:popLayoutchildren that don't acceptrefare now popped when root component is<motion>element.- Fix interpolation of axis
rotateandskewtransforms during shared layout animation. - Fix layout animations when
layoutis enabled after mount. - Fix
dragjumping to0after animatex/yto CSS variable. arc: Fix path animations withanimate.- Ensure shared elements are freed from memory when unmounted.
- Fix accelerated independent transform animations vanishing when they start from a float residue.
Fixed
- Fix velocity hand-off for hardware-accelerated springs.
cubicBezier: More accurate, 2x faster.Reorder: Fix click events on reoredered items.useTransform: Fix desync when source is set in an effect under Strict Mode.
Fixed
Gallery: Closing detail fades the whole strip out together. Thumbnails with no place in view to return to no longer linger.Gallery: Paging on straight after switching togridno longer hides the item paged to.Gallery: Switching away fromgridno longer resizes its items to the next arrangement's item size as they fade out.
Added
Gallery:rearrangeoption andshift()preset set the state an item fades in from when it changes places without flying there.Gallery:rearrangeFromoption sets where the stagger starts as the detail strip opens or closes.Gallery:gatheroption. Items collapse behind the active one when switching togrid.
Fixed
Gallery: Items no longer fly across the view whenlooporarrangechanges. They fade out and in on the side they belong.Gallery: Opening and closing detail fades the other items between the arrangement and the strip.Gallery: The camera no longer swings between arrangements, so items entering the new one fade in where they belong.
Changed
<motion>: Fall back to the attribute in readSVGValue when computed style is empty.<motion>: Internal changes toanimateChangesfor size reductions.
Fixed
scroll: Temporarily reverted removal of internalobserveTimelineAPI to fix compatibility with previous13.xAPIs. Moving to pinned dependencies before removing in14.x.styleEffect: Cleaning up an earlier value no longer removes a value that was bound to the same key after it.svgEffect: No longer writes transforms and origins as attributes.<motion>:inherit={false}now correctly not inheriting parent animations.<motion>: FixsortNodePositionthrowing when a sibling hasn't mounted
Changed
scroll/useScroll: Moreoffsets are now hardware accelerated viaViewTimeline.
Fixed
animate: Reduced size of Motion Studio introspection call.useTransform: Accelerated values now correctly clamp.scroll/useScroll: Ensure offsets work the same across the JS main thread andViewTimeline.scroll/useScroll: RemoveScrollTimeline/ViewTimelineobserver in favour of main-thread scroll tracking.
Fixed
AnimatePresence:mode="wait"no longer drops new children ifexitcompletes during a React transition.
Fixed
layout: Fix relative child jumping when parent interrupts layout animation.AnimatePresence: Can no longer drop a child added while another exit animation completes.Reorder: Only clear Reorder.Group's reorder guard when values change.spring/useSpring: 5% smaller.
Changed
scroll: 44% smaller.useScroll: 33% smaller.- Scroll callbacks: 50% faster.
- Removed
ScrollTimelinesupport for JS callbacks as benchmarked no improvement overscrollInfo.
Fixed
useDragControls: FixedsnapToCursororigin drift on repeated calls.drag: Improvedpointerendtiming.spring: Check invalid spring values before applying.AnimatePresence: Ensure children don't stick during reentry.
Fixed
<motion>: Ensure animations replay whenSuspensereveals memoized content.
Fixed
Reorder: Don't scale position of elements at origin0whendragConstraintschanges.- Unrecognised easing names no longer throw.
Fixed
animate: CSS variable writes on SVGs apply tostyleattribute.
Fixed
- Guard animation
windowaccess in non-browser runtimes. AnimatePresence: Improved compat with React 19 strict mode.
- Guard animation
Fixed
animateView: Cropped group layers now animateborder-radiusfrom the old to new radius.
Fixed
animateView: Old layer fade out now cancelled when defining.new().
Added
- MCP: Hardened response to missing
sharpdependency.
- MCP: Hardened response to missing
Fixed
AnimateNumber: Ensure values are updated when only§suffix/prefixupdate.
Added
- Skills: Installer better supports OpenCode.
Fixed
- Reduced filesize of
styleEffect. - Fix rounding from
popLayout. opacityanimations in React Strict Mode in development.- Ensure
useSpringis not affected by monitor framerate. - Updating animations sequence segment types to exclude lifecycle handlers.
- Fix layout animations with parents offset by a
%-based translation. - Fix
autoplay: falsewith WAAPI animations. - Fix layout jump in React Strict Mode in development.
- Detect divide-by-zero in CSS
calc()values before making animatable templates.
- Reduced filesize of
Added
- Skills: Installer now supports VS Code.
Updated
- MCP: Now loads codex with documentation if purchased AI Kit.
Fixed
- Fixing combination of string keyframes, spring and
delay. - Gracefully handle negative scroll values.
- Fix one-frame visual gap when rapidly switching WAAPI animations.
animation.time = 0on a finished animation sets the playhead in a paused state.
- Fixing combination of string keyframes, spring and
Fixed
- Handle
%translate values in layout animations.
- Handle
Fixed
- Ensure final WAAPI styles are always committed synchronously to prevent flash of incorrect styles in Firefox.
- Prevent Next.js from caching
typeof windowchecks. - Improve projection node cleanup.
- Variant propagation fixed for asynchronously-mounted children.
Fixed
- Ensure
onCompletefires at the end of an animation sequence.
- Ensure
Fixed
- Ensure
velocityis never transferred to a time-derived spring.
- Ensure
Fixed
- Layout animations: Reset motion value velocity when starting a new layout animation.
Fixed
useScroll: Ensure animations aren't hardware accelerated whentargetis set.- Improve animatable
"none"generation for mask values.
Fixed
splitText: Ensure split text elements retain vertical positioning.Carousel: Fix focus from breaking item reprojection.
Fixed
Ticker: Improve accessibility attributes.Cursor: Fix when using with browser-native drag gestures.- Updating
reftype inference forTypewriter,TickerandScrambleText.