# @dnd-kit/abstract

> [![Stable release](https://img.shields.io/npm/v/@dnd-kit/abstract.svg)](https://npm.im/@dnd-kit/abstract)

Latest version **0.5.0** (published 2026-06-11) · MIT license · 0 weekly downloads

## Install

```sh
npm install @dnd-kit/abstract
pnpm add @dnd-kit/abstract
yarn add @dnd-kit/abstract
bun add @dnd-kit/abstract
```

## Health

**Score 55/100 (C)** — status: active.

Positive: no vulnerabilities; high maintenance score; popular repo.

Warnings: low downloads; no types; no esm support; pre 1.0.

## Facts

| | |
|---|---|
| Version | 0.5.0 |
| Published | 2026-06-11 |
| First published | 2024-06-03 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 0 |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 17707 |
| Maintainers | clauderic |

## Links

- npm: https://www.npmjs.com/package/@dnd-kit/abstract
- Repository: https://github.com/clauderic/dnd-kit
- Homepage: https://github.com/clauderic/dnd-kit#readme
- Issues: https://github.com/clauderic/dnd-kit/issues
- npm.io page: https://npm.io/package/@dnd-kit/abstract

## Recent versions

- 0.5.0 (latest) — 2026-06-11
- 0.5.1-beta-20261015120327 (beta) — 2026-10-15
- 0.5.1-beta-20261015120054 — 2026-10-15
- 0.5.1-beta-20261015120225 — 2026-10-15
- 0.5.1-beta-20261015120014 — 2026-10-15
- 0.5.1-beta-20261015115837 — 2026-10-15
- 0.5.1-beta-20261015115628 — 2026-10-15
- 0.5.1-beta-20261015115554 — 2026-10-15
- 0.5.1-beta-20261015115205 — 2026-10-15
- 0.5.1-beta-20260912195958 — 2026-09-12
- 0.5.1-beta-20260905201412 — 2026-09-05
- 0.5.1-beta-20260905153955 — 2026-09-05
- 0.5.1-beta-20260713030121 — 2026-07-13
- 0.5.1-beta-20260706002929 — 2026-07-06
- 0.5.1-beta-20260627143054 — 2026-06-27
- … 432 more at https://npm.io/package/@dnd-kit/abstract/versions

## README

# @dnd-kit/abstract

[![Stable release](https://img.shields.io/npm/v/@dnd-kit/abstract.svg)](https://npm.im/@dnd-kit/abstract)

Abstract implementation of @dnd-kit, which can be extended by concrete implementation layers, such as @dnd-kit/dom.

## Overview

This package provides the core abstractions and utilities for implementing drag and drop functionality. It serves as the foundation for building concrete implementation layers on top of @dnd-kit, such as the [DOM implementation layer](../dom).

> [!NOTE]
> This package is not meant to be used by most consumers, unless you are planning on building a concrete implementation layer on top of @dnd-kit.

## Core Concepts

### Entities

The library defines two main entity types:

- **Draggable**: Represents elements that can be dragged
- **Droppable**: Represents elements that can receive dragged items

### Sensors

Sensors are responsible for detecting and initiating drag operations. They handle user interactions and translate them into drag operations. The library provides:

- Abstract `Sensor` base class
- Support for multiple sensor types
- Custom sensor configuration
- Configurable sensor options

### Collision Detection

The collision system provides:

- Multiple collision detection strategies
- Priority-based collision resolution
- Custom collision detectors
- Collision observation and management

### Plugins

The plugin system allows extending core functionality:

- Plugin-based architecture
- Plugin configuration and descriptors
- Plugin lifecycle management

### Modifiers

Modifiers provide a way to transform or modify drag operations:

- Abstract `Modifier` base class
- Ability to modify coordinates and operations
- Chainable modifier system
- Configurable modifier options

## API

### Core Types

- `DragDropManager`: Manages drag and drop state and operations
- `Draggable`: Interface for draggable elements
- `Droppable`: Interface for droppable elements
- `Plugin`: Base class for plugins
- `Sensor`: Abstract base class for sensors
- `Modifier`: Abstract base class to modify drag operations

## Contributing

This package is part of the dnd-kit monorepo. Please refer to the main repository's [contributing guidelines](/CONTRIBUTING.md) for details on our code of conduct and the process for submitting pull requests.

## License

This package is licensed under the MIT License - see the [LICENSE](/LICENSE) file for details.

---
_Source: https://npm.io/package/@dnd-kit/abstract · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
