Add drag-and-drop to a React component so it follows the mouse and snaps back to its original position on release.
Build a pinch-to-zoom image viewer using the usePinch hook combined with a spring animation library.
Create scroll-linked interactive effects tied to page scroll position using useWheel or useScroll.
Add precise hover state tracking with mouse coordinates to an interactive canvas or data visualization.
Install via npm, works standalone but pair with react-spring for smooth animated results.
This is a JavaScript library that makes it easy to detect and respond to mouse and touch gestures on elements in a web page. Gestures include dragging, pinching, scrolling, hovering, and wheel movements. The library gives you clean, detailed data about each gesture so you can write interactive effects in just a few lines of code. It works with React, where it provides a set of hooks (small reusable functions that plug into React components), and also with plain JavaScript for projects that do not use React. The README includes simple examples showing a draggable box that follows your mouse and snaps back when released. Pairing this library with an animation library like react-spring is recommended for smooth visual results, though it is not required. The available hooks cover specific gesture types individually: useDrag for drag events, usePinch for pinch-to-zoom, useScroll and useWheel for scrolling, useHover for mouse enter and leave, and useGesture for handling multiple gesture types in one place. Installation is a single package install via npm or yarn, with separate packages for the React and vanilla JavaScript versions. Full documentation with details on every option is hosted at use-gesture.netlify.com. The project is part of the Poimandres open-source collective and includes links to several interactive demos built with the library.
← pmndrs on gitmyhub — every repo by this author, as a profile.
Verify against the repo before relying on details.