# What changed in motion

> 169 changes in motion 12 to 14 from its official release notes, upgrade guides and advisories: 10 breaking, 36 new APIs and options. Each one cited. Sources checked 2026-10-19. HTML: https://unstale.sh/npm/motion/

To see which of these apply to a repository, run `npx @unstale/cli init` in it.

## motion 14

### Breaking changes

- Internal APIs restored in 13.5.1 for compatibility with framer-motion 13.0–13.4 were removed. (14.0.0) — [release notes](https://github.com/motiondivision/motion/blob/ce1d08291ad14d31467f5fdd9ec1507853ca64cc/CHANGELOG.md#1400-2026-10-02)

### New APIs and options

- Adds support for scaleZ. (14.3.0) — [release notes](https://github.com/motiondivision/motion/blob/ce1d08291ad14d31467f5fdd9ec1507853ca64cc/CHANGELOG.md#1430-2026-10-15)
- Adds the `edges` and `random` values for the from option. (14.3.0) — [release notes](https://github.com/motiondivision/motion/blob/ce1d08291ad14d31467f5fdd9ec1507853ca64cc/CHANGELOG.md#1430-2026-10-15)
- Adds the grid option to stagger. (14.3.0) — [release notes](https://github.com/motiondivision/motion/blob/ce1d08291ad14d31467f5fdd9ec1507853ca64cc/CHANGELOG.md#1430-2026-10-15)
- Adds layout animations for vanilla JS. (14.1.0) — [release notes](https://github.com/motiondivision/motion/blob/ce1d08291ad14d31467f5fdd9ec1507853ca64cc/CHANGELOG.md#1410-2026-10-09)

### Performance

- Independent transforms like x, y, and scaleX are now hardware accelerated. (14.2.0) — [release notes](https://github.com/motiondivision/motion/blob/ce1d08291ad14d31467f5fdd9ec1507853ca64cc/CHANGELOG.md#1420-2026-10-13)

### Fixes and other changes

- Fires onExitComplete after exiting children unmount. (14.3.0) — [release notes](https://github.com/motiondivision/motion/blob/ce1d08291ad14d31467f5fdd9ec1507853ca64cc/CHANGELOG.md#1430-2026-10-15)
- popLayout children that do not accept ref are now popped when the root component is a motion element. (14.3.0) — [release notes](https://github.com/motiondivision/motion/blob/ce1d08291ad14d31467f5fdd9ec1507853ca64cc/CHANGELOG.md#1430-2026-10-15)
- Fixes path animations with animate. (14.3.0) — [release notes](https://github.com/motiondivision/motion/blob/ce1d08291ad14d31467f5fdd9ec1507853ca64cc/CHANGELOG.md#1430-2026-10-15)
- Fixes drag jumping to 0 after animate x or y to a CSS variable. (14.3.0) — [release notes](https://github.com/motiondivision/motion/blob/ce1d08291ad14d31467f5fdd9ec1507853ca64cc/CHANGELOG.md#1430-2026-10-15)
- Fixes accelerated independent transform animations vanishing when they start from a float residue. (14.3.0) — [release notes](https://github.com/motiondivision/motion/blob/ce1d08291ad14d31467f5fdd9ec1507853ca64cc/CHANGELOG.md#1430-2026-10-15)
- Fixes layout animations when layout is enabled after mount. (14.3.0) — [release notes](https://github.com/motiondivision/motion/blob/ce1d08291ad14d31467f5fdd9ec1507853ca64cc/CHANGELOG.md#1430-2026-10-15)
- Fixes matrix3d and other digit-named transform functions being tokenised as numbers. (14.3.0) — [release notes](https://github.com/motiondivision/motion/blob/ce1d08291ad14d31467f5fdd9ec1507853ca64cc/CHANGELOG.md#1430-2026-10-15)
- Fixes SVG MotionValue children being written as a children attribute. (14.3.0) — [release notes](https://github.com/motiondivision/motion/blob/ce1d08291ad14d31467f5fdd9ec1507853ca64cc/CHANGELOG.md#1430-2026-10-15)
- Fixes interpolation of axis rotate and skew transforms during shared layout animation. (14.3.0) — [release notes](https://github.com/motiondivision/motion/blob/ce1d08291ad14d31467f5fdd9ec1507853ca64cc/CHANGELOG.md#1430-2026-10-15)
- Ensures shared elements are freed from memory when unmounted. (14.3.0) — [release notes](https://github.com/motiondivision/motion/blob/ce1d08291ad14d31467f5fdd9ec1507853ca64cc/CHANGELOG.md#1430-2026-10-15)
- When switching targets, useSpring now animates to the new target on switch. (14.3.0) — [release notes](https://github.com/motiondivision/motion/blob/ce1d08291ad14d31467f5fdd9ec1507853ca64cc/CHANGELOG.md#1430-2026-10-15)
- Makes cubicBezier more accurate and 2x faster. (14.1.1) — [release notes](https://github.com/motiondivision/motion/blob/ce1d08291ad14d31467f5fdd9ec1507853ca64cc/CHANGELOG.md#1411-2026-10-13)
- Fixes velocity hand-off for hardware-accelerated springs. (14.1.1) — [release notes](https://github.com/motiondivision/motion/blob/ce1d08291ad14d31467f5fdd9ec1507853ca64cc/CHANGELOG.md#1411-2026-10-13)
- Fixes click events on reordered items. (14.1.1) — [release notes](https://github.com/motiondivision/motion/blob/ce1d08291ad14d31467f5fdd9ec1507853ca64cc/CHANGELOG.md#1411-2026-10-13)
- Fixes desynchronization when the source is set in an effect under Strict Mode. (14.1.1) — [release notes](https://github.com/motiondivision/motion/blob/ce1d08291ad14d31467f5fdd9ec1507853ca64cc/CHANGELOG.md#1411-2026-10-13)
- Fixes JS animations jumping ahead when played after a pause at non-1 speed. (14.1.0) — [release notes](https://github.com/motiondivision/motion/blob/ce1d08291ad14d31467f5fdd9ec1507853ca64cc/CHANGELOG.md#1410-2026-10-09)
- Fixes popLayout when rendering into another window or iframe. (14.1.0) — [release notes](https://github.com/motiondivision/motion/blob/ce1d08291ad14d31467f5fdd9ec1507853ca64cc/CHANGELOG.md#1410-2026-10-09)
- Animation start is delayed when the main thread is held, preventing visual jumps. (14.1.0) — [release notes](https://github.com/motiondivision/motion/blob/ce1d08291ad14d31467f5fdd9ec1507853ca64cc/CHANGELOG.md#1410-2026-10-09)
- Layout animations are now allowed inside dragged elements. (14.1.0) — [release notes](https://github.com/motiondivision/motion/blob/ce1d08291ad14d31467f5fdd9ec1507853ca64cc/CHANGELOG.md#1410-2026-10-09)
- Fixes reporting of elastic overscroll. (14.1.0) — [release notes](https://github.com/motiondivision/motion/blob/ce1d08291ad14d31467f5fdd9ec1507853ca64cc/CHANGELOG.md#1410-2026-10-09)
- Fixes these interactions getting stuck after Fast Refresh reorders siblings. (14.1.0) — [release notes](https://github.com/motiondivision/motion/blob/ce1d08291ad14d31467f5fdd9ec1507853ca64cc/CHANGELOG.md#1410-2026-10-09)

## motion 13

### Breaking changes

- ScrollTimeline support for JS callbacks was removed because benchmarks showed no improvement over scrollInfo. (13.4.4) — [release notes](https://github.com/motiondivision/motion/blob/ce1d08291ad14d31467f5fdd9ec1507853ca64cc/CHANGELOG.md#1344-2026-09-25)
- The useDefaultValueType argument is no longer accepted by set(). (13.2.0) — [release notes](https://github.com/motiondivision/motion/blob/ce1d08291ad14d31467f5fdd9ec1507853ca64cc/CHANGELOG.md#1320-2026-09-03)
- The optional dependency was removed in favour of explicitly providing isPropValid through MotionConfig. (13.0.0) — [release notes](https://github.com/motiondivision/motion/blob/ce1d08291ad14d31467f5fdd9ec1507853ca64cc/CHANGELOG.md#1300-2026-08-05)
- Use isValidProp to provide prop validation explicitly, replacing the optional @emotion/is-prop-valid dependency. (13.0.0) — [release notes](https://github.com/motiondivision/motion/blob/ce1d08291ad14d31467f5fdd9ec1507853ca64cc/CHANGELOG.md#1300-2026-08-05)

### New APIs and options

- spring accepts negative bounce values from 0 to -1 to define overdamped springs. (13.5.0) — [release notes](https://github.com/motiondivision/motion/blob/ce1d08291ad14d31467f5fdd9ec1507853ca64cc/CHANGELOG.md#1350-2026-10-01)
- Adds view transitions for React 19.3, built on React's ViewTransition. (13.4.0) — [release notes](https://github.com/motiondivision/motion/blob/ce1d08291ad14d31467f5fdd9ec1507853ca64cc/CHANGELOG.md#1340-2026-09-14)
- Hooks for Motion Editor were added. (13.3.0) — [release notes](https://github.com/motiondivision/motion/blob/ce1d08291ad14d31467f5fdd9ec1507853ca64cc/CHANGELOG.md#1330-2026-09-14)
- Register effects that let animate drive non-DOM subjects alongside DOM elements. (13.2.0) — [release notes](https://github.com/motiondivision/motion/blob/ce1d08291ad14d31467f5fdd9ec1507853ca64cc/CHANGELOG.md#1320-2026-09-03)
- Adds the read option. (13.2.0) — [release notes](https://github.com/motiondivision/motion/blob/ce1d08291ad14d31467f5fdd9ec1507853ca64cc/CHANGELOG.md#1320-2026-09-03)
- Adds the step option. (13.2.0) — [release notes](https://github.com/motiondivision/motion/blob/ce1d08291ad14d31467f5fdd9ec1507853ca64cc/CHANGELOG.md#1320-2026-09-03)
- Adds the test option. (13.2.0) — [release notes](https://github.com/motiondivision/motion/blob/ce1d08291ad14d31467f5fdd9ec1507853ca64cc/CHANGELOG.md#1320-2026-09-03)
- Exposes bound motion values through effect.get(). (13.2.0) — [release notes](https://github.com/motiondivision/motion/blob/ce1d08291ad14d31467f5fdd9ec1507853ca64cc/CHANGELOG.md#1320-2026-09-03)
- Adds support for animating Three.js objects, materials, shader uniforms, TSL uniform nodes and more. (13.2.0) — [release notes](https://github.com/motiondivision/motion/blob/ce1d08291ad14d31467f5fdd9ec1507853ca64cc/CHANGELOG.md#1320-2026-09-03)
- Adds support for shared uniforms, bindings, scene nodes, cameras, lights, materials, orbit controls, CSS colors and vector components. (13.2.0) — [release notes](https://github.com/motiondivision/motion/blob/ce1d08291ad14d31467f5fdd9ec1507853ca64cc/CHANGELOG.md#1320-2026-09-03)

### Performance

- <m> is 20% smaller. (13.5.0) — [release notes](https://github.com/motiondivision/motion/blob/ce1d08291ad14d31467f5fdd9ec1507853ca64cc/CHANGELOG.md#1350-2026-10-01)
- useSpring is 10% smaller. (13.5.0) — [release notes](https://github.com/motiondivision/motion/blob/ce1d08291ad14d31467f5fdd9ec1507853ca64cc/CHANGELOG.md#1350-2026-10-01)
- The spring is 5% smaller. (13.4.5) — [release notes](https://github.com/motiondivision/motion/blob/ce1d08291ad14d31467f5fdd9ec1507853ca64cc/CHANGELOG.md#1345-2026-09-28)
- The scroll implementation is 44% smaller. (13.4.4) — [release notes](https://github.com/motiondivision/motion/blob/ce1d08291ad14d31467f5fdd9ec1507853ca64cc/CHANGELOG.md#1344-2026-09-25)
- Scroll callbacks run 50% faster. (13.4.4) — [release notes](https://github.com/motiondivision/motion/blob/ce1d08291ad14d31467f5fdd9ec1507853ca64cc/CHANGELOG.md#1344-2026-09-25)
- The useScroll implementation is 33% smaller. (13.4.4) — [release notes](https://github.com/motiondivision/motion/blob/ce1d08291ad14d31467f5fdd9ec1507853ca64cc/CHANGELOG.md#1344-2026-09-25)
- The size of `animate` was reduced by 10%. (13.3.0) — [release notes](https://github.com/motiondivision/motion/blob/ce1d08291ad14d31467f5fdd9ec1507853ca64cc/CHANGELOG.md#1330-2026-09-14)
- Startup time was reduced by 20%. (13.3.0) — [release notes](https://github.com/motiondivision/motion/blob/ce1d08291ad14d31467f5fdd9ec1507853ca64cc/CHANGELOG.md#1330-2026-09-14)
- Per-frame JavaScript was reduced by 10%. (13.3.0) — [release notes](https://github.com/motiondivision/motion/blob/ce1d08291ad14d31467f5fdd9ec1507853ca64cc/CHANGELOG.md#1330-2026-09-14)
- Frame scheduling is 10% faster. (13.3.0) — [release notes](https://github.com/motiondivision/motion/blob/ce1d08291ad14d31467f5fdd9ec1507853ca64cc/CHANGELOG.md#1330-2026-09-14)
- Retargeting time was reduced by 80%. (13.3.0) — [release notes](https://github.com/motiondivision/motion/blob/ce1d08291ad14d31467f5fdd9ec1507853ca64cc/CHANGELOG.md#1330-2026-09-14)
- Retargeting time was reduced by 80%. (13.3.0) — [release notes](https://github.com/motiondivision/motion/blob/ce1d08291ad14d31467f5fdd9ec1507853ca64cc/CHANGELOG.md#1330-2026-09-14)
- Reduces filesize and improves performance. (13.2.0) — [release notes](https://github.com/motiondivision/motion/blob/ce1d08291ad14d31467f5fdd9ec1507853ca64cc/CHANGELOG.md#1320-2026-09-03)

### Behavior and default changes

- offset animations use the main thread. (13.5.0) — [release notes](https://github.com/motiondivision/motion/blob/ce1d08291ad14d31467f5fdd9ec1507853ca64cc/CHANGELOG.md#1350-2026-10-01)
- offset animations use the main thread. (13.5.0) — [release notes](https://github.com/motiondivision/motion/blob/ce1d08291ad14d31467f5fdd9ec1507853ca64cc/CHANGELOG.md#1350-2026-10-01)
- Reorder supports multidimensional reordering. (13.1.0) — [release notes](https://github.com/motiondivision/motion/blob/ce1d08291ad14d31467f5fdd9ec1507853ca64cc/CHANGELOG.md#1310-2026-08-10)
- Reorder automatically detects the axis. (13.1.0) — [release notes](https://github.com/motiondivision/motion/blob/ce1d08291ad14d31467f5fdd9ec1507853ca64cc/CHANGELOG.md#1310-2026-08-10)
- Reorder supports right-to-left layouts. (13.1.0) — [release notes](https://github.com/motiondivision/motion/blob/ce1d08291ad14d31467f5fdd9ec1507853ca64cc/CHANGELOG.md#1310-2026-08-10)

### Fixes and other changes

- When computed style is empty, SVG value reading falls back to the attribute. (13.5.1) — [release notes](https://github.com/motiondivision/motion/blob/ce1d08291ad14d31467f5fdd9ec1507853ca64cc/CHANGELOG.md#1351-2026-10-02)
- Setting `inherit={false}` now correctly prevents inheriting parent animations. (13.5.1) — [release notes](https://github.com/motiondivision/motion/blob/ce1d08291ad14d31467f5fdd9ec1507853ca64cc/CHANGELOG.md#1351-2026-10-02)
- The removal of the internal API was temporarily reverted to restore compatibility with previous 13.x APIs. (13.5.1) — [release notes](https://github.com/motiondivision/motion/blob/ce1d08291ad14d31467f5fdd9ec1507853ca64cc/CHANGELOG.md#1351-2026-10-02)
- Cleaning up an earlier value no longer removes a value bound to the same key afterward. (13.5.1) — [release notes](https://github.com/motiondivision/motion/blob/ce1d08291ad14d31467f5fdd9ec1507853ca64cc/CHANGELOG.md#1351-2026-10-02)
- Transforms and origins are no longer written as attributes. (13.5.1) — [release notes](https://github.com/motiondivision/motion/blob/ce1d08291ad14d31467f5fdd9ec1507853ca64cc/CHANGELOG.md#1351-2026-10-02)
- warning and error messages are cleaned from production builds. (13.5.0) — [release notes](https://github.com/motiondivision/motion/blob/ce1d08291ad14d31467f5fdd9ec1507853ca64cc/CHANGELOG.md#1350-2026-10-01)
- Values are never rendered before they have been resolved. (13.5.0) — [release notes](https://github.com/motiondivision/motion/blob/ce1d08291ad14d31467f5fdd9ec1507853ca64cc/CHANGELOG.md#1350-2026-10-01)
- In mode="wait", new children are no longer dropped if exit completes during a React transition. (13.4.5) — [release notes](https://github.com/motiondivision/motion/blob/ce1d08291ad14d31467f5fdd9ec1507853ca64cc/CHANGELOG.md#1346-2026-09-29), [release notes](https://github.com/motiondivision/motion/blob/ce1d08291ad14d31467f5fdd9ec1507853ca64cc/CHANGELOG.md#1345-2026-09-28)
- Fixes relative child jumping when a parent interrupts a layout animation. (13.4.5) — [release notes](https://github.com/motiondivision/motion/blob/ce1d08291ad14d31467f5fdd9ec1507853ca64cc/CHANGELOG.md#1345-2026-09-28)
- Only clears the reorder guard when values change. (13.4.5) — [release notes](https://github.com/motiondivision/motion/blob/ce1d08291ad14d31467f5fdd9ec1507853ca64cc/CHANGELOG.md#1345-2026-09-28)
- The spring is 5% smaller. (13.4.5) — [release notes](https://github.com/motiondivision/motion/blob/ce1d08291ad14d31467f5fdd9ec1507853ca64cc/CHANGELOG.md#1345-2026-09-28)
- Children no longer stick during reentry. (13.4.4) — [release notes](https://github.com/motiondivision/motion/blob/ce1d08291ad14d31467f5fdd9ec1507853ca64cc/CHANGELOG.md#1344-2026-09-25)
- Improved pointerend timing. (13.4.4) — [release notes](https://github.com/motiondivision/motion/blob/ce1d08291ad14d31467f5fdd9ec1507853ca64cc/CHANGELOG.md#1344-2026-09-25)
- Invalid spring values are checked before being applied. (13.4.4) — [release notes](https://github.com/motiondivision/motion/blob/ce1d08291ad14d31467f5fdd9ec1507853ca64cc/CHANGELOG.md#1344-2026-09-25)
- Fixed origin drift when snapToCursor is used on repeated calls. (13.4.4) — [release notes](https://github.com/motiondivision/motion/blob/ce1d08291ad14d31467f5fdd9ec1507853ca64cc/CHANGELOG.md#1344-2026-09-25)
- Animations replay when Suspense reveals memoized content. (13.4.3) — [release notes](https://github.com/motiondivision/motion/blob/ce1d08291ad14d31467f5fdd9ec1507853ca64cc/CHANGELOG.md#1343-2026-09-24)
- Unrecognised easing names no longer throw. (13.4.2) — [release notes](https://github.com/motiondivision/motion/blob/ce1d08291ad14d31467f5fdd9ec1507853ca64cc/CHANGELOG.md#1342-2026-09-23)
- Changing dragConstraints no longer scales the position of elements at origin 0. (13.4.2) — [release notes](https://github.com/motiondivision/motion/blob/ce1d08291ad14d31467f5fdd9ec1507853ca64cc/CHANGELOG.md#1342-2026-09-23)
- CSS variable writes on SVGs now apply to the style attribute. (13.4.1) — [release notes](https://github.com/motiondivision/motion/blob/ce1d08291ad14d31467f5fdd9ec1507853ca64cc/CHANGELOG.md#1341-2026-09-22)
- Path drawing calculations were fixed. (13.3.0) — [release notes](https://github.com/motiondivision/motion/blob/ce1d08291ad14d31467f5fdd9ec1507853ca64cc/CHANGELOG.md#1330-2026-09-14)
- Compatibility with React 19 strict mode is improved. (13.1.1) — [release notes](https://github.com/motiondivision/motion/blob/ce1d08291ad14d31467f5fdd9ec1507853ca64cc/CHANGELOG.md#1311-2026-08-18)
- Animation window access is guarded in non-browser runtimes. (13.1.1) — [release notes](https://github.com/motiondivision/motion/blob/ce1d08291ad14d31467f5fdd9ec1507853ca64cc/CHANGELOG.md#1311-2026-08-18)
- Nodes are marked as safe to remove when rendering with propagate and no motion children. (13.0.0) — [release notes](https://github.com/motiondivision/motion/blob/ce1d08291ad14d31467f5fdd9ec1507853ca64cc/CHANGELOG.md#1300-2026-08-05)
- Final styles are now correctly applied when an animation completes. (13.0.0) — [release notes](https://github.com/motiondivision/motion/blob/ce1d08291ad14d31467f5fdd9ec1507853ca64cc/CHANGELOG.md#1300-2026-08-05)

## motion 12

### Breaking changes

- Passing a custom motion component an incorrect ref type now throws an error. (12.43.0) — [release notes](https://github.com/motiondivision/motion/blob/ce1d08291ad14d31467f5fdd9ec1507853ca64cc/CHANGELOG.md#12430-2026-07-27)
- Automatic border-radius animation is disabled. (12.42.0) — [release notes](https://github.com/motiondivision/motion/blob/ce1d08291ad14d31467f5fdd9ec1507853ca64cc/CHANGELOG.md#12420-2026-06-24)
- 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.0) — [release notes](https://github.com/motiondivision/motion/blob/ce1d08291ad14d31467f5fdd9ec1507853ca64cc/CHANGELOG.md#12410-2026-06-23)
- .enter() now refers specifically to the new layer when there is no matching old layer. (12.41.0) — [release notes](https://github.com/motiondivision/motion/blob/ce1d08291ad14d31467f5fdd9ec1507853ca64cc/CHANGELOG.md#12410-2026-06-23)
- .exit() now refers specifically to the old layer when there is no matching new layer. (12.41.0) — [release notes](https://github.com/motiondivision/motion/blob/ce1d08291ad14d31467f5fdd9ec1507853ca64cc/CHANGELOG.md#12410-2026-06-23)

### New APIs and options

- The new group(false) method opts out of automatic layer grouping. (12.42.0) — [release notes](https://github.com/motiondivision/motion/blob/ce1d08291ad14d31467f5fdd9ec1507853ca64cc/CHANGELOG.md#12420-2026-06-24)
- .add() resolves a CSS selector or Element and automatically generates, applies, and removes view-transition-name. (12.41.0) — [release notes](https://github.com/motiondivision/motion/blob/ce1d08291ad14d31467f5fdd9ec1507853ca64cc/CHANGELOG.md#12410-2026-06-23)
- .class(name) tags currently selected elements with a view-transition-class for use as a custom CSS hook. (12.41.0) — [release notes](https://github.com/motiondivision/motion/blob/ce1d08291ad14d31467f5fdd9ec1507853ca64cc/CHANGELOG.md#12410-2026-06-23)
- .layout() sets a custom transition on the size and position animation of currently selected elements. (12.41.0) — [release notes](https://github.com/motiondivision/motion/blob/ce1d08291ad14d31467f5fdd9ec1507853ca64cc/CHANGELOG.md#12410-2026-06-23)
- .new() configures values to animate on new layers. (12.41.0) — [release notes](https://github.com/motiondivision/motion/blob/ce1d08291ad14d31467f5fdd9ec1507853ca64cc/CHANGELOG.md#12410-2026-06-23)
- .old() configures values to animate on old layers. (12.41.0) — [release notes](https://github.com/motiondivision/motion/blob/ce1d08291ad14d31467f5fdd9ec1507853ca64cc/CHANGELOG.md#12410-2026-06-23)
- Adds arc() for motion along an arc. (12.40.0) — [release notes](https://github.com/motiondivision/motion/blob/ce1d08291ad14d31467f5fdd9ec1507853ca64cc/CHANGELOG.md#12400-2026-05-21)
- Adds the path option to transition. (12.40.0) — [release notes](https://github.com/motiondivision/motion/blob/ce1d08291ad14d31467f5fdd9ec1507853ca64cc/CHANGELOG.md#12400-2026-05-21)
- Animation sequences now support repeatDelay. (12.39.0) — [release notes](https://github.com/motiondivision/motion/blob/ce1d08291ad14d31467f5fdd9ec1507853ca64cc/CHANGELOG.md#12390-2026-05-18)
- Animation sequences now support repeatType. (12.39.0) — [release notes](https://github.com/motiondivision/motion/blob/ce1d08291ad14d31467f5fdd9ec1507853ca64cc/CHANGELOG.md#12390-2026-05-18)
- Added a prop to configure the custom anchor point used to resolve relative projection boxes. (12.38.0) — [release notes](https://github.com/motiondivision/motion/blob/ce1d08291ad14d31467f5fdd9ec1507853ca64cc/CHANGELOG.md#12380-2026-03-16)
- The color color type is supported. (12.37.0) — [release notes](https://github.com/motiondivision/motion/blob/ce1d08291ad14d31467f5fdd9ec1507853ca64cc/CHANGELOG.md#12370-2026-03-16)
- The color-mix color type is supported. (12.37.0) — [release notes](https://github.com/motiondivision/motion/blob/ce1d08291ad14d31467f5fdd9ec1507853ca64cc/CHANGELOG.md#12370-2026-03-16)
- The lab color type is supported. (12.37.0) — [release notes](https://github.com/motiondivision/motion/blob/ce1d08291ad14d31467f5fdd9ec1507853ca64cc/CHANGELOG.md#12370-2026-03-16)
- The lch color type is supported. (12.37.0) — [release notes](https://github.com/motiondivision/motion/blob/ce1d08291ad14d31467f5fdd9ec1507853ca64cc/CHANGELOG.md#12370-2026-03-16)
- The light-dark color type is supported. (12.37.0) — [release notes](https://github.com/motiondivision/motion/blob/ce1d08291ad14d31467f5fdd9ec1507853ca64cc/CHANGELOG.md#12370-2026-03-16)
- The oklab color type is supported. (12.37.0) — [release notes](https://github.com/motiondivision/motion/blob/ce1d08291ad14d31467f5fdd9ec1507853ca64cc/CHANGELOG.md#12370-2026-03-16)
- The oklch color type is supported. (12.37.0) — [release notes](https://github.com/motiondivision/motion/blob/ce1d08291ad14d31467f5fdd9ec1507853ca64cc/CHANGELOG.md#12370-2026-03-16)
- Can now accept "x" or "y" to snap to the origin on only one axis. (12.36.0) — [release notes](https://github.com/motiondivision/motion/blob/ce1d08291ad14d31467f5fdd9ec1507853ca64cc/CHANGELOG.md#12360-2026-03-09)
- Supports axis-locked layout animations with `layout="x"` and `layout="y"`. (12.36.0) — [release notes](https://github.com/motiondivision/motion/blob/ce1d08291ad14d31467f5fdd9ec1507853ca64cc/CHANGELOG.md#12360-2026-03-09)
- Added as an option to `useSpring` to skip the initial animation. (12.36.0) — [release notes](https://github.com/motiondivision/motion/blob/ce1d08291ad14d31467f5fdd9ec1507853ca64cc/CHANGELOG.md#12360-2026-03-09)
- scroll now supports ViewTimeline. (12.35.0) — [release notes](https://github.com/motiondivision/motion/blob/ce1d08291ad14d31467f5fdd9ec1507853ca64cc/CHANGELOG.md#12350-2026-03-03)

### Performance

- Supported browsers now hardware-accelerate backgroundColor. (12.43.0) — [release notes](https://github.com/motiondivision/motion/blob/ce1d08291ad14d31467f5fdd9ec1507853ca64cc/CHANGELOG.md#12430-2026-07-27)
- SVG elements are now hardware-accelerated. (12.43.0) — [release notes](https://github.com/motiondivision/motion/blob/ce1d08291ad14d31467f5fdd9ec1507853ca64cc/CHANGELOG.md#12430-2026-07-27)
- Reduced memory pressure from layout animations. (12.37.0) — [release notes](https://github.com/motiondivision/motion/blob/ce1d08291ad14d31467f5fdd9ec1507853ca64cc/CHANGELOG.md#12370-2026-03-16)
- Hardware acceleration is supported for start and end offsets in scroll. (12.37.0) — [release notes](https://github.com/motiondivision/motion/blob/ce1d08291ad14d31467f5fdd9ec1507853ca64cc/CHANGELOG.md#12370-2026-03-16)
- Hardware acceleration is supported for start and end offsets in useScroll. (12.37.0) — [release notes](https://github.com/motiondivision/motion/blob/ce1d08291ad14d31467f5fdd9ec1507853ca64cc/CHANGELOG.md#12370-2026-03-16)
- Reduced the filesize of styleEffect. (12.35.2) — [release notes](https://github.com/motiondivision/motion/blob/ce1d08291ad14d31467f5fdd9ec1507853ca64cc/CHANGELOG.md#12352-2026-03-09)

### Behavior and default changes

- Layers are now automatically grouped to match their DOM hierarchy. (12.42.0) — [release notes](https://github.com/motiondivision/motion/blob/ce1d08291ad14d31467f5fdd9ec1507853ca64cc/CHANGELOG.md#12420-2026-06-24)
- animateView moves from Motion+ Early Access and alpha to the main library. (12.41.0) — [release notes](https://github.com/motiondivision/motion/blob/ce1d08291ad14d31467f5fdd9ec1507853ca64cc/CHANGELOG.md#12410-2026-06-23)
- useScroll now supports ViewTimeline. (12.35.0) — [release notes](https://github.com/motiondivision/motion/blob/ce1d08291ad14d31467f5fdd9ec1507853ca64cc/CHANGELOG.md#12350-2026-03-03)

### Fixes and other changes

- Exiting children no longer interleave with entering children, preventing reordering and remounting of children present in both renders. (12.43.0) — [release notes](https://github.com/motiondivision/motion/blob/ce1d08291ad14d31467f5fdd9ec1507853ca64cc/CHANGELOG.md#12430-2026-07-27)
- Cropped group layers now animate border-radius from the old radius to the new radius. (12.42.2) — [release notes](https://github.com/motiondivision/motion/blob/ce1d08291ad14d31467f5fdd9ec1507853ca64cc/CHANGELOG.md#12422-2026-07-01)
- Defining .new() now cancels the old layer fade out. (12.42.1) — [release notes](https://github.com/motiondivision/motion/blob/ce1d08291ad14d31467f5fdd9ec1507853ca64cc/CHANGELOG.md#12421-2026-06-30)
- Auto-crop now accounts for aspect ratios and disables crops when aspect ratios match. (12.42.0) — [release notes](https://github.com/motiondivision/motion/blob/ce1d08291ad14d31467f5fdd9ec1507853ca64cc/CHANGELOG.md#12420-2026-06-24)
- Improves handling of parallel and interleaved calls. (12.41.0) — [release notes](https://github.com/motiondivision/motion/blob/ce1d08291ad14d31467f5fdd9ec1507853ca64cc/CHANGELOG.md#12410-2026-06-23)
- Prevents exit animations from getting stuck when children interrupt. (12.41.0) — [release notes](https://github.com/motiondivision/motion/blob/ce1d08291ad14d31467f5fdd9ec1507853ca64cc/CHANGELOG.md#12410-2026-06-23)
- Interrupted transition setups now return a resolved animation instead of throwing. (12.41.0) — [release notes](https://github.com/motiondivision/motion/blob/ce1d08291ad14d31467f5fdd9ec1507853ca64cc/CHANGELOG.md#12410-2026-06-23)
- Child e.stopPropagation() no longer breaks drag end. (12.41.0) — [release notes](https://github.com/motiondivision/motion/blob/ce1d08291ad14d31467f5fdd9ec1507853ca64cc/CHANGELOG.md#12410-2026-06-23)
- Fixes an out-of-memory issue on Windows when importing via the motion package. (12.41.0) — [release notes](https://github.com/motiondivision/motion/blob/ce1d08291ad14d31467f5fdd9ec1507853ca64cc/CHANGELOG.md#12410-2026-06-23)
- Object-form initial values are now applied on re-entry after exit completes. (12.39.0) — [release notes](https://github.com/motiondivision/motion/blob/ce1d08291ad14d31467f5fdd9ec1507853ca64cc/CHANGELOG.md#12390-2026-05-18)
- The gesture no longer starts from an incorrect start point when rendered inside <AnimatePresence initial={false} />. (12.39.0) — [release notes](https://github.com/motiondivision/motion/blob/ce1d08291ad14d31467f5fdd9ec1507853ca64cc/CHANGELOG.md#12390-2026-05-18)
- Viewport-relative refs no longer break on scroll. (12.39.0) — [release notes](https://github.com/motiondivision/motion/blob/ce1d08291ad14d31467f5fdd9ec1507853ca64cc/CHANGELOG.md#12390-2026-05-18)
- 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.0) — [release notes](https://github.com/motiondivision/motion/blob/ce1d08291ad14d31467f5fdd9ec1507853ca64cc/CHANGELOG.md#12390-2026-05-18)
- Keyframe animations rerun when switching between variant labels, even when their keyframe arrays are identical. (12.39.0) — [release notes](https://github.com/motiondivision/motion/blob/ce1d08291ad14d31467f5fdd9ec1507853ca64cc/CHANGELOG.md#12390-2026-05-18)
- 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.0) — [release notes](https://github.com/motiondivision/motion/blob/ce1d08291ad14d31467f5fdd9ec1507853ca64cc/CHANGELOG.md#12390-2026-05-18)
- Callback progress is fixed when tracking an element. (12.39.0) — [release notes](https://github.com/motiondivision/motion/blob/ce1d08291ad14d31467f5fdd9ec1507853ca64cc/CHANGELOG.md#12390-2026-05-18)
- useAnimate now respects skipAnimations. (12.39.0) — [release notes](https://github.com/motiondivision/motion/blob/ce1d08291ad14d31467f5fdd9ec1507853ca64cc/CHANGELOG.md#12390-2026-05-18)
- Refs for target and container can now be hydrated from anywhere in the tree. (12.39.0) — [release notes](https://github.com/motiondivision/motion/blob/ce1d08291ad14d31467f5fdd9ec1507853ca64cc/CHANGELOG.md#12390-2026-05-18)
- Refs for target and container can now be hydrated from anywhere in the tree. (12.39.0) — [release notes](https://github.com/motiondivision/motion/blob/ce1d08291ad14d31467f5fdd9ec1507853ca64cc/CHANGELOG.md#12390-2026-05-18)
- Hardware acceleration is fixed when tracking an element. (12.39.0) — [release notes](https://github.com/motiondivision/motion/blob/ce1d08291ad14d31467f5fdd9ec1507853ca64cc/CHANGELOG.md#12390-2026-05-18)
- Ensures children are removed when an exit animation matches current values. (12.38.0) — [release notes](https://github.com/motiondivision/motion/blob/ce1d08291ad14d31467f5fdd9ec1507853ca64cc/CHANGELOG.md#12380-2026-03-16)
- Fixed axis switching after window resize. (12.38.0) — [release notes](https://github.com/motiondivision/motion/blob/ce1d08291ad14d31467f5fdd9ec1507853ca64cc/CHANGELOG.md#12380-2026-03-16)
- Fixed behavior with virtualised lists. (12.38.0) — [release notes](https://github.com/motiondivision/motion/blob/ce1d08291ad14d31467f5fdd9ec1507853ca64cc/CHANGELOG.md#12380-2026-03-16)
- Fixed draggable elements when layout updates because surrounding elements re-render. (12.37.0) — [release notes](https://github.com/motiondivision/motion/blob/ce1d08291ad14d31467f5fdd9ec1507853ca64cc/CHANGELOG.md#12370-2026-03-16)
- The motion value returned from useSpring now reports the correct isAnimating() state. (12.37.0) — [release notes](https://github.com/motiondivision/motion/blob/ce1d08291ad14d31467f5fdd9ec1507853ca64cc/CHANGELOG.md#12370-2026-03-16)
- Fixed whileInView behavior with client-side navigation. (12.37.0) — [release notes](https://github.com/motiondivision/motion/blob/ce1d08291ad14d31467f5fdd9ec1507853ca64cc/CHANGELOG.md#12370-2026-03-16)
- Elements using `mode="wait"` no longer get stuck when switched rapidly. (12.36.0) — [release notes](https://github.com/motiondivision/motion/blob/ce1d08291ad14d31467f5fdd9ec1507853ca64cc/CHANGELOG.md#12360-2026-03-09)
- The easing now returns `1` when `p === 1`. (12.36.0) — [release notes](https://github.com/motiondivision/motion/blob/ce1d08291ad14d31467f5fdd9ec1507853ca64cc/CHANGELOG.md#12360-2026-03-09)
- Component values are reset when the exit animation finishes. (12.36.0) — [release notes](https://github.com/motiondivision/motion/blob/ce1d08291ad14d31467f5fdd9ec1507853ca64cc/CHANGELOG.md#12360-2026-03-09)
- The attribute is removed from exiting elements when an animation is interrupted. (12.36.0) — [release notes](https://github.com/motiondivision/motion/blob/ce1d08291ad14d31467f5fdd9ec1507853ca64cc/CHANGELOG.md#12360-2026-03-09)
- Fixed a resolve error in Storybook. (12.36.0) — [release notes](https://github.com/motiondivision/motion/blob/ce1d08291ad14d31467f5fdd9ec1507853ca64cc/CHANGELOG.md#12360-2026-03-09)
- Fixed `height` and `width: auto` animations when `box-sizing` is `border-box`. (12.36.0) — [release notes](https://github.com/motiondivision/motion/blob/ce1d08291ad14d31467f5fdd9ec1507853ca64cc/CHANGELOG.md#12360-2026-03-09)
- MotionValue props are no longer passed to SVG. (12.36.0) — [release notes](https://github.com/motiondivision/motion/blob/ce1d08291ad14d31467f5fdd9ec1507853ca64cc/CHANGELOG.md#12360-2026-03-09)
- WAAPI is skipped for non-animatable keyframes. (12.36.0) — [release notes](https://github.com/motiondivision/motion/blob/ce1d08291ad14d31467f5fdd9ec1507853ca64cc/CHANGELOG.md#12360-2026-03-09)
- WAAPI is skipped for SVG transforms. (12.36.0) — [release notes](https://github.com/motiondivision/motion/blob/ce1d08291ad14d31467f5fdd9ec1507853ca64cc/CHANGELOG.md#12360-2026-03-09)
- Updated animation sequence segment types to exclude lifecycle handlers. (12.35.2) — [release notes](https://github.com/motiondivision/motion/blob/ce1d08291ad14d31467f5fdd9ec1507853ca64cc/CHANGELOG.md#12352-2026-03-09)
- Fixed autoplay: false with WAAPI animations. (12.35.2) — [release notes](https://github.com/motiondivision/motion/blob/ce1d08291ad14d31467f5fdd9ec1507853ca64cc/CHANGELOG.md#12352-2026-03-09)
- Detects divide-by-zero in CSS calc() values before making them animatable templates. (12.35.2) — [release notes](https://github.com/motiondivision/motion/blob/ce1d08291ad14d31467f5fdd9ec1507853ca64cc/CHANGELOG.md#12352-2026-03-09)
- Fixed layout animations with parents offset by a %-based translation. (12.35.2) — [release notes](https://github.com/motiondivision/motion/blob/ce1d08291ad14d31467f5fdd9ec1507853ca64cc/CHANGELOG.md#12352-2026-03-09)
- Fixed layout jumps in React Strict Mode during development. (12.35.2) — [release notes](https://github.com/motiondivision/motion/blob/ce1d08291ad14d31467f5fdd9ec1507853ca64cc/CHANGELOG.md#12352-2026-03-09)
- Fixed opacity animations in React Strict Mode during development. (12.35.2) — [release notes](https://github.com/motiondivision/motion/blob/ce1d08291ad14d31467f5fdd9ec1507853ca64cc/CHANGELOG.md#12352-2026-03-09)
- Fixed rounding from popLayout. (12.35.2) — [release notes](https://github.com/motiondivision/motion/blob/ce1d08291ad14d31467f5fdd9ec1507853ca64cc/CHANGELOG.md#12352-2026-03-09)
- Ensured useSpring is not affected by monitor framerate. (12.35.2) — [release notes](https://github.com/motiondivision/motion/blob/ce1d08291ad14d31467f5fdd9ec1507853ca64cc/CHANGELOG.md#12352-2026-03-09)
- Setting animation.time to 0 on a finished animation now sets the playhead in a paused state. (12.35.1) — [release notes](https://github.com/motiondivision/motion/blob/ce1d08291ad14d31467f5fdd9ec1507853ca64cc/CHANGELOG.md#12351-2026-03-06)
- Fixes the combination of string keyframes, spring and delay. (12.35.1) — [release notes](https://github.com/motiondivision/motion/blob/ce1d08291ad14d31467f5fdd9ec1507853ca64cc/CHANGELOG.md#12351-2026-03-06)
- Negative scroll values are now handled gracefully. (12.35.1) — [release notes](https://github.com/motiondivision/motion/blob/ce1d08291ad14d31467f5fdd9ec1507853ca64cc/CHANGELOG.md#12351-2026-03-06)
- Fixes a one-frame visual gap when rapidly switching WAAPI animations. (12.35.1) — [release notes](https://github.com/motiondivision/motion/blob/ce1d08291ad14d31467f5fdd9ec1507853ca64cc/CHANGELOG.md#12351-2026-03-06)
- Prevents Next.js from caching typeof window checks. (12.34.5) — [release notes](https://github.com/motiondivision/motion/blob/ce1d08291ad14d31467f5fdd9ec1507853ca64cc/CHANGELOG.md#12345-2026-03-03)
- Fixes variant propagation for children that mount asynchronously. (12.34.5) — [release notes](https://github.com/motiondivision/motion/blob/ce1d08291ad14d31467f5fdd9ec1507853ca64cc/CHANGELOG.md#12345-2026-03-03)
- Final WAAPI styles are always committed synchronously to prevent flashes of incorrect styles in Firefox. (12.34.5) — [release notes](https://github.com/motiondivision/motion/blob/ce1d08291ad14d31467f5fdd9ec1507853ca64cc/CHANGELOG.md#12345-2026-03-03)
