Drag and drop sans the GUI


stars 🌟issues ⚠️updated 🛠created 🐣size 🏋️‍♀️
15,978259Jun 17, 2021Oct 19, 2014Minified + gzip package size for @mattkrick/dnd-core in KB


npm package Build Status Test Coverage


Drag and drop sans the GUI.

This is a clean implementation of drag and drop primitives that does not depend on the browser. It powers React DnD internally.


To give you a better idea:

  • There is no DOM here
  • We let you define drop target and drag source logic
  • We let you supply custom underlying implementations (console, DOM via jQuery, React, React Native, whatever)
  • We manage drag source and drop target interaction

This was written to support some rather complicated scenarios that were too hard to implement in React DnD due to its current architecture:

As it turns out, these problems are much easier to solve when DOM is thrown out of the window.

What's the API like?

Tests should give you some idea. You register drag sources and drop targets, hook up a backend (you can use barebones TestBackend or implement a fancy real one yourself), and your drag sources and drop targets magically begin to interact.

If you find any bugs or have a feature request, please open an issue on github!

The npm package download data comes from npm's download counts api and package details come from npms.io.