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

On this page
14.0.0
- 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
13.0.0
- Configuration changed
MotionConfig
The optional @emotion/is-prop-valid dependency is removed. Pass isValidProp to MotionConfig explicitly to keep prop filtering. github.com - 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 - 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
12.0.0
- 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 - 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 - 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 - 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 - 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 - 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 - Signature changed
inView
The inView callback now receives the target element as its first argument. Update callbacks that read their arguments. npmjs.com - 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 - 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
Check your code
These are the changes. To see which of them reach your code, scan a public repository, or have your coding agent call check_code with your manifest or lockfile over MCP. The 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.
Tell your agent what changed since it was trained.
claude mcp add --transport http since https://api.since.dev/mcp