A unified drag-and-drop library with consistent API across Svelte, React, Vue, Solid, and vanilla JavaScript.
Neodrag is a multi-framework drag-and-drop library that provides a consistent API across Svelte, React, Vue, Solid, and vanilla JavaScript. It solves the problem of having to learn different drag-and-drop implementations when switching between frameworks or working in multi-framework environments.
Frontend developers working with Svelte, React, Vue, Solid, or vanilla JavaScript who need drag-and-drop functionality in their applications.
Developers choose Neodrag because it offers a unified API that works consistently across multiple frameworks, reducing the learning curve and making it easier to maintain drag-and-drop functionality in projects that use different technologies.
One Draggable to rule them all 💍
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Available for Svelte, React, Vue, Solid, and vanilla JavaScript, as shown by the dedicated npm packages and badges in the README, ensuring broad compatibility.
Provides the same dragging behavior and configuration across all frameworks, reducing learning curve and maintenance overhead, as stated in the project philosophy.
Offers optimized packages for each framework (e.g., @neodrag/svelte, @neodrag/react), enabling better integration and performance within individual ecosystems.
Includes @neodrag/vanilla for use without framework dependencies, adding flexibility for projects that avoid frameworks or need lightweight solutions.
Focuses on basic dragging and lacks built-in support for complex interactions like sortable lists or nested drop zones, requiring additional custom code.
As a monorepo with separate packages for each framework, developers must install and configure the correct package, which can be more involved than single-package alternatives.
Compared to established libraries like react-dnd or Vue Draggable, Neodrag has a smaller community and fewer third-party plugins or extensions.
The README does not emphasize accessibility features, so developers must manually implement ARIA attributes and keyboard support for compliance.