LogoLogo
ExamplesExperimentalCommunityGithub
  • Overview
  • Introduction
    • Installation
    • Quick start
  • API Documentation
    • DndContext
      • Collision detection algorithms
      • useDndContext
      • useDndMonitor
    • Droppable
      • useDroppable
    • Draggable
      • useDraggable
      • Drag Overlay
    • Sensors
      • Pointer
      • Mouse
      • Touch
      • Keyboard
    • Modifiers
  • Presets
    • Sortable
      • Sortable Context
      • useSortable
  • Guides
    • Accessibility
Powered by GitBook
On this page
  • Packages
  • Core library
  • Modifiers
  • Presets
  • Development releases
Edit on Git
  1. Introduction

Installation

Last updated 2 years ago

To get started with @dnd-kit, install the core library via npm or yarn:

npm install @dnd-kit/core

You'll also need to be make sure you have peer dependencies installed. Chances are you already have react and react-dom installed in your project, but if not, make sure to install them:

npm install react react-dom

Packages

@dnd-kit is a . Depending on your needs, you may also want to install other sub-packages that are available under the @dnd-kit namespace.

Core library

In order to keep the core of the library small, @dnd-kit/core only ships with the main building blocks that the majority of users will need most of the time for building drag and drop experiences:

  • Hooks for:

  • Sensors for:

Modifiers

Modifiers let you dynamically modify the movement coordinates that are detected by sensors. They can be used for a wide range of use cases, for example:

  • Restricting motion to a single axis

  • Restricting motion to the draggable node container's bounding rectangle

  • Restricting motion to the draggable node's scroll container bounding rectangle

  • Applying resistance or clamping the motion

To start using modifiers, install the modifiers package via yarn or npm:

npm install @dnd-kit/modifiers

Presets

The @dnd-kit/core package provides all the building blocks you would need to build a sortable interface from scratch should you choose to, but thankfully you don't need to.

If you plan on building a sortable interface, we highly recommend you try out @dnd-kit/sortable, which is a small layer built on top of @dnd-kit/core and optimized for building silky smooth, flexible, and accessible sortable interfaces.

npm install @dnd-kit/sortable

Development releases

Each commit merged into the @dnd-kit main branch will trigger a development build to be released to npm under the next tag.

To try a development release before the official release, install each @dnd-kit package you intend to use with the @nexttag

npm install @dnd-kit/core@next @dnd-kit/sortable@next

Development releases can be unstable, we recommend you lock to a specific development release if you intend to use them in production.

The modifiers repository contains a number of useful modifiers that can be applied on as well as .

monorepo
Context provider
Draggable
Droppable
Drag Overlay
Pointer
Mouse
Touch
Keyboard
Accessibility features
DndContext
DraggableClone
Sortable