‚̧Nepotistic Pontifex Maximus
    Wondering what‚Äôs next for npm?Check out our public roadmap! ¬Ľ

    react-use-gesture
    TypeScript icon, indicating that this package has built-in type declarations

    8.0.1¬†‚Äʬ†Public¬†‚Äʬ†Published

    React UseGesture

    npm (tag) npm bundle size NPM Travis (.org) branch Discord Shield

    React UseGesture is a hook that lets you bind richer mouse and touch events to any component or view. With the data you receive, it becomes trivial to set up gestures, and often takes no more than a few lines of code.

    You can use it stand-alone, but to make the most of it you should combine it with an animation library like react-spring, though you can most certainly use any other.

    The demos are real click them!

    Installation

    #Yarn 
    yarn add react-use-gesture
     
    #NPM 
    npm install react-use-gesture

    Full documentation website

    Simple example

    import { useSpring, animated } from 'react-spring'
    import { useDrag } from 'react-use-gesture'
     
    function PullRelease() {
      const [{ x, y }, set] = useSpring(() => ({ x: 0, y: 0 }))
     
      // Set the drag hook and define component movement based on gesture data
      const bind = useDrag(({ down, movement: [mx, my] }) => {
        set({ x: down ? mx : 0, y: down ? my : 0 })
      })
     
      // Bind it to a component
      return <animated.div {...bind()} style={{ x, y, touchAction: 'none' }} />

    The example above makes a div draggable so that it follows your mouse on drag, and returns to its initial position on release.

    Make sure you always set touchAction on a draggable element to prevent glitches with the browser native scrolling on touch devices.

    Available hooks

    React-use-gesture exports several hooks that can handle different gestures:

    Hook Description
    useDrag Handles the drag gesture
    useMove Handles mouse move events
    useHover Handles mouse enter and mouse leave events
    useScroll Handles scroll events
    useWheel Handles wheel events
    usePinch Handles the pinch gesture
    useGesture Handles multiple gestures in one hook

    More on the full documentation website...

    Install

    npm i [email protected]

    Version

    8.0.1

    License

    MIT

    Unpacked Size

    606 kB

    Total Files

    41

    Last publish

    Collaborators

    • avatar
    • avatar