Skip to content

DragDoll

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.

Slide to solve

Built Different

Everything you need for world-class drag and drop, nothing you don't.

Sweet Sensors

Pointer, keyboard, or roll your own. Sensors normalize any input into unified drag events, giving you complete control over interactions.

Dynamic Draggables

A highly customizable Draggable system with autoscrolling superpowers, drag previews, and position modifiers. Complex scenarios made effortless.

Classy Collisions

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.

Dreamy DX

Smart defaults get you moving fast. Rich events and extension points give you full control when you need it.

True Transforms

Finally, transformed elements can be dragged normally. Rotate, scale, skew to your heart's content.

Snappy Swipes

Pooled events, batched DOM reads/writes, cached measurements. Performance is built to the core.

Framework Support

Use DragDoll your way.

Vue
Coming Soon
Svelte
Coming Soon

Ready to build?

Install DragDoll and start dragging in minutes.

npm install dragdoll

DragDoll is released under the MIT License.