Built for virtual lists
Hit-testing and drop positions are computed from geometry, not from sibling DOM nodes, so drops land correctly on rows that are not rendered.
ngx-virtual-dnd
Sortable lists and boards for Angular that stay fast with thousands of items. Only the visible rows are rendered, and drag and drop still works across all of them.
npm i ngx-virtual-dndHit-testing and drop positions are computed from geometry, not from sibling DOM nodes, so drops land correctly on rows that are not rendered.
Rows are measured with ResizeObserver and cached by ID. Lookups use prefix sums and binary search.
Move items between any lists in the same group, with edge auto-scroll while dragging.
Space to pick up, arrow keys to move, Escape to cancel. Touch drags support a hold delay so lists still scroll.
Standalone components and directives for Angular 21 and 22. Drop events plus small helpers update your signal-based state.
An installable agent skill and llms.txt give coding assistants the same guidance as these docs.
Quick look
Only the rows on screen are in the DOM. Drops arrive as events, and a helper applies them to your signal.
vdndGroup element so every draggable finds its group.reorderItems() applies the move to your signal.