awesome-repositories.com
Blog
awesome-repositories.com

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

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectAboutHow we rankPressMCP server
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
·
hammerjs avatar

hammerjs/hammer.js

0
View on GitHub↗
24,356 stars·2,574 forks·JavaScript·MIT·9 viewshammerjs.github.io↗

Hammer.js

Hammer.js is a library for recognizing touch gestures in web applications. It functions as a unified interface that translates raw pointer, mouse, and touch inputs into a consistent stream of interaction data, allowing developers to detect patterns such as taps, swipes, and pans across different browsers and hardware.

The library distinguishes itself through a modular architecture that uses configurable logic blocks to evaluate input streams against specific mathematical thresholds. It maintains an internal registry of active touch points to track complex multi-finger movements like pinching and rotating, while a state machine manages the lifecycle of these interactions to determine when a gesture is successfully completed.

Beyond standard interactions, the library supports custom gesture handling and event delegation through the document object model. It provides a comprehensive set of event handlers that abstract away inconsistent input behaviors, enabling the creation of responsive interfaces that interpret finger movements on touch-enabled devices.

Features

  • Touch Gesture Recognition Libraries - Adds support for complex touch interactions like swipes, pinches, and taps to web applications to improve mobile user experience.
  • Touch Gesture Detectors - Detects touch gestures on interface elements by listening for taps, swipes, and pans while configuring specific settings to match user interaction patterns.
  • Input Normalization Utilities - Translates disparate pointer, mouse, and touch events into a unified stream of interaction data for consistent gesture processing.
  • Touch Gesture Libraries - Translates raw pointer and touch inputs into recognizable interaction patterns like swipes and taps.
  • Gesture Recognition Engines - Provides modular logic blocks that evaluate raw input streams against mathematical thresholds to identify distinct user interaction patterns.
  • Mobile Web Interaction Libraries - Builds responsive interfaces that feel natural on touch-enabled devices by capturing and interpreting finger movements on the screen.
  • Interaction and Gestures - Multi-touch gesture recognition library.
  • User Interface Components - Handles multi-touch gestures in web applications.
  • Cross-Browser Input Abstractions - Provides a unified interface that abstracts away inconsistent touch and mouse event behaviors across different browsers and mobile operating systems.
  • Multi-Touch Tracking Systems - Maintains an internal registry of active touch points to calculate complex multi-finger movements like pinching and rotating.
  • Cross-Device Input Handlers - Standardizes touch and pointer event handling across different browsers and hardware to ensure consistent behavior for all users.
  • Pointer Event Abstractions - Maps complex multi-touch sequences into simplified, high-level interaction events for web-based user interfaces.
  • Custom Interaction Patterns - Creates unique input patterns for web applications that require specific touch sequences beyond standard click or scroll events.
  • Interaction State Machines - Tracks the lifecycle of user interactions through discrete states to determine when a specific gesture pattern is successfully completed.

Star history

Star history chart for hammerjs/hammer.jsStar history chart for hammerjs/hammer.js

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

Open-source alternatives to Hammer.js

Similar open-source projects, ranked by how many features they share with Hammer.js.
  • dcloudio/muidcloudio avatar

    dcloudio/mui

    13,474View on GitHub↗

    mui is a mobile UI component framework and native-like web UI kit designed for building high-performance mobile web interfaces. It functions as a mobile web performance framework and gesture-based interface library to eliminate browser lag and mimic the behaviors and animations of native mobile applications. The framework focuses on implementing common mobile UX patterns, including pull-to-refresh functionality, swipe-to-action menus, and sliding side navigation. It provides specialized tools for gesture-driven interface development to ensure an immediate visual response to touch interactions

    JavaScriptandroidcssdcloud
    View on GitHub↗13,474
  • chrisbanes/photoviewchrisbanes avatar

    chrisbanes/PhotoView

    18,824View on GitHub↗

    PhotoView is a custom Android view implementation designed to display high-resolution images with native support for zoom and pan gestures. It provides a zoomable image view and a matrix controller to manage how images are scaled and translated within a mobile user interface. The library handles the detection of pinch-to-zoom and tap gestures to enable interactive image navigation. It manages the transformation matrix of the image to ensure smooth magnification and provides viewport constraints to align photo edges with screen boundaries. The project covers the broader requirements of mobile

    Java
    View on GitHub↗18,824
  • yalantis/phoenixYalantis avatar

    Yalantis/Phoenix

    3,975View on GitHub↗

    Phoenix is a JavaScript gesture library and mobile-first interaction toolset designed to manage touch events and scroll behaviors in web-based interfaces. Its primary purpose is to provide a pull-to-refresh UI component that triggers data updates when a user pulls down on a mobile or web view. The library focuses on mobile web interaction design, providing themed animations and visual indicators that mimic native mobile app gestures. It enables the implementation of dynamic data refresh workflows through a downward drag interaction. The project covers the interception of scroll events and th

    Javaandroidanimationjava
    View on GitHub↗3,975
  • pmndrs/use-gesturepmndrs avatar

    pmndrs/use-gesture

    9,618View on GitHub↗

    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 e

    TypeScript
    View on GitHub↗9,618
See all 30 alternatives to Hammer.js→

Frequently asked questions

What does hammerjs/hammer.js do?

Hammer.js is a library for recognizing touch gestures in web applications. It functions as a unified interface that translates raw pointer, mouse, and touch inputs into a consistent stream of interaction data, allowing developers to detect patterns such as taps, swipes, and pans across different browsers and hardware.

What are the main features of hammerjs/hammer.js?

The main features of hammerjs/hammer.js are: Touch Gesture Recognition Libraries, Touch Gesture Detectors, Input Normalization Utilities, Touch Gesture Libraries, Gesture Recognition Engines, Mobile Web Interaction Libraries, Interaction and Gestures, User Interface Components.

What are some open-source alternatives to hammerjs/hammer.js?

Open-source alternatives to hammerjs/hammer.js include: dcloudio/mui — mui is a mobile UI component framework and native-like web UI kit designed for building high-performance mobile web… chrisbanes/photoview — PhotoView is a custom Android view implementation designed to display high-resolution images with native support for… yalantis/phoenix — Phoenix is a JavaScript gesture library and mobile-first interaction toolset designed to manage touch events and… pmndrs/use-gesture — use-gesture is a JavaScript gesture manager and interaction tool designed to detect and process user input patterns.… react-grid-layout/react-draggable — react-draggable is a drag and drop library and coordinate-based position manager for React. It functions as a… bevacqua/dragula — Dragula is a JavaScript drag and drop library and DOM element manipulator used to move and reorder HTML elements…