React Flip Move screenshot

React Flip Move

Author Avatar Theme by Joshwcomeau
Updated: 2 Dec 2022
4124 Stars

Effortless animation between DOM changes (eg. list reordering) using the FLIP technique.

Categories

Overview:

React Flip Move is a module designed to address the commonly encountered challenge of animating a list of items when the order of the list changes. Traditional CSS transitions are limited to CSS properties, which poses a problem when the items in the list are shuffled and rearranged without the use of CSS. Flip Move exploits the FLIP technique to simulate the transition using hardware-accelerated CSS transforms, achieving smooth animations even when the DOM nodes are repositioned.

Features:

  • Exclusive Use of Hardware-Accelerated CSS Properties: Harnesses transform: translate for superior performance compared to positioning properties like top or left.
  • Full Support for Enter/Exit Animations: Offers various presets for smooth animations using CSS properties.
  • Transitions Humanization: Allows for customizing delays and durations of animations to create a more natural flow.
  • Callback Support: Enables the integration of onStart and onFinish callbacks.
  • Compatibility: Designed to work seamlessly with Preact and other React-like libraries.
  • Lightweight: Compact gzipped size of less than 5kb for quick loading.

Installation:

To install React Flip Move using npm:

npm install react-flip-move

or using yarn:

yarn add react-flip-move

For users not utilizing JS package managers, UMD builds are available for download:

To include a UMD build, use <script> tags in your HTML document.

Summary:

React Flip Move is a valuable tool for incorporating dynamic animations into lists of items within a React application. By utilizing hardware-accelerated CSS transforms and various presets, it offers a seamless solution for animating changes in the order of items with ease. Despite the module seeking maintainers and not being actively developed, it continues to provide a reliable solution for developers looking to enhance the user experience through smooth transitions in their applications.