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
·
taye avatar

taye/interact.js

0
View on GitHub↗
12,913 stars·806 forks·TypeScript·MIT·6 viewsinteractjs.io↗

Interact.js

interact.js is a JavaScript interaction library used to implement drag and drop, resizing, and multi-touch gestures within web browsers. It provides a specialized interaction framework for scalable vector graphics, allowing these elements to be moved and resized.

The library features a multi-touch gesture engine that recognizes complex patterns such as pinch and rotate, and a coordinate snapping engine for aligning elements to grids or restricting movement within boundaries. It also includes a cross-frame state synchronizer to share interaction states and input events across multiple browser windows or embedded frames.

The project covers broad capability areas including motion physics for inertia-based velocity calculations and input normalization to unify mouse and touch events across browsers. Additional functionality includes coordinate-based state tracking and quantized snapping to align positions and sizes to predefined intervals.

Features

  • Drag and Drop - Provides a comprehensive framework for implementing drag-and-drop interfaces with support for inertia and boundaries.
  • Interactive Element Dragging - Enables moving elements across a screen with support for snapping and inertia.
  • Interactive SVG Elements - Provides specialized tools to make SVG elements interactive through drag and resize capabilities.
  • Drag and Drop Libraries - Provides a specialized library for implementing drag-and-drop, resizing, and multi-touch gestures in the browser.
  • Movement Constraints - Applies restrictions to element movement, including axis locking and boundary clamping.
  • Input Normalization Utilities - Unifies disparate mouse and touch pointer events into a consistent coordinate stream for cross-browser compatibility.
  • Element Resizers - Provides utilities for interactively updating the bounding box dimensions of web elements.
  • Grid Snapping - Aligns element positions and sizes to configurable grid increments during interactive movement or resizing.
  • Interaction Coordinate Snapping - Provides a mechanism for aligning moving elements to grids or restricting movement boundaries.
  • Multi-Touch Gesture Detections - Recognizes complex multi-touch patterns including pinch and rotate for web applications.
  • Multi-Touch Gesture Systems - Processes simultaneous multi-finger inputs to recognize complex patterns like pinch and rotate.
  • Boundary Constraints - Implements logic to restrict the movement of elements within defined containers or viewport areas.
  • Event Normalizers - Translates native browser mouse and touch events into a unified internal coordinate system.
  • Resize Mapping Logic - Provides logic that translates interactions on specific element perimeters into dimensional changes.
  • Inertia Calculations - Computes movement decay based on input velocity to simulate natural physical momentum and smooth sliding.
  • Spatial State Tracking - Tracks real-time X and Y coordinates of elements to maintain an accurate internal state of position and size.
  • Coordinate Quantization - Rounds raw interaction coordinates to predefined intervals to ensure precise alignment of UI components.
  • Cross-Frame Interaction Synchronization - Shares real-time interaction states and input events across multiple browser windows or embedded frames.
  • Mobile Web Libraries - Library for drag, drop, and multi-touch gesture interactions.

Star history

Star history chart for taye/interact.jsStar history chart for taye/interact.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 Interact.js

Similar open-source projects, ranked by how many features they share with Interact.js.
  • 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
  • desandro/draggabillydesandro avatar

    desandro/draggabilly

    3,871View on GitHub↗

    Draggabilly is a JavaScript drag and drop library used to make DOM elements draggable on desktop and mobile. It serves as a coordinate-based UI tool and interaction library for tracking and setting the horizontal and vertical positions of interface elements during user interaction. The library provides a mobile-ready touch handler that converts mouse and touch movements into element translation. It includes specialized capabilities for restricting movement to specific axes or container boundaries and implements grid snapping to align elements to a predefined pixel grid. The tool manages the

    JavaScript
    View on GitHub↗3,871
  • northwoodssoftware/gojsNorthwoodsSoftware avatar

    NorthwoodsSoftware/GoJS

    8,447View on GitHub↗

    GoJS is a JavaScript diagramming library and canvas-based visualization engine used to build interactive flowcharts, organizational charts, and network diagrams. It functions as a data-driven framework that binds JavaScript data models to visual elements, enabling bidirectional synchronization between the underlying data and the graphical representation. The library features a comprehensive graph layout engine capable of automatically arranging nodes into trees, grids, circles, or force-directed layouts. It distinguishes itself through a template-based system for generating visual parts and a

    HTMLcanvaschartcharts
    View on GitHub↗8,447
  • daybrush/moveabledaybrush avatar

    daybrush/moveable

    10,720View on GitHub↗

    Moveable! Draggable! Resizable! Scalable! Rotatable! Warpable! Pinchable! Groupable! Snappable!

    TypeScriptdraggablegroupablemovable
    View on GitHub↗10,720
See all 30 alternatives to Interact.js→

Frequently asked questions

What does taye/interact.js do?

interact.js is a JavaScript interaction library used to implement drag and drop, resizing, and multi-touch gestures within web browsers. It provides a specialized interaction framework for scalable vector graphics, allowing these elements to be moved and resized.

What are the main features of taye/interact.js?

The main features of taye/interact.js are: Drag and Drop, Interactive Element Dragging, Interactive SVG Elements, Drag and Drop Libraries, Movement Constraints, Input Normalization Utilities, Element Resizers, Grid Snapping.

What are some open-source alternatives to taye/interact.js?

Open-source alternatives to taye/interact.js include: react-grid-layout/react-draggable — react-draggable is a drag and drop library and coordinate-based position manager for React. It functions as a… desandro/draggabilly — Draggabilly is a JavaScript drag and drop library used to make DOM elements draggable on desktop and mobile. It serves… northwoodssoftware/gojs — GoJS is a JavaScript diagramming library and canvas-based visualization engine used to build interactive flowcharts,… daybrush/moveable — Moveable! Draggable! Resizable! Scalable! Rotatable! Warpable! Pinchable! Groupable! Snappable! mzabriskie/react-draggable — react-draggable is a UI interaction library that provides core primitives and components for adding tactile movement… ksylvest/jquery-gridly — This project is a jQuery plugin designed for creating responsive grid interfaces that support interactive…