React-use-gesture is a library that focuses on making complex gestures such as drag and pinch easy to configure: in most situations,
onDrag becomes as easy to set up as
onMouseMove. However, you remain in control of the full gesture logic, which allows you to make your components behave exactly the way you want.
A secondary aspect of React-use-gesture is to upgrade gestures with additional kinematics attributes, such as velocity, distance, delta and more, that don't come with native browser events.
React-use-gesture also debounces
move events, which gives you the capacity to trigger logic when the gesture starts or ends out of the box.
Alexandra Holachek gave a great talk at React Conf about Progressive Web Animations, where she explains the principles of her approach on creating native-like UI. Her demos use React-spring and React-use-gesture. Alex's talk strongly influenced some of the features in React-use-gesture.