Overview
Modifiers transform the movement of draggable elements during drag operations. They can restrict movement to axes or boundaries, adjust positioning, or implement any custom movement logic.Built-in Modifiers
Abstract Modifiers
Available in@dnd-kit/abstract/modifiers
, these modifiers are environment-agnostic:
RestrictToHorizontalAxis
Constrain movement to the horizontal axis only
RestrictToVerticalAxis
Constrain movement to the vertical axis only
Snap
Snap movement to a grid with configurable size
Modifiers are applied in order, so place restrictions before transformations.
Concrete Modifiers
Environment-specific modifiers for the DOM, available in@dnd-kit/dom/modifiers
:
RestrictToWindow
Constrain movement within the window boundaries
RestrictToElement
Constrain movement within a container element
Usage
Modifiers can be applied globally or per draggable element:Local modifiers on draggable elements take precedence over global modifiers.
Creating Custom Modifiers
Create custom modifiers by extending theModifier
class:
Modifier Lifecycle
-
Construction
- Modifier instance created
- Options configured
-
Application
apply()
called during drag- Transforms coordinates
- Can access drag operation state
-
Cleanup
- Resources cleaned up on destroy
API Reference
Base Modifier Class
Reference to the drag and drop manager instance.
Optional configuration for the modifier.
Methods
apply(operation)
: Transform drag coordinatesenable()
: Enable the modifierdisable()
: Disable the modifierisDisabled()
: Check if modifier is disableddestroy()
: Clean up resources
Static Methods
configure(options)
: Create configured modifier