awesome-repositories.com
Blog
MCP
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectMCP serverAboutHow we rankPress
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
SortableJS avatar

SortableJS/Sortable

0
View on GitHub↗
31,135 stars·3,731 forks·JavaScript·MIT·32 viewssortablejs.github.io/Sortable↗

Sortable

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 of drag directions along horizontal or vertical axes. The tool provides controls for interaction filtering through designated drag handles and the ability to select and move multiple items simultaneously.

Users can serialize list orders into arrays of identifiers to persist the sequence of elements across sessions.

Features

  • Drag and Drop Libraries - Ships a comprehensive library for implementing drag-and-drop interactions for reorderable lists across modern browsers.
  • List Reordering Components - Provides a framework-agnostic system for visually rearranging items within lists or grids via drag-and-drop.
  • Cross-Container Item Transfer - Allows moving or cloning items between different list containers using shared group identifiers.
  • Drag and Drop Configurations - Specifies whether elements are reordered along a horizontal or vertical axis using a static value or dynamic function.
  • Nested Drag Containers - Enables the creation of hierarchical structures by nesting sortable lists within other lists.
  • Drag-and-Drop Row Reorderers - Provides UI components that allow users to manually rearrange the sequence of items in a list via drag-and-drop interactions.
  • Element Positioning Utilities - Tracks DOM element coordinates in real time to determine movement and swap thresholds.
  • Event-Driven State Managers - Manages the internal state of drag phases using event listeners for mouse and touch interactions.
  • Multi-List Item Transfer - Supports complex organization by allowing items to be moved between nested list levels.
  • List State Persisters - Provides mechanisms to save and restore the sequence of elements to maintain state across sessions.
  • List Sequence Serialization - Extracts the current sequence of items into an array of identifiers for saving or processing.
  • CSS Transitions - Uses CSS transitions to provide smooth sliding animations when items change positions.
  • Custom Drag Behaviors - Allows the implementation of specialized drag behaviors including custom handles and swap-based reordering.
  • Draggable Filters - Prevents specific elements within a list from being dragged to allow integrated buttons.
  • Draggable Item Filters - Allows specific elements within a sortable list to be prevented from being dragged.
  • Ghost Elements - Provides a ghost-element visual proxy to maintain layout stability during item reordering.
  • Drag Operation Controls - Provides controls to restrict drag movements to specific vertical or horizontal axes.
  • Drag Handles - Supports designating specific DOM elements as drag handles to restrict where interactions start.
  • Drag-and-Drop Cloning - Supports cloning items across lists, leaving the original element in its source position.
  • Framework Agnostic UI Logic - Provides interface behavior and state management for lists without enforcing a specific rendering framework.
  • Interactive UI Components - Implements pointer-based interactions and animations to enhance user interaction with web elements.
  • List Transition Animations - Animates the shifting of items within a collection to provide a fluid reordering experience.
  • Multi-Item Drag Operations - Enables the selection and simultaneous movement of multiple list items as a single group.
  • Swap-Based Reordering - Implements a swap-based interaction model that exchanges positions of two items instead of shifting the list.
  • Position Swapping - Exchanges the positions of two specific items without shifting the entire list order.
  • Programmatic List Sorting - Provides APIs to programmatically rearrange the sequence of UI elements based on an array of identifiers.
  • Selection Groups - Supports the selection and movement of multiple list items simultaneously as a single group.
  • Drag and Drop - Drag-and-drop list reordering library.

Star history

Star history chart for sortablejs/sortableStar history chart for sortablejs/sortable

How this analysis was created: This summary and feature list are AI-generated from collected project material and can contain mistakes. Stars, license and language are imported from GitHub. Inclusion does not mean that we have tested or audited this project. Check the source documentation for any feature you depend on. Learn more on our About page.

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI

Projects sharing features with Sortable

These projects share indexed features with Sortable. Shared tags can include platform or build tooling; verify the primary use case before treating a result as a replacement.
  • rubaxa/sortableRubaXa avatar

    RubaXa/Sortable

    31,135View on GitHub↗

    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

    JavaScript
    View on GitHub↗31,135
  • bevacqua/dragulabevacqua avatar

    bevacqua/dragula

    22,160View on GitHub↗

    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

    JavaScriptcomponentdrag-and-dropdrag-drop
    View on GitHub↗22,160
  • sortablejs/vue.draggableSortableJS avatar

    SortableJS/Vue.Draggable

    20,626View on GitHub↗

    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

    JavaScriptcomponentdrag-and-dropvue
    View on GitHub↗20,626
  • sortablejs/vue.draggable.nextSortableJS avatar

    SortableJS/vue.draggable.next

    4,499View on GitHub↗

    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

    JavaScript
    View on GitHub↗4,499
Compare all 30 related projects→

Frequently asked questions

What does sortablejs/sortable do?

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.

What are the main features of sortablejs/sortable?

The main features of sortablejs/sortable are: Drag and Drop Libraries, List Reordering Components, Cross-Container Item Transfer, Drag and Drop Configurations, Nested Drag Containers, Drag-and-Drop Row Reorderers, Element Positioning Utilities, Event-Driven State Managers.

Which projects share features with sortablejs/sortable?

Projects with overlapping indexed features include: rubaxa/sortable — Sortable is a JavaScript drag and drop library used to create reorderable lists of HTML elements. It is a… bevacqua/dragula — Dragula is a JavaScript drag and drop library and DOM element manipulator used to move and reorder HTML elements… sortablejs/vue.draggable — Vue.Draggable is a component-based library for Vue.js that enables drag-and-drop functionality within web interfaces.… sortablejs/vue.draggable.next — This project is a drag-and-drop UI library and a Vue 3 component for implementing sortable lists and state-synced… alfred-skyblue/vue-draggable-plus — vue-draggable-plus is a drag-and-drop library for Vue 2 and Vue 3 used to create data-bound draggable interfaces. It… shopify/draggable — Draggable is a JavaScript library for implementing draggable elements and sortable lists within a web browser. It…