**Headless drag-and-drop for Vue 3.**
No imposed markup. No hard-coded styles. Just logic.
[](https://www.npmjs.com/package/@vue-dnd-kit/core)
[](https://www.npmjs.com/package/@vue-dnd-kit/core)
[](./LICENSE)
[](https://vuejs.org)
[**Documentation**](https://zizigy.github.io/vue-dnd-kit/v2/guide/introduction) · [**Examples**](https://zizigy.github.io/vue-dnd-kit/v2/examples/sorting-lists) · [**Changelog**](./packages/core/CHANGELOG.md)
---
## Features
- **Composable API** — `makeDraggable` and `makeDroppable` attach to any element via a template ref. No wrapper components, no render props.
- **Smart helpers** — `suggestSort`, `suggestSwap`, `suggestCopy`, `suggestRemove` handle positioning and array manipulation, so you never have to write `splice` logic by hand.
- **Multi-drag** — `makeSelectionArea` lets users select multiple items and drag them together. All helpers handle multi-drag natively.
- **Nested zones** — trees, Kanban boards, and nested droppables work out of the box. The library automatically resolves the correct target array based on cursor position.
- **Full preview control** — `DragPreview` exposes a default slot. Wrap it in `