The drag-and-drop library that doesn't hold you back.
A modular, high-performance drag-and-drop system built in TypeScript. Sensors, draggables, droppables, and collision detection — all modular, all framework-agnostic, all fast.
Everything you need for world-class drag and drop, nothing you don't.
Pointer, keyboard, or roll your own. Sensors normalize any input into unified drag events, giving you complete control over interactions.
A highly customizable Draggable system with autoscrolling superpowers, drag previews, and position modifiers. Complex scenarios made effortless.
An extendable, cache-optimized collision detection system you can build on. Ships with a visibility-aware detector that handles overflow clipping and scroll containers for you.
Smart defaults get you moving fast. Rich events and extension points give you full control when you need it.
Finally, transformed elements can be dragged normally. Rotate, scale, skew to your heart's content.
Pooled events, batched DOM reads/writes, cached measurements. Performance is built to the core.
Use DragDoll your way.
Install DragDoll and start dragging in minutes.
npm install dragdoll