---
title: "framer-motion Breaking Changes on npm | Since.dev"
description: "What each framer-motion release removed, renamed or changed: 13 breaking changes in 3 versions on npm, each with its source."
canonical_url: https://since.dev/packages/npm/framer-motion
last_updated: 2026-10-02
---

# framer-motion breaking changes

Every breaking API change we have recorded in framer-motion on npm: 13 breaking changes in 3 versions. Below are its newest 3 versions, removals and renames first, each with its source.

Newest change October 2, 2026

## 14.0.0

1 breaking change, first published October 2, 2026.

- **Removed**  

Internal APIs restored in 13.5.1 for compatibility with framer-motion 13.0 to 13.4 are removed again. Code that relied on those internal APIs must stop using them. [github.com](https://github.com/motiondivision/motion/blob/v14.0.0/CHANGELOG.md)

## 13.0.0

3 breaking changes, first published August 5, 2026.

- **Configuration changed** `MotionConfig`  

The optional @emotion/is-prop-valid dependency is removed. Pass isValidProp to MotionConfig explicitly to keep prop filtering. [github.com](https://github.com/motiondivision/motion/blob/v13.0.0/CHANGELOG.md)
- **Signature changed** `filterProps`  

Was function filterProps(props: MotionProps, isDom: boolean, forwardMotionProps: boolean): MotionProps; now function filterProps(props: MotionProps, isDom: boolean, forwardMotionProps: boolean, isValidProp?: IsValidProp): MotionProps. [npmjs.com](https://www.npmjs.com/package/framer-motion/v/13.0.0)
- **Signature changed** `MotionConfig`  

Was function MotionConfig({children, isValidProp, ...config}: MotionConfigProps): react_jsx_runtime.JSX.Element; now function MotionConfig({children, ...config}: MotionConfigProps): react_jsx_runtime.JSX.Element. [npmjs.com](https://www.npmjs.com/package/framer-motion/v/13.0.0)

## 12.0.0

9 breaking changes, first published January 20, 2025.

- **Signature changed** `BezierDefinition`  

Was export {BezierDefinition, Easing, EasingDefinition, EasingFunction, EasingModifier, isDragActive} from 'motion-dom'; now export {BezierDefinition, Easing, EasingDefinition, EasingFunction, EasingModifier, hover, isDragActive, press}... [npmjs.com](https://www.npmjs.com/package/framer-motion/v/12.0.0)
- **Signature changed** `Easing`  

Was export {BezierDefinition, Easing, EasingDefinition, EasingFunction, EasingModifier, isDragActive} from 'motion-dom'; now export {BezierDefinition, Easing, EasingDefinition, EasingFunction, EasingModifier, hover, isDragActive, press}... [npmjs.com](https://www.npmjs.com/package/framer-motion/v/12.0.0)
- **Signature changed** `EasingDefinition`  

Was export {BezierDefinition, Easing, EasingDefinition, EasingFunction, EasingModifier, isDragActive} from 'motion-dom'; now export {BezierDefinition, Easing, EasingDefinition, EasingFunction, EasingModifier, hover, isDragActive, press}... [npmjs.com](https://www.npmjs.com/package/framer-motion/v/12.0.0)
- **Signature changed** `EasingFunction`  

Was export {BezierDefinition, Easing, EasingDefinition, EasingFunction, EasingModifier, isDragActive} from 'motion-dom'; now export {BezierDefinition, Easing, EasingDefinition, EasingFunction, EasingModifier, hover, isDragActive, press}... [npmjs.com](https://www.npmjs.com/package/framer-motion/v/12.0.0)
- **Signature changed** `EasingModifier`  

Was export {BezierDefinition, Easing, EasingDefinition, EasingFunction, EasingModifier, isDragActive} from 'motion-dom'; now export {BezierDefinition, Easing, EasingDefinition, EasingFunction, EasingModifier, hover, isDragActive, press}... [npmjs.com](https://www.npmjs.com/package/framer-motion/v/12.0.0)
- **Signature changed** `hover`  

The hover gesture start callback now receives the target element as its first argument. Update callbacks that read their arguments. [github.com](https://github.com/motiondivision/motion/blob/v12.0.0/CHANGELOG.md)
- **Signature changed** `inView`  

The inView callback now receives the target element as its first argument. Update callbacks that read their arguments. [npmjs.com](https://www.npmjs.com/package/framer-motion/v/12.0.0)
- **Signature changed** `isDragActive`  

Was export {BezierDefinition, Easing, EasingDefinition, EasingFunction, EasingModifier, isDragActive} from 'motion-dom'; now export {BezierDefinition, Easing, EasingDefinition, EasingFunction, EasingModifier, hover, isDragActive, press}... [npmjs.com](https://www.npmjs.com/package/framer-motion/v/12.0.0)
- **Signature changed** `press`  

The press gesture start callback now receives the target element as its first argument. Update callbacks that read their arguments. [github.com](https://github.com/motiondivision/motion/blob/v12.0.0/CHANGELOG.md)

## Check your code

These are the changes. To see which of them reach your code, [scan a public repository](https://since.dev/scan.md), or have your coding agent call `check_code` with your manifest or lockfile over [MCP](https://since.dev/docs.md#mcp). [The API](https://since.dev/docs.md#api) reads every change in every version, not only the newest. On Team and up, a fix pull request opens for the changes that reach a connected repository. Nothing merges or deploys.

## Put your code on continuous management.

Scan a public repository now, or give your agent one line.

### See how out of date your code is.

[Scan a repository](https://since.dev/scan.md). Any public GitHub repository. No sign-in.

### Tell your agent what changed since it was trained.

`claude mcp add --transport http since https://api.since.dev/mcp`

---

Every page on this site as Markdown: https://since.dev/sitemap.md. For agents: https://since.dev/llms.txt.
