Changelog
Framer Motion adheres to Semantic Versioning.
Undocumented APIs should be considered internal and may change without warning.
[10.10.0] 2023-03-29
Fixed
- Adding
.duration
toanimate()
.
[10.9.4] 2023-03-29
Fixed
- Removing log from
useSpring
.
[10.9.3] 2023-03-29
Fixed
- Improving scroll animation startup time.
[10.9.2] 2023-03-28
Fixed
- Fixing animation scope with animation sequences.
[10.9.1] 2023-03-24
Fixed
- Recalculating and rerendering relative targets when layout is remeasured.
[10.9.0] 2023-03-24
Added
- Animation sequencing.
[10.8.5] 2023-03-22
Fixed
- Fixed use of multiple easing functions with WAAPI animations.
[10.8.4] 2023-03-21
Changed
- Fixing
from
option instagger()
.
[10.8.3] 2023-03-21
Changed
- Fixing
duration: 0
animations never ending.
[10.8.2] 2023-03-21
Changed
- Further loosening
animate()
overloads.
[10.8.1] 2023-03-21
Changed
- Loosening
animate()
overloads.
[10.8.0] 2023-03-21
Added
stagger()
Fixed
- SVG and SVG path types for
animate()
.
[10.7.0] 2023-03-21
Changed
- Default transitions no longer need to be namespaced under
default
.
[10.6.1] 2023-03-20
Fixed
- Complex string types interpolate correctly with WAAPI spring easing.
[10.6.0] 2023-03-17
Added
cancel()
,complete()
andspeed
toanimate()
.
Changed
"easeIn"
,"easeOut"
and"easeInOut"
easing functions are now WAAPI spec-compliant.
Fixed
.stop()
stops animations permanently.useSpring
timing.animate()
withrepeat: 1
andrepeatType
"reverse"
or"mirror"
correctly applies final keyframe.
[10.5.0] 2023-03-16
Added
useAnimate()
provides a composable way to useanimate()
.
[10.4.0] 2023-03-16
Added
animate()
now supports DOM elements and DOM selectors.
[10.3.4] 2023-03-16
Fixed
- Updating README.
[10.3.3] 2023-03-16
Fixed
- Using frame timestamp, when available, to sample time.
[10.3.2] 2023-03-15
Fixed
- Applying target CSS variable at the end of animation.
[10.3.1] 2023-03-14
Fixed
- Fixed
time
Promise
on instant animation.
[10.3.0] 2023-03-14
Added
time
,play()
,pause()
andthen()
to animations created withanimate()
.
[10.2.5] 2023-03-13
Fixed
- Adding de-opt to projection tree when relative target has changed.
[10.2.4] 2023-03-10
Changed
- Refactored
animate
to resolve fortime
instead oftimeDelta
.
Fixed
delay
will now apply to"inertia"
animations.
[10.2.3] 2023-03-07
Fixed
- Unifying
AnimationPlaybackControls
types. - Changing
Feature
type to fix Next build errors.
[10.2.2] 2023-03-07
Fixed
- Restoring
DeprecatedLayoutGroupContext
for legacy Smart Components in Framer.
[10.2.1] 2023-03-07
Fixed
- Passing low
restSpeed
andrestDelta
touseSpring()
.
[10.2.0] 2023-03-07
Added
- Vanilla JS entry point
framer-motion/dom
.
[10.1.0] 2023-03-06
Added
- Frame-batched event handlers. This means external event handlers are now batched on the next animation frame, allowing React to correctly batch state updates.
[10.0.2] 2023-03-05
Fixed
- Fixing "Non-numeric
offset
" error in older browsers.
[10.0.1] 2023-02-27
Changed
- Reducing keyframe pregeneration duration by 75%.
[10.0.0] 2023-02-24
Added
background-color
animations are now hardware accelerated.
Removed
- Removing fallback for
IntersectionObserver
. Use a polyfill for support in older browsers. - Removed
DeprecatedLayoutGroupContext
.
Changed
- Using
exitBeforeEnter
withAnimatePresence
now throws an error. - Using
value.onChange
will now throw a warning with instructions to change tovalue.on("change", callback)
. - Using
AnimateSharedLayout
now throws an error.
Fixed
repeat: Infinity
no longer de-opts from pre-generated WAAPI animations.
[9.1.7] 2023-02-24
Fixed
- Switching
const enum
for types.
[9.1.6] 2023-02-23
Added
- Exporting
scroll
for internal use inside Framer.
[9.1.5] 2023-02-23
Fixed
- Changing
Feature<any>
toFeature<unknown>
.
[9.1.4] 2023-02-23
Fixed
- Fixing types of
useScroll
.
[9.1.3] 2023-02-23
Updated
- Limiting propagation of dirty projection nodes for improved layout animation performance.
[9.1.2] 2023-02-23
Updated
- Replacing
type enum
withconst enum
for smaller bundlesize.
[9.1.1] 2023-02-23
Updated
- Removing external dependencies.
[9.1.0] 2023-02-23
Added
- Hardware acceleration of
clipPath
,filter
andtransform
styles.
[9.0.7] 2023-02-21
Fixed
- Improving types of
color.parse()
.
[9.0.6] 2023-02-21
Added
- Exporting animation types for internal Framer use.
[9.0.5] 2023-02-21
Added
- Adding legacy Popmotion exports for internal Framer use.
[9.0.4] 2023-02-16
Updated
- 25% speed improvement for transform string creation.
[9.0.3] 2023-02-14
Updated
- Refactored
motion
component features to load without React components. - Deprecated fallback behavior for missing
IntersectionObserver
.
[9.0.2] 2023-02-07
Changed
Reorder.Item
no longer throws an error withinMotionConfig strict
.
[9.0.1] 2023-02-02
Removed
- Tap events no longer suspend
tabindex
attribute for the duration of the gesture.
[9.0.0] 2023-02-01
Added
- Tap events are now keyboard accessible.
Changed
whileFocus
only triggers according tofocus-visible
rules.
[8.5.5] 2023-01-30
Fixed
- Ensuring
Animation.cancel()
is called on finished WAAPI animations.
[8.5.4] 2023-01-27
Fixed
- Reducing size of prop filtering.
[8.5.3] 2023-01-26
Fixed
- Manually recording optimised appear
startTime
to fix inaccuracies of Firefox'sAnimation.currentTime
.
[8.5.2] 2023-01-23
Fixed
- Updated optimised appear animations to defer animations until Chrome releases paint holding.
[8.5.1] 2023-01-19
Fixed
- Changed
restSpeed
andrestDelta
defaults for granular spring animations.
[8.5.0] 2023-01-18
Added
layoutRoot
prop. When component haslayout
andlayoutRoot
props, it will perform layout animations instantly but all children will perform layout animations relative to it.
[8.4.7] 2023-01-18
Fixed
- Fixed right-click filtering.
[8.4.6] 2023-01-17
Fixed
- Fixed WAAPI deoptimisation with layout animations.
- Reduced number of animations triggered for components that have gesture event handlers but no corresponding
while-
props.
[8.4.5] 2023-01-17
Fixed
- Only trigger
animateChanges
in auseLayoutEffect
when optimised appear animations are present. - Resync optimised appear handoff animations before cancelling WAAPI animations to ensure seamless visual handoff.
[8.4.4] 2023-01-17
Fixed
- Filtering
values
prop.
[8.4.3] 2023-01-13
Fixed
- When in Reduced Motion mode,
transition
no longer overrides instant transitions.
[8.4.2] 2023-01-11
Fixed
- Events sourced from
pointercancel
no longer being added to pan gesture history.
[8.4.1] 2023-01-11
Fixed
delay
no longer getting doubled with pregenerated WAAPI keyframes.
[8.4.0] 2023-01-10
Added
- Exporting
frameData
andsync
for internal Framer use.
[8.3.4] 2023-01-10
Fixed
- Detection of hex colors with alpha values within complex strings.
[8.3.3] 2023-01-09
Fixed
- Stop filtering
pen
hover events.
[8.3.2] 2023-01-09
Fixed
- Allow
useMotionTemplate
to accept static values.
[8.3.1] 2023-01-09
Fixed
- Memoisation of tap callbacks.
[8.3.0] 2023-01-09
Added
motion
components can accept aMotionValue
aschildren
.
[8.2.4] 2023-01-06
Fixed
- Stop applying scale correction to an element's styles when there's no active projection transform.
[8.2.3] 2023-01-06
Changed
- Improved memoisation of internal event handlers.
[8.2.2] 2023-01-06
Fixed
- Removed ability to trigger animations via
useAnimationControls()
during render lifecycle. This would be a source of silent or subtle errors.
[8.2.1] 2023-01-06
Fixed
- Variant
transition
fixed in Framer Motion 3D.
[8.2.0] 2023-01-06
Added
- Exporting easing functions.
[8.1.9] 2023-01-05
Fixed
- Preventing infinite keyframe pre-generation.
[8.1.8] 2023-01-05
Fixed
- Sampling of animations with delay/repeat settings when interrupting WAAPI animations.
[8.1.7] 2023-01-04
Fixed
- Swapping
style
value betweenMotionValue
and static value.
[8.1.6] 2023-01-04
Fixed
- Minification of
process.env.NODE_ENV
.
[8.1.5] 2023-01-03
Changed
- Display warning in development mode when Reduced Motion is enabled on device.
[8.1.4] 2023-01-03
Fixed
- Ensuring child variant components fire
onAnimationStart
when an animation is triggered by a parent.
[8.1.3] 2023-01-02
Fixed
- Fixed
times
.
[8.1.2] 2023-01-02
Fixed
- Fixed
extends
error inLayoutCamera
andLayoutOrthographicCamera
components.
[8.1.1] 2023-01-02
Fixed
- Fixing error when
Transition.type
is invalid.
[8.1.0] 2023-01-02
Added
MotionValue.jump
can be used to "jump" aMotionValue
to a new value, bypassing active springs, ending current animations and resetting tovelocity
to0
.
[8.0.4] 2023-01-02
Fixed
- Cleaning up animations when a
MotionValue
has no active"change"
subscribers. - Changing
useMotionValueEvent
subscription touseInsertionEffect
.
[8.0.3] 2023-01-02
Fixed
- Use range for tslib dependency.
- Fixing multitouch with drag and pan gestures.
[8.0.2] 2022-12-23
Fixed
- Fixing defaults for hardware-accelerated animations.
[8.0.1] 2022-12-21
Added
- Warning for unhydrated refs passed to
useScroll()
options.
[8.0.0] 2022-12-21
Removed
- Removed polyfilled support for mouse/touch events.
- Removed drag pointerup patch for Safari over
<select />
elements.
Changed
DragControls.start
now acceptsPointerEvent
only.
[7.10.3] 2022-12-20
Changed
- Firing
animateChanges
inuseLayoutEffect
rather thanuseEffect
to ensure optimised appear animations are handed off before paint.
[7.10.2] 2022-12-16
Fixed
- Adding support for all easing functions with WAAPI.
[7.10.1] 2022-12-16
Fixed
- Fixed type inference of
useMotionValueEvent
.
[7.10.0] 2022-12-15
Added
.on()
event method toMotionValue
."animationStart"
,"animationComplete"
,"animationCancel"
and"change"
events forMotionValue
.useMotionValueEvent
helper method for adding events.
[7.9.1] 2022-12-14
Fixed
- Fixing mapping Framer Motion easing names to WAAPI.
[7.9.0] 2022-12-14
Added
- Hardware-accelerated
opacity
animations.
[7.8.1] 2022-12-14
Changed
- Refactored animation pipeline to better accomodate WAAPI.
[7.9.0] 2022-12-14
Added
- Hardware-accelerated
opacity
animations.
[7.8.1] 2022-12-14
Changed
- Refactored animation pipeline to better accommodate WAAPI.
[7.8.0] 2022-12-13
Added
- Added private APIs for starting initial animations before React hydration and handing off to the component after hydration.
[7.7.3] 2022-12-13
Fixed
- Fixed spring effect of
useSpring
.
[7.7.2] 2022-12-12
Removed
- Reduced
??
operators to reduce bundlesize.
[7.7.1] 2022-12-12
Changed
- Removed
style-value-types
andframesync
as external dependencies.
[7.7.0] 2022-12-12
Added
- Added support for
"startOffset"
,"textLength"
and"lengthAdjust"
SVG attributes.
Removed
- Removed ability to define
"inertia"
animation as"decay"
(officially removed in3.0.0
).
Removed
- Removed legacy repeat options (officially removed in
3.0.0
).
[7.6.19] 2022-12-05
Fixed
- Animation of
viewBox
for SVG elements.
[7.6.18] 2022-12-02
Changed
- Removed
popmotion
as external dependency.
[7.6.17] 2022-12-01
Fixed
- Manually firing callback with latest callback when
useOnChange
is provided new motion value (affectsuseSpring
).
[7.6.16] 2022-12-01
Fixed
- Fixing
useOnChange
to resubscribe when provided a new motion value (affectsuseSpring
).
[7.6.15] 2022-11-28
Fixed
- Rounding tree scale to
1
to prevent unnecessaryscale
transforms.
[7.6.14] 2022-11-28
Fixed
- Nothing to see here.
[7.6.12] 2022-11-24
Fixed
isTransformDirty
node skipping logic.
[7.6.11] 2022-11-24
Fixed
- Treat
<motion.svg />
components as HTML.
Updated
- Further layout animation performance enhancements.
[7.6.10] 2022-11-24
Updated
- Removing read of (currently unused)
position
style as it's erroneously breaking a test in Framer.
[7.6.9] 2022-11-22
Updated
- Only updating projection calculations for dirty nodes.
[7.6.8] 2022-11-22
Updated
- Reducing number of scroll reads during layout animations.
[7.6.7] 2022-11-15
Fixed
- Removed instantiation of externally-provided motion values.
[7.6.6] 2022-11-11
Fixed
- Minor layout animation refactors.
[7.6.5] 2022-11-07
Fixed
VisualElement
changed toclass
implementation.- Fixed issue with relative layout animations when switching relative parents.
[7.6.4] 2022-11-01
Fixed
- Updated
buildTransform
types to only expect required arguments.
[7.6.3] 2022-11-01
Added
- Exposing
buildTransform
for internal use.
[7.6.2] 2022-10-27
Added
- Internal option for
useScroll
to useuseEffect
instead ofuseLayoutEffect
.
[7.6.1] 2022-10-18
Fixed
- Exporting
CycleState
andCycle
types.
[7.6.0] 2022-10-18
Added
delay()
: An alternative towindow.setTimeout()
that is locked to the animation framerate.
[7.5.4] 2022-10-17
Fixed
- Fixed bug relative layout animations within rotated layers.
- Fixed bug with
layout="preserve-aspect"
where layers that do change size but aren't moved are reprojected to the old size and stay there.
[7.5.3] 2022-10-04
Fixed
- If the initial style was derived from the
initial
prop, and that style is removed fromanimate
, while also being removed frominitial
, it won't animate back to the originally-defined value.
[7.5.2] 2022-10-04
Fixed
- Gracefully handle
undefined
values invalues
prop.
[7.5.1] 2022-09-30
Fixed
useTransform
correctly cleans up any scheduled animation frames when it unmounts.
[7.5.0] 2022-09-27
Added
useAnimationFrame
now passesdelta
to provided callbacks as the second argument.
[7.4.0] 2022-09-26
Added
- Added internal
values
prop that allows the provision of motion values to use exclusively for performing animations on.
[7.3.6] 2022-09-20
Fixed
- Increasing threshold for what's considered a similar aspect ratio in
"preserve-ratio"
layout animations.
[7.3.5] 2022-09-14
Fixed
isMotionValue
no longer crashing when providednull
.
[7.3.4] 2022-09-13
Fixed
- Run feature detection based on rendered props.
[7.3.3] 2022-09-13
Fixed
- Ensuring children dynamic components re-render when context changes.
[7.3.2] 2022-09-07
Added
isMotionComponent
returns true if the provided component is amotion
component.unwrapMotionComponent
returns the rendered component.
[7.3.1] 2022-09-07
Fixed
- Fixing application of
rotateZ
.
[7.3.0] 2022-09-06
Added
layout="preserve-ratio"
performs a position-only transition if the aspect ratio has changed.
Fixed
layout="position"
now works with shared element transitions.
[7.2.1] 2022-08-23
Added
- Various filesize reductions.
[7.2.0] 2022-08-14
Added
AnimatePresence
's newmode="popLayout"
prop will "pop" exiting elements from the document layout flow, allowing siblinglayout
elements to animate to their new layout as soon as exiting starts.
Deprecated
exitBeforeEnter
- replace withmode="wait"
.
[7.1.2] 2022-08-16
Fixed
- Fixing
useWillChange
export.
[7.1.1] 2022-08-15
Changed
- Upping TypeScript output
target
to"ES6"
.
Updated
typescript@4.7
[7.1.0] 2022-08-11
Added
useWillChange
for automatically managing thewill-change
style.
[7.0.3] 2022-08-11
Fixed
- Trimming CSS vars.
[7.0.2] 2022-08-11
Fixed
- Correctly parsing slash-delimited opacities within colors.
- Exporting types correctly for Typescript 4.7.
[7.0.1] 2022-08-10
Changed
- Replacing internal
useId
with React 18'suseId
.
[7.0.0] 2022-08-04
Updated
react@18
react-three-fiber@8
Fixed
- Drag to reorder items no longer jumping in React 18.
[6.5.2] 2022-07-27
Fixed
- Fix types for
mixer
option inuseTransform
.
Update
style-value-types@5.1.0