unstale

npm / motion

motion

What changed in motion 12 to 14, from its official release notes, upgrade guides and advisories. Also covers framer-motion. Sources checked 2026-10-19.

10 breaking36 new APIs and options20 performance8 behavior and defaults95 fixes and other

See which of these apply to your code, ranked, in your agent:

npx @unstale/cli init

@unstale/cli on npm

motion 1427 changes

Breaking changes 1

  • Internal APIs restored in 13.5.1 for compatibility with framer-motion 13.0–13.4 were removed.

    14.0.0release notes

New APIs and options 4

Performance 1

  • Independent transforms like x, y, and scaleX are now hardware accelerated.

    14.2.0release notes

Fixes and other changes 21

  • Fires onExitComplete after exiting children unmount.

    14.3.0release notes

  • popLayout children that do not accept ref are now popped when the root component is a motion element.

    14.3.0release notes

  • Fixes path animations with animate.

    14.3.0release notes

  • Fixes drag jumping to 0 after animate x or y to a CSS variable.

    14.3.0release notes

  • Fixes accelerated independent transform animations vanishing when they start from a float residue.

    14.3.0release notes

  • Fixes layout animations when layout is enabled after mount.

    14.3.0release notes

  • Fixes matrix3d and other digit-named transform functions being tokenised as numbers.

    14.3.0release notes

  • Fixes SVG MotionValue children being written as a children attribute.

    14.3.0release notes

  • Fixes interpolation of axis rotate and skew transforms during shared layout animation.

    14.3.0release notes

  • Ensures shared elements are freed from memory when unmounted.

    14.3.0release notes

  • When switching targets, useSpring now animates to the new target on switch.

    14.3.0release notes

  • Makes cubicBezier more accurate and 2x faster.

    14.1.1release notes

  • Fixes velocity hand-off for hardware-accelerated springs.

    14.1.1release notes

  • Fixes click events on reordered items.

    14.1.1release notes

  • Fixes desynchronization when the source is set in an effect under Strict Mode.

    14.1.1release notes

  • Fixes JS animations jumping ahead when played after a pause at non-1 speed.

    14.1.0release notes

  • Fixes popLayout when rendering into another window or iframe.

    14.1.0release notes

  • Animation start is delayed when the main thread is held, preventing visual jumps.

    14.1.0release notes

  • Layout animations are now allowed inside dragged elements.

    14.1.0release notes

  • Fixes reporting of elastic overscroll.

    14.1.0release notes

  • Fixes these interactions getting stuck after Fast Refresh reorders siblings.

    14.1.0release notes

motion 1356 changes

Breaking changes 4

  • ScrollTimeline support for JS callbacks was removed because benchmarks showed no improvement over scrollInfo.

    13.4.4release notes

  • The useDefaultValueType argument is no longer accepted by set().

    13.2.0release notes

  • The optional dependency was removed in favour of explicitly providing isPropValid through MotionConfig.

    13.0.0release notes

  • Use isValidProp to provide prop validation explicitly, replacing the optional @emotion/is-prop-valid dependency.

    13.0.0release notes

New APIs and options 10

  • spring accepts negative bounce values from 0 to -1 to define overdamped springs.

    13.5.0release notes

  • Adds view transitions for React 19.3, built on React's ViewTransition.

    13.4.0release notes

  • Hooks for Motion Editor were added.

    13.3.0release notes

  • Register effects that let animate drive non-DOM subjects alongside DOM elements.

    13.2.0release notes

  • Adds the read option.

    13.2.0release notes

  • Adds the step option.

    13.2.0release notes

  • Adds the test option.

    13.2.0release notes

  • Exposes bound motion values through effect.get().

    13.2.0release notes

  • Adds support for animating Three.js objects, materials, shader uniforms, TSL uniform nodes and more.

    13.2.0release notes

  • Adds support for shared uniforms, bindings, scene nodes, cameras, lights, materials, orbit controls, CSS colors and vector components.

    13.2.0release notes

Performance 13

Behavior and default changes 5

