30 open-source projects similar to react-dnd/react-dnd, ranked by how many features they have in common. Compare stars, activity and what each one does to find the best React Dnd alternative.
React-dnd is a drag and drop framework and library for React applications. It provides a system of higher-order components and hooks to implement draggable interface elements and drop targets using a declarative API. The framework separates the logic of moving items from the visual presentation of the user interface. This allows for the development of interactive interfaces, such as visual list reordering and custom dashboard layouts where widgets or panels can be reorganized.
Dragula is a JavaScript drag and drop library and DOM element manipulator used to move and reorder HTML elements between multiple containers. It functions as a UI interaction framework and event manager that tracks drag lifecycles to facilitate the movement of elements within a web browser interface. The library distinguishes itself through configurable constraint validation, allowing developers to define which elements are draggable and which containers are permitted drop targets. It supports specialized interaction patterns such as element cloning, the use of specific drag handles to restri
This project is a modular toolkit for building accessible, component-based drag-and-drop interfaces in React. It provides a foundational framework for managing complex spatial interactions, state synchronization, and element registration, allowing developers to create interactive web applications that support mouse, touch, and keyboard inputs. The library distinguishes itself through a highly extensible architecture that separates input handling from interaction logic. It utilizes a sensor-based input abstraction to normalize diverse user interactions and a plugin-driven lifecycle to inject c
Vue.Draggable is a component-based library for Vue.js that enables drag-and-drop functionality within web interfaces. It functions as a wrapper for the SortableJS engine, bridging the gap between imperative DOM manipulation and the declarative nature of the Vue.js reactive system. By synchronizing user interface interactions with the underlying data model, it ensures that list reordering and element movement are automatically reflected in the application state. The library supports complex interaction patterns, including the ability to move items between lists, clone elements using keyboard m
Sortable is a framework-agnostic JavaScript library for creating reorderable lists through drag and drop interactions. It functions as a reorderable list manager that allows users to rearrange DOM elements using pointer interactions on modern browsers and touch devices. The library enables the transfer or cloning of items between different lists using shared group identifiers. It supports complex organizational structures, including nested reorderable lists for managing hierarchical data across different levels. Its capabilities cover the animation of element movements and the configuration
Sortable is a JavaScript drag and drop library used to create reorderable lists of HTML elements. It is a framework-agnostic tool and a touch-enabled interaction library that functions across modern browsers and touch devices without dependencies on specific web frameworks. The library enables the movement and cloning of elements between different containers using shared group configurations. It supports the repositioning of multiple items simultaneously and the use of specific drag handles to restrict which areas of an element trigger a move. Additional capabilities include programmatic sor
Draggable is a JavaScript library for implementing draggable elements and sortable lists within a web browser. It provides a functional toolset for creating accessible drag and drop interfaces and a mechanism for dynamically swapping, sorting, and reordering HTML elements in real time. The library features a cross-input interaction layer that unifies mouse, touch, and force-touch events into a single stream for consistent behavior across different devices. It specifically includes tools for providing screen reader feedback and assistive technology support to ensure drag operations are accessi
This project is a drag-and-drop UI library and a Vue 3 component for implementing sortable lists and state-synced interfaces. It acts as a wrapper for the Sortable.js library, providing a state-synced list component that automatically updates the underlying data array when items are reordered or moved. The library supports nested draggable interfaces and hierarchical data organization, allowing draggable containers to be nested inside other movable items to create multi-level structures. It also enables multi-column data transfer, allowing elements to be moved or cloned between different drag
This project is a declarative drag-and-drop library designed for building accessible and fluid interface interactions within web applications. It provides a component-based interface for managing complex list reordering and spatial relationships between elements, utilizing a specialized state container to coordinate movement logic. The library distinguishes itself through a focus on accessibility, maintaining a live connection between visual drag states and the browser accessibility tree to support screen readers and keyboard navigation. It optimizes performance by bypassing standard componen
Muuri is a JavaScript grid layout library and draggable UI framework used to create responsive grids with drag-and-drop reordering, sorting, and animated filtering. It features a nested grid system that allows full grid instances to be embedded inside other grid items to create hierarchical structures. The library uses a web worker layout engine to offload heavy coordinate calculations to background threads, maintaining interface responsiveness during complex rearrangements. The system provides interactive capabilities for moving items between multiple containers, filtering visibility based
react-draggable is a UI interaction library that provides core primitives and components for adding tactile movement and coordinate-based positioning to web elements. It serves as a tool for making user interface elements movable via mouse or touch interactions within React applications. The library supports the implementation of custom drag handles, allowing the initiation of movement to be restricted to specific child elements identified by CSS selectors. It also provides programmatic drag state management, enabling developers to control element positioning or use callbacks for movement wit
use-gesture is a JavaScript gesture manager and interaction tool designed to detect and process user input patterns. It functions as a React gesture hook library and a general utility for tracking screen coordinates and movement patterns to drive interactive component behaviors. The library specializes in capturing complex mouse and touch interactions, including dragging, pinching, swiping, and scrolling. It provides a system for implementing drag and drop functionality and pinch-to-zoom interactions. The tool covers the development of interactive UI components by normalizing diverse input e
interact.js is a JavaScript interaction library used to implement drag and drop, resizing, and multi-touch gestures within web browsers. It provides a specialized interaction framework for scalable vector graphics, allowing these elements to be moved and resized. The library features a multi-touch gesture engine that recognizes complex patterns such as pinch and rotate, and a coordinate snapping engine for aligning elements to grids or restricting movement within boundaries. It also includes a cross-frame state synchronizer to share interaction states and input events across multiple browser
React Sortable Hoc is a library for building drag-and-drop reorderable lists and grids within web applications. It provides a set of reusable components designed to integrate into the component-based architecture of React, allowing users to rearrange elements through mouse or touch input. The library utilizes a higher-order component pattern to inject drag-and-drop state management into existing list components without requiring modifications to the underlying implementation. It employs portal-based ghost rendering to move elements outside the normal document flow, while using hardware-accele
react-dropzone is a React hook and HTML5 drag-and-drop wrapper used to create interactive areas that accept files via drag-and-drop or a native system file picker. It serves as a web file system interface, bridging browser interfaces with the operating system's file selection process. The project distinguishes itself by managing complex event propagation to isolate drop zones and providing global drag-state detection for document-wide visual feedback. It supports both traditional hidden input triggers and the modern browser File System Access API for secure context integration, and it can det
gridstack.js is a JavaScript grid layout library and responsive dashboard framework used to create interactive interfaces with draggable and resizable elements. It functions as a drag-and-drop layout manager and a JSON-serializable layout engine, allowing user-defined interface states to be persisted and restored. The library distinguishes itself through a touch-enabled grid interface and a responsive system that automatically adjusts item placement based on screen breakpoints. It features a collision-based layout engine that manages overlapping coordinates to shift or swap elements, alongsid
Livewire is a full-stack framework for PHP that enables the development of reactive, dynamic user interfaces using server-side classes and templates. By bridging the gap between server-side logic and client-side DOM updates, it allows developers to build interactive web applications without writing custom JavaScript. The framework operates as a component-based library, where modular units encapsulate interface logic, state, and event handling directly on the server. The framework distinguishes itself through a reactive architecture that automatically synchronizes state between the browser and
Primitives is a library of unstyled, accessible building blocks designed for creating complex interface elements in React. It functions as a headless component framework, providing the underlying logic, state management, and accessibility compliance while leaving all visual styling and design decisions entirely to the developer. The library distinguishes itself through a composition-based architecture that allows developers to build interactive interfaces by nesting small, single-purpose components. This system automatically handles complex requirements such as WAI-ARIA attribute injection, f
Swapy is a drag and drop layout library designed to manage the spatial arrangement of UI components. It functions as an element reordering tracker and visual position manager that exports updated layout sequences as data objects after user interactions. The system monitors changes to the visual order of elements to provide updated layout mappings. It enables the rearrangement of on-screen elements through drag and drop interactions to update visual layout mappings. The library covers dynamic layout management and visual element sorting by converting the visual positions of screen elements in
Flowy is a JavaScript library designed for building interactive, drag-and-drop flowchart interfaces. It enables the creation of canvas-based environments where users can arrange blocks to design custom logic sequences, decision trees, and visual process maps. The library provides a structured approach to diagramming by organizing elements into a hierarchical parent-child tree. It features coordinate-based snapping logic to ensure blocks automatically align into organized layouts during user interaction. To support complex system configurations, the tool includes event-driven callback hooks th
This is a React drag and drop library designed for building accessible draggable lists and reorderable elements. It provides a cross-input interaction framework that manages events across mouse, touch, and custom sensor inputs to create interactive user interfaces. The library includes a virtualized list manager to maintain high frame rates when handling large datasets by processing only the elements currently visible on the screen. It also supports custom input sensor integration, allowing for the registration of specialized input types to trigger and control drag operations. The system cov
This project is a jQuery-based file upload widget that provides a browser interface for selecting and transferring files to a server. It functions as a chunked file uploader and a resumable upload client, enabling the transfer of large files by splitting them into smaller segments or continuing interrupted uploads from the last successfully sent byte. The tool includes a client-side image processor for validating, resizing, and generating previews of images before transmission. It also serves as a cross-domain upload tool, using various transport mechanisms to send files to different domains
Dropzone is a JavaScript file upload library that provides a browser-based interface for capturing dropped files and transmitting them to a server. It functions as a multipart upload client, splitting large files into smaller chunks to increase transmission reliability and bypass server size limits. The library includes a client-side image processor capable of resizing images and correcting photo orientation in the browser before they are sent to a server. It generates image thumbnails and visual previews immediately after selection, and can render previews for files already hosted on a serve
react-draggable is a drag and drop library and coordinate-based position manager for React. It functions as a component wrapper that adds draggable behavior to user interface elements, enabling them to be moved via mouse or touch interactions. The library provides touch-enabled interaction tools that unify pointer events across desktop browsers and touch screen devices. It utilizes CSS transforms to handle element movement and coordinate tracking. The system covers movement constraints such as axis restriction and boundary clamping to confine elements within specific areas. It includes posit
Puck is a visual page editor and layout tool for React. It functions as a CMS page builder and component orchestrator, allowing for the design and arrangement of structured content pages through a drag-and-drop interface. The system utilizes a pluggable component registry to integrate external React components into the visual canvas. It employs schema-driven mapping and JSON-based serialization to store and persist page structures as portable data objects. The platform covers the domain of no-code page building and CMS content management, providing a visual reconciliation system to synchroni
FullCalendar is a framework-agnostic UI library and JavaScript calendar component designed for building interactive event scheduling interfaces. It provides tools for managing time-based data, including an integrated iCal feed parser for importing external calendar files and recurring schedules into a unified web view. The library features a system for event scheduling and management, enabling users to reschedule entries via drag-and-drop, adjust event durations by resizing, and highlight specific time ranges for selection. It supports multiple date views, such as month, week, day, and list f
Dropzone is a JavaScript library used to create interactive file upload zones with drag-and-drop support. It functions as an HTTP file upload manager that handles network request management and the transmission of files to a server. The library includes a client-side image previewer that generates thumbnails and resizes files within the browser before they are transmitted. It provides a customizable upload interface through a set of themes and event listeners that modify the visual style and behavior of the upload areas. The system manages the end-to-end upload process by tracking real-time
This project is a declarative motion framework and JavaScript animation engine designed to transition CSS properties, SVG attributes, and DOM elements. It provides a comprehensive set of tools for creating complex, multi-part motion sequences by synchronizing animations, timers, and callbacks into a single, unified timeline. The library distinguishes itself through a robust timeline-based sequence orchestrator that allows for precise timing, label-based control, and hierarchical nesting of animations. It also features a physics-driven interaction library that enables draggable elements with c
React Grid Layout is a toolkit for building draggable, resizable, and responsive dashboard interfaces. It functions as a coordinate-based grid system that reconciles component positions and dimensions through declarative metadata, allowing developers to manage complex collections of UI elements that users can interact with directly. The library distinguishes itself through an automated packing algorithm that maintains structural integrity by shifting elements to fill gaps and resolving overlaps. It supports responsive design by monitoring container width changes against pre-defined breakpoint
React Move is a declarative animation library for React that animates components by interpolating between start and end states with configurable timing and easing. It provides data-driven transitions for single elements, groups, lists, and SVG elements, supporting staggered timing, custom interpolation for non-numeric values like colors and paths, and drag-and-drop reordering of list items. The library distinguishes itself through its support for custom interpolation functions that replace default numeric interpolation, keyed array reconciliation for tracking items as they enter, update, or l