Overview
The collision detection system:- Runs during drag operations to detect overlaps
- Supports multiple collision algorithms
- Uses priority-based resolution for overlapping collisions
- Allows per-droppable collision configuration
- Provides collision data for custom behaviors
Collision observer
TheCollisionObserver manages collision detection:
- The drag position changes
- Droppable shapes change (resize, scroll, etc.)
- Droppables are added or removed
Collision types
Collision detectors
Collision detectors are functions that determine if a collision occurred:Built-in detectors
dnd-kit provides several collision detection algorithms: Pointer intersection:Collision priority
When multiple droppables collide, priority determines the winner:Priority resolution
Collisions are sorted by:- Priority (descending): Higher priority wins
- Value (descending): Higher value wins if priorities are equal
- Order: First in the list wins if both are equal
Computing collisions
TheCollisionObserver computes collisions automatically, but you can also compute them manually:
Implementation details
Custom collision detectors
You can create custom collision detection algorithms:Distance-based detector example
Collision notifier
TheCollisionNotifier is a core plugin that updates the drag target:
dragOperation.target based on the highest-priority collision.
Using collision data
Access collision information during drag operations:Acceptance rules
Droppables can filter which draggables they accept:Force updates
You can force collision recomputation:- Droppable positions change externally
- You add/remove droppables programmatically
- You need to trigger a manual update
Performance considerations
Caching: The observer caches collision results and only recomputes when position changes. Accessing the same position multiple times uses the cache.
Choosing a detector
Use this guide to choose the right detector:Related
Droppables
Droppable configuration
Custom detectors
Build custom algorithms
Collision algorithms
API reference
Geometry utilities
Spatial calculations