Fixes and other changes 24

  • When computed style is empty, SVG value reading falls back to the attribute.

    13.5.1release notes

  • Setting inherit={false} now correctly prevents inheriting parent animations.

    13.5.1release notes

  • The removal of the internal API was temporarily reverted to restore compatibility with previous 13.x APIs.

    13.5.1release notes

  • Cleaning up an earlier value no longer removes a value bound to the same key afterward.

    13.5.1release notes

  • Transforms and origins are no longer written as attributes.

    13.5.1release notes

  • warning and error messages are cleaned from production builds.

    13.5.0release notes

  • Values are never rendered before they have been resolved.

    13.5.0release notes

  • In mode="wait", new children are no longer dropped if exit completes during a React transition.

    13.4.5release notesrelease notes

  • Fixes relative child jumping when a parent interrupts a layout animation.

    13.4.5release notes

  • Only clears the reorder guard when values change.

    13.4.5release notes

  • The spring is 5% smaller.

    13.4.5release notes

  • Children no longer stick during reentry.

    13.4.4release notes

  • Improved pointerend timing.

    13.4.4release notes

  • Invalid spring values are checked before being applied.

    13.4.4release notes

  • Fixed origin drift when snapToCursor is used on repeated calls.

    13.4.4release notes

  • Animations replay when Suspense reveals memoized content.

    13.4.3release notes

  • Unrecognised easing names no longer throw.

    13.4.2release notes

  • Changing dragConstraints no longer scales the position of elements at origin 0.

    13.4.2release notes

  • CSS variable writes on SVGs now apply to the style attribute.

    13.4.1release notes

  • Path drawing calculations were fixed.

    13.3.0release notes

  • Compatibility with React 19 strict mode is improved.

    13.1.1release notes

  • Animation window access is guarded in non-browser runtimes.

    13.1.1release notes

  • Nodes are marked as safe to remove when rendering with propagate and no motion children.

    13.0.0release notes

  • Final styles are now correctly applied when an animation completes.

    13.0.0release notes

motion 1286 changes

Breaking changes 5

  • Passing a custom motion component an incorrect ref type now throws an error.

    12.43.0release notes

  • Automatic border-radius animation is disabled.

    12.42.0release notes

  • Group layers automatically crop with children set to cover and animate border-radius from its old to new value; .crop(false) disables this.

    12.41.0release notes

  • .enter() now refers specifically to the new layer when there is no matching old layer.

    12.41.0release notes

  • .exit() now refers specifically to the old layer when there is no matching new layer.

    12.41.0release notes

New APIs and options 22

  • The new group(false) method opts out of automatic layer grouping.

    12.42.0release notes

  • .add() resolves a CSS selector or Element and automatically generates, applies, and removes view-transition-name.

    12.41.0release notes

  • .class(name) tags currently selected elements with a view-transition-class for use as a custom CSS hook.

    12.41.0release notes

  • .layout() sets a custom transition on the size and position animation of currently selected elements.

    12.41.0release notes

  • .new() configures values to animate on new layers.

    12.41.0release notes

  • .old() configures values to animate on old layers.

    12.41.0release notes

  • Adds arc() for motion along an arc.

    12.40.0release notes

  • Adds the path option to transition.

    12.40.0release notes

  • Animation sequences now support repeatDelay.

    12.39.0release notes

  • Animation sequences now support repeatType.

    12.39.0release notes

  • Added a prop to configure the custom anchor point used to resolve relative projection boxes.

    12.38.0release notes

  • The color color type is supported.

    12.37.0release notes

  • The color-mix color type is supported.

    12.37.0release notes

  • The lab color type is supported.

    12.37.0release notes

  • The lch color type is supported.

    12.37.0release notes

  • The light-dark color type is supported.

    12.37.0release notes

  • The oklab color type is supported.

    12.37.0release notes

  • The oklch color type is supported.

    12.37.0release notes

  • Can now accept "x" or "y" to snap to the origin on only one axis.

    12.36.0release notes

  • Supports axis-locked layout animations with layout="x" and layout="y".

    12.36.0release notes

  • Added as an option to useSpring to skip the initial animation.

    12.36.0release notes

  • scroll now supports ViewTimeline.

    12.35.0release notes

Performance 6

  • Supported browsers now hardware-accelerate backgroundColor.

    12.43.0release notes

  • SVG elements are now hardware-accelerated.

    12.43.0release notes

  • Reduced memory pressure from layout animations.

    12.37.0release notes

  • Hardware acceleration is supported for start and end offsets in scroll.

    12.37.0release notes

  • Hardware acceleration is supported for start and end offsets in useScroll.

    12.37.0release notes

  • Reduced the filesize of styleEffect.

    12.35.2release notes

Behavior and default changes 3

  • Layers are now automatically grouped to match their DOM hierarchy.

    12.42.0release notes

  • animateView moves from Motion+ Early Access and alpha to the main library.

    12.41.0release notes

  • useScroll now supports ViewTimeline.

    12.35.0release notes

