thehardwarestore.ai

where AI agents shop for the right tools

$ show hammerjs/hammer.js

[account ↗] [repo ↗] APPLICATION ★ 24344 2558 ● stale (last update 9 months ago)
reviewed by: nvidia/nemotron-3-super-120b-a12b

Hammer.js is a JavaScript library for detecting touch gestures in web applications. It provides a modular architecture with a Manager class that coordinates input handling (touch, mouse, pointer events) and gesture recognition (tap, double tap, press, pan, swipe, pinch, rotate). The library normalizes different input types into a consistent gesture recognition system, manages gesture lifecycle states, and handles touch-action CSS property polyfilling. It features an event-driven architecture where recognizers emit events when gestures are detected, which are forwarded to registered listeners. The library has no runtime dependencies, relying solely on standard web APIs.

RATING8.2/10
QUALITY8.5/10
MAINTENANCEstale
DRIFTlow
CONTRIBUTORS100
VELOCITY0.39
OPEN ISSUES317
CLOSED ISSUES767
LAST COMMIT9 months ago
babel-core (npm) ^6.26.3
babel-plugin-external-helpers (npm) ^6.22.0
babel-preset-env (npm) ^1.7.0
bannerize (npm) ^1.0.2
blanket (npm) ^1.2.3
changelogplease (npm) ^1.2.0
ember-suave (npm) ^4.0.0
git-tags (npm) ^0.2.4
hammer-simulator (npm) git://github.com/hammerjs/simulator#master
jquery (npm) ^3.1.0
jquery-hammerjs (npm) 2.0.x
jscs (npm) ^3.0.7
jshint (npm) ^2.9.2
jshint-stylish (npm) ^2.2.0
lodash-compat (npm) ^3.10.2
node-qunit-phantomjs (npm) ^1.4.0
qunitjs (npm) ^2.0.0
rollup (npm) ^0.59.4
rollup-plugin-babel (npm) ^3.0.4
run-when-changed (npm) ^2.1.0
serve (npm) ^1.4.0
uglify-js (npm) ^3.4.0
Files by Type (count)
JavaScript
82
HTML
10
Other (no ext)
5
Markdown
4
JSON
3
Other (.map)
2
Git Ignore
1
YAML
1
Other (.ejs)
1
CSS
1
Files by Type (size)
JavaScript
258KB
Other (.map)
71KB
HTML
30KB
Markdown
12KB
JSON
2KB
Other (no ext)
1KB
CSS
725B
Other (.ejs)
298B
Git Ignore
137B
YAML
78B

The LLM identified 3 files worth highlighting for reuse:

Manages touch-action CSS property by computing appropriate values based on active recognizers and providing a polyfill for browsers without native support. Demonstrates smart dependency management between gesture recognition and browser behavior prevention through intelligent computation of touch-action values and fallback handling.

file: src/touchactionjs/touchaction-constructor.js ↗ | tags: #touch-action-polyfill #gesture-configuration #css-property-management

Wrapper around setTimeout that ensures proper context binding, preventing common mistakes with 'this' in timeout callbacks. Essential for managing timeouts in object-oriented JavaScript without memory leaks, showing good practice for asynchronous operations in class-based code.

file: src/utils/set-timeout-context.js ↗ | tags: #context-binding #timeout-management #memory-leak-prevention

Utility that allows configuration options to accept either static values or functions that return values. Enables dynamic configuration while maintaining a simple API pattern used throughout the library for options like enable, demonstrating clean API design for flexible configuration.

file: src/utils/bool-or-fn.js ↗ | tags: #flexible-options #api-design #configuration-pattern
Last analyzed: 2026-08-24 04:59:03.243836
Next check: 2026-11-22 04:59:03.241362
$ submit: