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
atlassian avatar

atlassian/pragmatic-drag-and-drop

0
View on GitHub↗
12,685 stars·326 forks·TypeScript·27 viewsatlassian.design/components/pragmatic-drag-and-drop↗

Pragmatic Drag And Drop

Pragmatic Drag and Drop is a TypeScript library that provides a complete system for implementing drag and drop interactions in web applications. It handles the full lifecycle of drag operations, from registering drop targets and monitoring drag events to managing cleanup functions, all through a structured adapter-based approach.

The library supports a wide range of data manipulation patterns, including reordering items within lists, tables, trees, virtual lists, and side navigation, as well as moving items between lists and across columns in a board layout. It also enables swapping items in a grid, resizing elements, accepting files dropped from the operating system, and transferring data across browser windows or iframes.

Additional capabilities include utilities for reordering arrays based on drag position changes and combining multiple cleanup functions into a single call for easier teardown. The library is designed to work with HTML elements, text selections, and external content through dedicated adapters.

Features

  • Drag Adapters - Provides dedicated adapters for dragging HTML elements, text selections, and external content.
  • UI List Reordering - Provides a mechanism for reordering items within a single list via drag-and-drop.
  • Drag Lifecycle Events - Listens for drag operation events to react to start, move, and end phases.
  • Drop Target Registries - Provides a system for marking elements as valid drop zones during drag operations.
  • Multi-List Item Transfer - Ships a complete system for transferring items between lists via drag-and-drop.
  • Drag and Resize Functionality - Provides functionality for resizing elements by dragging their edges or corners.
  • Tree Node Reorderers - Provides utilities for rearranging nodes in hierarchical tree structures via drag-and-drop.
  • Drag-and-Drop Row Reorderers - Ships a component for rearranging table rows via drag-and-drop interactions.
  • Reorderable Virtual Lists - Supports reordering items within a virtualized list via drag-and-drop.
  • Drag-and-Drop File Upload - Provides a dedicated adapter for capturing files dragged from the operating system.
  • Data Transfer Mechanisms - Shares drag data between browser tabs, iframes, or native applications during a drag operation.
  • Grid Item Swapping - Enables swapping items in a grid layout via drag-and-drop.
  • Kanban Boards - Supports moving items between columns on a kanban-style board via drag-and-drop.
  • Sidebar Navigation Organization - Enables drag-and-drop reordering of navigation items within a sidebar.

Star history

Star history chart for atlassian/pragmatic-drag-and-dropStar history chart for atlassian/pragmatic-drag-and-drop

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 Pragmatic Drag And Drop

These projects share indexed features with Pragmatic Drag And Drop. Shared tags can include platform or build tooling; verify the primary use case before treating a result as a replacement.
  • armour/vue-typescript-admin-templateArmour avatar

    Armour/vue-typescript-admin-template

    5,677View on GitHub↗

    Vue-typescript-admin-template is a TypeScript-based admin panel starter built with Vue CLI 3, providing a complete foundation for building enterprise back-office interfaces. It enforces type safety across Vue components using TypeScript, reducing runtime errors and improving code maintainability, while offering a dynamic route permission system that controls sidebar navigation and page access by mapping user roles to route permissions at runtime. The template includes a mock API service layer that simulates backend responses for frontend development without a live server, along with internati

    Vueadminadmin-dashboardtemplate
    View on GitHub↗5,677
  • 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
  • daybrush/moveabledaybrush avatar

    daybrush/moveable

    10,720View on GitHub↗

    Moveable! Draggable! Resizable! Scalable! Rotatable! Warpable! Pinchable! Groupable! Snappable!

    TypeScriptdraggablegroupablemovable
    View on GitHub↗10,720
  • 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
Compare all 30 related projects→

Frequently asked questions

What does atlassian/pragmatic-drag-and-drop do?

Pragmatic Drag and Drop is a TypeScript library that provides a complete system for implementing drag and drop interactions in web applications. It handles the full lifecycle of drag operations, from registering drop targets and monitoring drag events to managing cleanup functions, all through a structured adapter-based approach.

What are the main features of atlassian/pragmatic-drag-and-drop?

The main features of atlassian/pragmatic-drag-and-drop are: Drag Adapters, UI List Reordering, Drag Lifecycle Events, Drop Target Registries, Multi-List Item Transfer, Drag and Resize Functionality, Tree Node Reorderers, Drag-and-Drop Row Reorderers.

Which projects share features with atlassian/pragmatic-drag-and-drop?

Projects with overlapping indexed features include: armour/vue-typescript-admin-template — Vue-typescript-admin-template is a TypeScript-based admin panel starter built with Vue CLI 3, providing a complete… bevacqua/dragula — Dragula is a JavaScript drag and drop library and DOM element manipulator used to move and reorder HTML elements… daybrush/moveable — Moveable! Draggable! Resizable! Scalable! Rotatable! Warpable! Pinchable! Groupable! Snappable! rubaxa/sortable — Sortable is a JavaScript drag and drop library used to create reorderable lists of HTML elements. It is a… sortablejs/sortable — Sortable is a framework-agnostic JavaScript library for creating reorderable lists through drag and drop interactions.… 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…