Sourced from motion's changelog.
[12.40.0] 2026-05-21
Added
pathoption totransition.arc()for motion along an arc.[12.39.0] 2026-05-18
Added
- Support for
repeatTypeandrepeatDelayin animation sequences.Fixed
- Variants: Re-run keyframe animations when switching between variant labels even when they share identical keyframe arrays.
- Drag: Preserve in-flight motion value animations across React 19 reorder unmount/remount so
dragSnapToOriginno longer leaves the drag transform stranded after a layout swap.LazyMotion: Share React contexts between theframer-motionandframer-motion/m(and thereforemotion/reactandmotion/react-m) CJS bundles so that<m.div>from the/msubpath picks up features loaded by<LazyMotion>from the main entry point.useScroll: Support hydratingtargetandcontainerrefs from anywhere in the tree.- Drag: Gesture no longer starts from incorrect start point when rendered inside
<AnimatePresence initial={false} />.- Drag:
dragConstraints, when set as viewport-relative ref, no longer break on scroll.ยง- Updated
visualElementhydration order.useAnimate: Now respectsskipAnimations.AnimatePresence: Fix object-forminitialvalues not applied on re-entry after exit completes.scroll: Fixed callback progress when tracking an element.useScroll: Fix hardware acceleration when tracking an element.
38ebb94
v12.40.0b1f766c
Latestbca5544
Merge pull request #3699
from motiondivision/lochie/arcs-injectablef1a96cf
arc(): rename amp/rotate, expose MotionPath, fix explicit cw/ccwb4aaba0
pathRotation: non-destructive orientToPath rotation channel8604ef3
Make arcs injectable via transition.path = arc()f90fe29
add orientToPath9ebe999
fix: testbc2107e
Revert "no should"6eeb92d
no should