Modifiers
Transform and constrain drag movement.
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
Example using axis restriction:
Example combining modifiers:
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 the Modifier
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