+STEPH ALBERT+

+STEPH ALBERT+

+STEPH ALBERT+

+STEPH ALBERT+

drag and drop

Building a shared drag and drop component and interaction pattern for Zendesk products

Component

Component

Component

Component

Component

Interaction

Interaction

Interaction

Interaction

Interaction

Documentation

Documentation

Documentation

Documentation

Documentation

Context

Drag and drop has been a staple of graphical interfaces since the earliest GUIs. It lets people group, reorder, move, or resize objects by grabbing and dragging. The interaction feels simple and direct, which is why teams reach for it so often.

Challenge

Two different product teams—Report Builder and Layout Builder—were each planning to build drag and drop interactions from scratch to drive their experiences. Solving for those problems in isolation risked inconsistent UX, gaps in accessibility, and duplicated engineering effort.

Layout builder

Lets users rearrange and resize interface panels to customize their workspace. Driving the new direction for Zendesk’s UI across multiple products.

Report builder

Enables users to build and organize data visualizations using a drag-and-drop interface. Requires flexible grouping, ordering, and nesting behaviors.

opportunity

A shared drag and drop pattern would let both teams ship faster, align on accessibility and interaction standards, and prevent repeated bespoke implementations across products.

We chose to build a drag and drop component that is accessible (keyboard and screen reader functionality), includes clear visual feedback, and is flexible to cover multiple scenarios while remaining consistent across products.

Outcome

A robust and highly configurable drag-and-drop component, fully accessible by default. Bundled with the tooling and documentation teams need to ship it confidently.

  • React component package: A complete “Draggable” package with a rich prop interface for flexible configuration and baked-in accessibility. The package also ships with comprehensive storybook examples based on approved use cases around Zendesk.

  • Figma component with code parity: A Figma component offering the same flexibility as its code counterpart through matching variants and properties. It includes in-page examples and documentation to help designers use it correctly.

  • Pattern documentation: An in-depth guide covering how to build drag and drop experiences with the component. It includes styling, interaction behavior, accessibility, and best practices for managing complex drag and drop scenarios

Draggable component

The "Draggable" component in our Figma library provides links to live documentation on our website and Confluence, the code package in Github, and interactive examples in Storybook.

The component package consists of three building block elements:

  • Draggable item: The item being moved, with variants for interaction states, style, and placeholders

  • Dropzone: The area that receives the item, with its own states and visual treatments

  • Drop indicator: The element shows where dragged items will appear upon release

The library also includes in-page examples of common use cases with matching content guidance to help designers use it correctly

To help teams ship drag and drop confidently, we published detailed but clear pattern guidance that walks through anatomy, accessibility requirements, interaction behavior, and common use cases.

Impact

Both teams shipped with the shared component in less than 2 sprints with little to no customization.

  • ~160 engineering hours saved: Estimated engineering time saved per quarter by avoiding separate bespoke implementations—based on typical dev effort required to scope, build, QA, and maintain drag-and-drop from scratch

  • Both teams shipped with the shared component in less than 2 sprints with little to no customization. This set the benchmark for future implementations of complex drag and drop interactions.

  • Resolved or prevented 5 known accessibility issues that would have surfaced in bespoke implementations.

Other projects

Garden Design System

Zendesk Dark mode

Other projects

Garden Design System

Zendesk Dark mode

Other projects

Garden Design System

Zendesk Dark mode

Other projects

Garden Design System

Zendesk Dark mode

Other projects

Garden Design System

Zendesk Dark mode

Other projects

Garden Design System

Zendesk Dark mode