clauderic/dnd-kit
 Watch    38
 Star    16.7k
 Fork    843

@dnd-kit – the modern toolkit for building drag & drop interfaces

A modern, lightweight, performant, accessible and extensible drag and drop toolkit for the web

Features

  • Framework agnostic core: The architecture is built in layers — a framework-agnostic core (@dnd-kit/abstract), a DOM implementation (@dnd-kit/dom), and thin adapters for your framework of choice.
  • Supports a wide range of use cases: lists, grids, multiple containers, nested contexts, variable sized items, virtualized lists, 2D games, and more.
  • Built-in support for multiple input methods: Pointer, mouse, touch and keyboard sensors.
  • Fully customizable & extensible: Customize every detail — animations, transitions, behaviours, styles. Build your own sensors, collision detection algorithms, customize key bindings and more.
  • Accessibility: Keyboard support, sensible default ARIA attributes, customizable screen reader instructions and live regions built-in.
  • Performance: Built with performance in mind to support silky smooth animations.
  • Sortable: Need to build a sortable interface? Check out @dnd-kit/dom/sortable, a thin layer built on top of the core.

Getting started

Choose your preferred framework to get started:



JavaScript

Vanilla

Build drag and drop interfaces using plain JavaScript


React

React

Build drag and drop interfaces using React components and hooks


Vue

Vue

Build drag and drop interfaces using Vue composables and components


Svelte

Svelte

Build drag and drop interfaces using Svelte primitives and components


SolidJS

Solid

Build drag and drop interfaces using SolidJS hooks and components

Documentation

Visit dndkit.com for full documentation, API reference, guides, and interactive examples.

Packages

Package Version Description
@dnd-kit/abstract npm Abstract core
@dnd-kit/collision npm Collision detection
@dnd-kit/dom npm Framework-agnostic DOM layer
@dnd-kit/geometry npm Geometry utilities
@dnd-kit/helpers npm Helper functions
@dnd-kit/react npm React adapter
@dnd-kit/solid npm SolidJS adapter
@dnd-kit/state npm Reactive state management
@dnd-kit/svelte npm Svelte adapter
@dnd-kit/vue npm Vue adapter

Contributing

This is a monorepo managed with Turborepo and bun.

# Install dependencies
bun install

# Build all packages
bun run build

# Run dev mode
bun run dev

License

MIT

关于
The modern toolkit for building drag and drop interfaces
最后更新于  1 days ago
License