Skip to content

hesprs/pointeract

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

18 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Modern, lightweight, robust and extensible user interaction resolver

CI Status Test Coverage Code Quality Documentation npm package library security package size Typescript Made by Humans

Introduction β€’ Advantages β€’ Get Started β€’ Features β€’ Comparison β€’ Get Involved β€’ License

What's Pointeract?

Pointeract is a tiny utility library focusing on one thing - handling user interactions with DOM elements. It is fully typed, small, and easy to use. You need to bind your DOM elements, load some modules, and it will start monitoring user interactions and dispatch events like trueClick and pan with data.

It is built in an extensible architecture with base bundle size only 1KB minified + gzipped, functionalities come from also byte-sized modules. It's fully tree-shakable, the fewer modules you use, the smaller your bundle is.

Access our documentation here.

Advantages

  • 🐣 Tiny: With base 1KB minified and gzipped, 1-2KB for normal usage.
  • πŸ’ͺ Robust: Excels at complex gestures where most interaction libraries fail, Why?
  • 🧩 Extensible: Extend Pointeract effortlessly via our module API.
  • πŸ”Œ Flexible during Runtime: Options are updated reactively. Stop/start any module during runtime.
  • πŸ›‘οΈ Safe: Not modifying the DOM (except the PreventDefault module). Meticulous clean up prevents memory leaks.

Get Started

Install Pointeract using your favorite package manager:

# npm
$ npm add pointeract

# pnpm
$ pnpm add pointeract

# yarn
$ yarn add pointeract

# bun
$ bun add pointeract

Or include the following lines directly in your HTML file:

<script type="module">
  import { Pointeract } from 'https://unpkg.com/pointeract/dist/index.js';
</script>

This link ships the latest ESM version by default, to access CJS version or earlier versions, try using a different URL like:

<script src="https://unpkg.com/pointeract@1.0.0/dist/index.cjs"></script>

The link above ships version 1.0.0 in CJS.

Currently Supported Interactions

  • Click (Double Click, Triple Click, Quadruple Click, Any Click)
  • Drag
  • Pan and Zoom via Mouse Wheel (ctrl/shift key binding, touchpad support)
  • Pan and Zoom via Multitouch (Pan, Pinch)

Those interactions are shipped via modules, which can be composed from a single drag-and-drop to a canvas app.

Missing your desired interaction? Write your own module!

How Pointeract Stands Out?

There're already plenty of interaction libraries out there, most famous ones are Interact.js and Hammer.js, but Pointeract is different.

Criteria Pointeract Hammer.js Interact.js
Written in TypeScript? βœ… ❌ βœ…
Tree-shakeable? βœ… ❌ ❌
Bundle Size (Minified + Gzipped) πŸ‘‘ 2KB 7KB 28KB
Last Updated πŸ‘‘ Actively Maintained 2015 2023
Features Pointer and Wheel Related Pointer Related πŸ‘‘ Pointer and Wheel Related + Comprehensive Utils
Robust? (See Testing) βœ… ❌ Element Jerks ❌ Element Ignores the Second Touch
Extensible? βœ… ❌ ❌

Get Involved

This project welcomes anyone that have ideas to improve it.

Copyright and License

Copyright ©️ 2025-2026 Hesprs (HeΜ„sperus) | Apache License 2.0

About

πŸ–±οΈπŸ€ Modern, lightweight, robust and extensible user interaction resolver.

Topics

Resources

License

Security policy

Stars

Watchers

Forks

Contributors 2

  •  
  •