awesome-repositories.com
Blog
MCP
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectMCP serverAboutHow we rankPress
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
pmndrs avatar

pmndrs/use-gesture

0
View on GitHub↗
9,618 stars·331 forks·TypeScript·MIT·23 viewsuse-gesture.netlify.app↗

Use Gesture

use-gesture is a JavaScript gesture manager and interaction tool designed to detect and process user input patterns. It functions as a React gesture hook library and a general utility for tracking screen coordinates and movement patterns to drive interactive component behaviors.

The library specializes in capturing complex mouse and touch interactions, including dragging, pinching, swiping, and scrolling. It provides a system for implementing drag and drop functionality and pinch-to-zoom interactions.

The tool covers the development of interactive UI components by normalizing diverse input events into a unified format. It manages the detection of custom input patterns and the integration of touch gestures for both React and vanilla JavaScript applications.

Features

  • Gesture Interaction Libraries - Provides a comprehensive system for capturing and processing pointer-based interactions like dragging, panning, and tapping.
  • Touch and Mouse Events - Offers utilities for tracking touch, swipe, and mouse interactions to drive interactive UI behaviors.
  • Drag and Drop Libraries - Implements the interaction logic required to move elements across a screen and handle their release.
  • Gesture Interaction Hooks - Provides specialized React hooks for detecting and responding to complex input gestures like dragging and swiping.
  • Interaction Detection - Tracks and responds to specific user input patterns including hovering, pinching, and scrolling.
  • Multi-Touch Tracking Systems - Maintains registries of active touch points to reconcile multiple concurrent identifiers for pinch and zoom.
  • Touch Gesture Libraries - Provides a library of event listeners that translate raw touch inputs into recognizable gestures like pinch and swipe.
  • Event Normalizers - Standardizes diverse mouse and touch events into a unified object format for cross-browser consistency.
  • Gesture Management Libraries - Acts as a comprehensive manager for detecting and processing user input patterns in JavaScript and React.
  • Gesture State Machines - Uses an internal state machine to track active gesture phases from start to completion across frames.
  • State-Driven Callbacks - Triggers user-defined callback functions when gestures reach specific phases or state thresholds.
  • Offset Calculators - Provides logic for calculating distance offsets from reference points to enable smooth element positioning.
  • Input Pattern Detectors - Detects specific hovering, pinching, and scrolling patterns to trigger custom animations and logic.
  • Interactive UI Components - Enables the creation of UI components that respond dynamically to complex mouse and touch movements.
  • Coordinate Space Mapping - Translates raw screen coordinates into relative offsets based on the bounding box of targeted elements.
  • Data Visualization Libraries - Utility for mouse and touch gestures in React.

Star history

Star history chart for pmndrs/use-gestureStar history chart for pmndrs/use-gesture

How this analysis was created: This summary and feature list are AI-generated from collected project material and can contain mistakes. Stars, license and language are imported from GitHub. Inclusion does not mean that we have tested or audited this project. Check the source documentation for any feature you depend on. Learn more on our About page.

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI

Projects sharing features with Use Gesture

These projects share indexed features with Use Gesture. Shared tags can include platform or build tooling; verify the primary use case before treating a result as a replacement.
  • shopify/draggableShopify avatar

    Shopify/draggable

    18,457View on GitHub↗

    Draggable is a JavaScript library for implementing draggable elements and sortable lists within a web browser. It provides a functional toolset for creating accessible drag and drop interfaces and a mechanism for dynamically swapping, sorting, and reordering HTML elements in real time. The library features a cross-input interaction layer that unifies mouse, touch, and force-touch events into a single stream for consistent behavior across different devices. It specifically includes tools for providing screen reader feedback and assistive technology support to ensure drag operations are accessi

    JavaScriptdrag-and-dropdraggablees6
    View on GitHub↗18,457
  • react-grid-layout/react-draggablereact-grid-layout avatar

    react-grid-layout/react-draggable

    9,292View on GitHub↗

    react-draggable is a drag and drop library and coordinate-based position manager for React. It functions as a component wrapper that adds draggable behavior to user interface elements, enabling them to be moved via mouse or touch interactions. The library provides touch-enabled interaction tools that unify pointer events across desktop browsers and touch screen devices. It utilizes CSS transforms to handle element movement and coordinate tracking. The system covers movement constraints such as axis restriction and boundary clamping to confine elements within specific areas. It includes posit

    JavaScript
    View on GitHub↗9,292
  • mzabriskie/react-draggablemzabriskie avatar

    mzabriskie/react-draggable

    9,289View on GitHub↗

    react-draggable is a UI interaction library that provides core primitives and components for adding tactile movement and coordinate-based positioning to web elements. It serves as a tool for making user interface elements movable via mouse or touch interactions within React applications. The library supports the implementation of custom drag handles, allowing the initiation of movement to be restricted to specific child elements identified by CSS selectors. It also provides programmatic drag state management, enabling developers to control element positioning or use callbacks for movement wit

    JavaScript
    View on GitHub↗9,289
  • rubaxa/sortableRubaXa avatar

    RubaXa/Sortable

    31,135View on GitHub↗

    Sortable is a JavaScript drag and drop library used to create reorderable lists of HTML elements. It is a framework-agnostic tool and a touch-enabled interaction library that functions across modern browsers and touch devices without dependencies on specific web frameworks. The library enables the movement and cloning of elements between different containers using shared group configurations. It supports the repositioning of multiple items simultaneously and the use of specific drag handles to restrict which areas of an element trigger a move. Additional capabilities include programmatic sor

    JavaScript
    View on GitHub↗31,135
Compare all 30 related projects→

Frequently asked questions

What does pmndrs/use-gesture do?

use-gesture is a JavaScript gesture manager and interaction tool designed to detect and process user input patterns. It functions as a React gesture hook library and a general utility for tracking screen coordinates and movement patterns to drive interactive component behaviors.

What are the main features of pmndrs/use-gesture?

The main features of pmndrs/use-gesture are: Gesture Interaction Libraries, Touch and Mouse Events, Drag and Drop Libraries, Gesture Interaction Hooks, Interaction Detection, Multi-Touch Tracking Systems, Touch Gesture Libraries, Event Normalizers.

Which projects share features with pmndrs/use-gesture?

Projects with overlapping indexed features include: shopify/draggable — Draggable is a JavaScript library for implementing draggable elements and sortable lists within a web browser. It… react-grid-layout/react-draggable — react-draggable is a drag and drop library and coordinate-based position manager for React. It functions as a… mzabriskie/react-draggable — react-draggable is a UI interaction library that provides core primitives and components for adding tactile movement… rubaxa/sortable — Sortable is a JavaScript drag and drop library used to create reorderable lists of HTML elements. It is a… taye/interact.js — interact.js is a JavaScript interaction library used to implement drag and drop, resizing, and multi-touch gestures… fangwei716/30-days-of-react-native — This project is a collection of practical implementation examples and demonstrations for building mobile applications…