Sortable is a JavaScript library for reorderable drag-and-drop lists that works on modern browsers and touch devices without requiring jQuery or a framework.
The library solves the problem of enabling intuitive list reordering through drag-and-drop interactions. It builds on the native HTML5 drag and drop API to provide smooth, animated reordering within a single list or across multiple lists. The approach supports both mouse and touch input, includes smart auto-scrolling and advanced swap detection, and allows customization through options like drag handles and CSS animations.
Developers should choose this tool if they need drag-and-drop functionality without framework dependencies or the overhead of jQuery. It suits projects ranging from simple reorderable lists to complex multi-list interfaces with cross-list dragging. The library works with any CSS framework and integrates with popular frameworks including Angular, React, Vue, Ember, Knockout, and Polymer through dedicated bindings. The core library remains framework-agnostic, making it suitable for vanilla JavaScript projects or as a foundation for framework-specific wrappers.
The project maintains active development with continuous integration testing and code quality monitoring. The codebase includes TypeScript definitions for type-safe usage in TypeScript projects. The library supports plugins for extended functionality, such as multi-drag capabilities, allowing developers to add features beyond the core reordering behavior. Documentation includes detailed articles on advanced features like dragging multiple items and swap threshold configuration, providing guidance for implementing sophisticated drag-and-drop interactions.