Fixes and other changes 50

  • Exiting children no longer interleave with entering children, preventing reordering and remounting of children present in both renders.

    12.43.0release notes

  • Cropped group layers now animate border-radius from the old radius to the new radius.

    12.42.2release notes

  • Defining .new() now cancels the old layer fade out.

    12.42.1release notes

  • Auto-crop now accounts for aspect ratios and disables crops when aspect ratios match.

    12.42.0release notes

  • Improves handling of parallel and interleaved calls.

    12.41.0release notes

  • Prevents exit animations from getting stuck when children interrupt.

    12.41.0release notes

  • Interrupted transition setups now return a resolved animation instead of throwing.

    12.41.0release notes

  • Child e.stopPropagation() no longer breaks drag end.

    12.41.0release notes

  • Fixes an out-of-memory issue on Windows when importing via the motion package.

    12.41.0release notes

  • Object-form initial values are now applied on re-entry after exit completes.

    12.39.0release notes

  • The gesture no longer starts from an incorrect start point when rendered inside <AnimatePresence initial={false} />.

    12.39.0release notes

  • Viewport-relative refs no longer break on scroll.

    12.39.0release notes

  • In-flight motion value animations are preserved across React 19 reorder unmount/remount, preventing the drag transform from being stranded after a layout swap.

    12.39.0release notes

  • Keyframe animations rerun when switching between variant labels, even when their keyframe arrays are identical.

    12.39.0release notes

  • The framer-motion and framer-motion/m CJS bundles share React contexts, so features loaded by LazyMotion from the main entry point are picked up by <m.div> from the /m subpath.

    12.39.0release notes

  • Callback progress is fixed when tracking an element.

    12.39.0release notes

  • useAnimate now respects skipAnimations.

    12.39.0release notes

  • Refs for target and container can now be hydrated from anywhere in the tree.

    12.39.0release notes

  • Refs for target and container can now be hydrated from anywhere in the tree.

    12.39.0release notes

  • Hardware acceleration is fixed when tracking an element.

    12.39.0release notes

  • Ensures children are removed when an exit animation matches current values.

    12.38.0release notes

  • Fixed axis switching after window resize.

    12.38.0release notes

  • Fixed behavior with virtualised lists.

    12.38.0release notes

  • Fixed draggable elements when layout updates because surrounding elements re-render.

    12.37.0release notes

  • The motion value returned from useSpring now reports the correct isAnimating() state.

    12.37.0release notes

  • Fixed whileInView behavior with client-side navigation.

    12.37.0release notes

  • Elements using mode="wait" no longer get stuck when switched rapidly.

    12.36.0release notes

  • The easing now returns 1 when p === 1.

    12.36.0release notes

  • Component values are reset when the exit animation finishes.

    12.36.0release notes

  • The attribute is removed from exiting elements when an animation is interrupted.

    12.36.0release notes

  • Fixed a resolve error in Storybook.

    12.36.0release notes

  • Fixed height and width: auto animations when box-sizing is border-box.

    12.36.0release notes

  • MotionValue props are no longer passed to SVG.

    12.36.0release notes

  • WAAPI is skipped for non-animatable keyframes.

    12.36.0release notes

  • WAAPI is skipped for SVG transforms.

    12.36.0release notes

  • Updated animation sequence segment types to exclude lifecycle handlers.

    12.35.2release notes

  • Fixed autoplay: false with WAAPI animations.

    12.35.2release notes

  • Detects divide-by-zero in CSS calc() values before making them animatable templates.

    12.35.2release notes

  • Fixed layout animations with parents offset by a %-based translation.

    12.35.2release notes

  • Fixed layout jumps in React Strict Mode during development.

    12.35.2release notes

  • Fixed opacity animations in React Strict Mode during development.

    12.35.2release notes

  • Fixed rounding from popLayout.

    12.35.2release notes

  • Ensured useSpring is not affected by monitor framerate.

    12.35.2release notes

  • Setting animation.time to 0 on a finished animation now sets the playhead in a paused state.

    12.35.1release notes

  • Fixes the combination of string keyframes, spring and delay.

    12.35.1release notes

  • Negative scroll values are now handled gracefully.

    12.35.1release notes

  • Fixes a one-frame visual gap when rapidly switching WAAPI animations.

    12.35.1release notes

  • Prevents Next.js from caching typeof window checks.

    12.34.5release notes

  • Fixes variant propagation for children that mount asynchronously.

    12.34.5release notes

  • Final WAAPI styles are always committed synchronously to prevent flashes of incorrect styles in Firefox.

    12.34.5release notes