Skip to content
Permalink
d84e0a94bb
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Go to file
 
 
Cannot retrieve contributors at this time
3256 lines (1719 sloc) 66.4 KB

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 to animate().

[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 in stagger().

[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() and speed to animate().

Changed

  • "easeIn", "easeOut" and "easeInOut" easing functions are now WAAPI spec-compliant.

Fixed

  • .stop() stops animations permanently.
  • useSpring timing.
  • animate() with repeat: 1 and repeatType "reverse" or "mirror" correctly applies final keyframe.

[10.5.0] 2023-03-16

Added

  • useAnimate() provides a composable way to use animate().

[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() and then() to animations created with animate().

[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 for time instead of timeDelta.

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 and restDelta to useSpring().

[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 with AnimatePresence now throws an error.
  • Using value.onChange will now throw a warning with instructions to change to value.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> to Feature<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 with const 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 and transform 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 within MotionConfig 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 to focus-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's Animation.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 and restDelta defaults for granular spring animations.

[8.5.0] 2023-01-18

Added

  • layoutRoot prop. When component has layout and layoutRoot 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 a useLayoutEffect 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 and sync 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 a MotionValue as children.

[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 between MotionValue 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 in LayoutCamera and LayoutOrthographicCamera 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" a MotionValue to a new value, bypassing active springs, ending current animations and resetting to velocity to 0.

[8.0.4] 2023-01-02

Fixed

  • Cleaning up animations when a MotionValue has no active "change" subscribers.
  • Changing useMotionValueEvent subscription to useInsertionEffect.

[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 accepts PointerEvent only.

[7.10.3] 2022-12-20

Changed

  • Firing animateChanges in useLayoutEffect rather than useEffect 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 to MotionValue.
  • "animationStart", "animationComplete", "animationCancel" and "change" events for MotionValue.
  • 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 and framesync 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 in 3.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 (affects useSpring).

[7.6.16] 2022-12-01

Fixed

  • Fixing useOnChange to resubscribe when provided a new motion value (affects useSpring).

[7.6.15] 2022-11-28

Fixed

  • Rounding tree scale to 1 to prevent unnecessary scale 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 to class 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 use useEffect instead of useLayoutEffect.

[7.6.1] 2022-10-18

Fixed

  • Exporting CycleState and Cycle types.

[7.6.0] 2022-10-18

Added

  • delay(): An alternative to window.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 from animate, while also being removed from initial, it won't animate back to the originally-defined value.

[7.5.2] 2022-10-04

Fixed

  • Gracefully handle undefined values in values 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 passes delta 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 provided null.

[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 a motion 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 new mode="popLayout" prop will "pop" exiting elements from the document layout flow, allowing sibling layout elements to animate to their new layout as soon as exiting starts.

Deprecated

  • exitBeforeEnter - replace with mode="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 the will-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's useId.

[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 in useTransform.

Update

  • style-value-types@5.1.0

[6.5.1] 2022-07-14