@atlaskit/pragmatic-drag-and-drop vs @dnd-kit/core

Side-by-side comparison of @atlaskit/pragmatic-drag-and-drop and @dnd-kit/core

Weekly Downloads
709.5K
Stars
12.6K
Gzip Size
57 B
License
Apache-2.0
Last Updated
1mo ago
Open Issues
100
Forks
325
Unpacked Size
484.7 kB
Dependencies
1
@dnd-kit/core v6.3.1 MIT
Weekly Downloads
9.2M
Stars
16.9K
Gzip Size
18.9 kB
License
MIT
Last Updated
1y ago
Open Issues
70
Forks
854
Unpacked Size
1.1 MB
Dependencies
5

@atlaskit/pragmatic-drag-and-drop vs @dnd-kit/core Download Trends

Download trends for @atlaskit/pragmatic-drag-and-drop and @dnd-kit/core011.9M23.7M35.6M47.5MFeb 2025MayAugNovFebApr 2026
@atlaskit/pragmatic-drag-and-drop
@dnd-kit/core

@atlaskit/pragmatic-drag-and-drop vs @dnd-kit/core: Verdict

The @atlaskit/pragmatic-drag-and-drop package is designed to be a foundational, highly adaptable drag-and-drop solution, prioritizing a declarative API that aims to abstract away the complexities of native browser drag-and-drop events. Its core philosophy revolves around providing a stable, framework-agnostic base that developers can build upon with their specific UI requirements and styling.

This makes @atlaskit/pragmatic-drag-and-drop particularly well-suited for teams seeking fine-grained control over the drag-and-drop interaction's behavior and visual presentation, especially within larger, more opinionated design systems or applications where consistency across various UI components is paramount. It's geared towards developers who appreciate a minimalist core that doesn't impose specific rendering patterns, allowing for maximum flexibility.

Conversely, @dnd-kit/core positions itself as a comprehensive, React-specific library built for creating performant and accessible drag-and-drop experiences. Its design emphasizes developer ergonomics and out-of-the-box solutions for common drag-and-drop patterns, including accessibility features like keyboard support and ARIA attributes.

@dnd-kit/core is an excellent choice for React developers looking for a feature-rich, batteries-included solution that simplifies the implementation of complex drag-and-drop interfaces. It caters to those who want to leverage React's component model effectively and benefit from built-in accessibility, reducing the boilerplate code required for such features.

A key architectural difference lies in their extensibility. @atlaskit/pragmatic-drag-and-drop offers a more unopinionated core, allowing developers to integrate it with virtually any rendering technology or state management solution by handling the core drag-and-drop logic. @dnd-kit/core, being React-specific, adopts a hooks-based API and relies on React's lifecycle and state management for managing the drag-and-drop operations, integrating tightly with the React component tree.

Another significant technical distinction is their approach to managing drag-and-drop state and DOM manipulation. @atlaskit/pragmatic-drag-and-drop provides low-level primitives and hooks that allow developers to wire up custom state management and DOM interactions. @dnd-kit/core abstracts much of this, providing stateful hooks and components that manage the drag-and-drop lifecycle internally, making it easier to integrate common patterns like sortable lists or draggables.

In terms of developer experience, @dnd-kit/core generally offers a gentler learning curve for React developers due to its idiomatic API and comprehensive documentation for common use cases. @atlaskit/pragmatic-drag-and-drop may present a steeper initial learning curve because it requires developers to actively connect its core primitives to their application's state and rendering logic, offering more power but demanding more setup.

Regarding performance and bundle size, @atlaskit/pragmatic-drag-and-drop stands out with an exceptionally small gzip bundle size of only 57 B, suggesting a highly optimized and minimal core. @dnd-kit/core, while still performant for its feature set, has a considerably larger gzip bundle size of 18.9 kB, which is typical for a more comprehensive React library with built-in accessibility features.

When deciding between the two, choose @atlaskit/pragmatic-drag-and-drop if you are building a drag-and-drop feature within a non-React application, or if you require absolute control over DOM manipulation and state, particularly within a large, custom design system. Opt for @dnd-kit/core if you are working in a React environment and need a fast, accessible, and feature-rich drag-and-drop solution without extensive custom setup.

For projects prioritizing an incremental adoption of drag-and-drop functionalities and demanding exceptional control over the underlying DOM interactions, @atlaskit/pragmatic-drag-and-drop is a strong contender. Its minimal footprint and framework-agnostic nature allow it to be integrated into a wide array of projects, including those with existing complex architectures or those migrating away from legacy solutions.

Conversely, @dnd-kit/core is deeply integrated within the React ecosystem, offering a cohesive developer experience for React projects. Its focus on accessibility and out-of-the-box solutions means less time spent on accessibility compliance and common interaction patterns, making it ideal for rapid development of interactive UIs within React applications, especially those with a strong emphasis on user experience and inclusive design.

@atlaskit/pragmatic-drag-and-drop vs @dnd-kit/core: Feature Comparison

Feature comparison between @atlaskit/pragmatic-drag-and-drop and @dnd-kit/core
Criteria @atlaskit/pragmatic-drag-and-drop @dnd-kit/core
API Design Focuses on low-level primitives and hooks for custom integration. Utilizes a hooks-based API and component-driven patterns idiomatic to React.
Ecosystem Fit Framework-agnostic, suitable for vanilla JS, Vue, Angular, or React projects. Optimized exclusively for the React ecosystem.
Learning Curve Potentially steeper due to the need for manual state and rendering integration. Generally gentler for React developers due to idiomatic API and extensive examples.
Core Philosophy Provides a framework-agnostic, declarative API for drag-and-drop logic. Offers a lightweight, React-specific library for performant and accessible drag-and-drop.
Primary Audience Teams needing fine-grained control and integration into diverse tech stacks or design systems. React developers seeking a feature-rich, accessible, and easy-to-implement drag-and-drop solution.
TypeScript Support Comprehensive TypeScript support for robust type safety. Excellent TypeScript integration, leveraging modern React patterns.
Accessibility Focus Relies on developers to implement accessibility features on top of core logic. Includes built-in features for keyboard support and ARIA attributes.
Extensibility Model Highly adaptable, allowing integration with any rendering framework or state management. Tightly integrated with React's component model and state management.
Bundle Size Efficiency Extremely minimal, with a gzip bundle size of only 57 B. Noticeably larger at 18.9 kB gzip, reflecting its comprehensive feature set.
Core Logic Abstraction Aims to abstract browser native DnD intricacies to provide a stable API. Abstracts drag-and-drop state and lifecycle management within React.
Customization Potential High potential for deep customization due to its low-level, unopinionated nature. Highly customizable within the React paradigm, with extensibility points.
DOM Interaction Control Offers granular control over direct DOM manipulation and event handling. Abstracts DOM interactions through React components and hooks.
Out-of-the-Box Features Provides core primitives, requiring developers to build common features themselves. Supplies robust, pre-built solutions for sortable lists, draggables, and droppables.
Performance Characteristics Excels in minimal overhead, allowing developers to control performance nuances. Provides high performance for common drag-and-drop patterns with built-in optimizations.
State Management Integration Requires explicit integration with the developer's chosen state management solution. Manages drag-and-drop state internally via React hooks.

Related @atlaskit/pragmatic-drag-and-drop & @dnd-kit/core Comparisons