Drag and Drop

It allow users to click, drag, and reposition elements within an interface, providing intuitive interactions for sorting, organizing, or transferring content across drop zones.

Guidelines

When to use

  • Categorizing content: Grouping or organizing items, such as grouping elements into categories.
  • Reordering items: For lists where users need to change the sequence.
  • Bulk selection: Improve the efficiency by dragging multiple items to another location in bulk.

When not to use

  • Small screens: On mobile or compact screens, drag-and-drop can be challenging to use accurately
  • Simple selections: When a basic Button, Dropdown Button or Split Button is faster and easier for the user.
  • Precision placement: When items need to be dropped in an exact spot, the Drag-and-Drop can lack precision.
  • Dropping into actions: Don’t drop the elements into an action element such a Button.
Do

Do

Drop the elements into blocks.

Don't

Don't

Do not drop the element into a isolated element neither actions.

Good to know

 


Pattern elements

The Drag-and-Drop pattern consists of various elements, some are mandatory and some others are optional, depending on the specific use case.

 

Icon Button Ghost

Drag and Drop / Style / Pattern element / Icon Button Ghost

This component must always be visible within the slot container and serves as the trigger for initiating the drag action.

 

Container

Drag and Drop / Style / Pattern element / Container

The container has 4 different states based on the Drag-and-Drop situation:

Item

Variant

Description

1

Default

It is the slot content itself, without any additional elements.

2

Dragging

The element turns to the dragging state after clicking the Icon Button, allowing the user to move the slot content to the desired location.

3

Ghost

It shows a semi-transparent copy of the dragged item, providing visual feedback while the user moves it to a new location.

4

Drop area

Its the container where the elements can be dropped. If the droppable area is part of a form pattern, it should use the Dropzone component.

 

Drop indicator

Drag and Drop / Style / Pattern element / Drop Indicator

The drop indicator will appear in either a horizontal or vertical orientation, based on the orientation of the block containing the dropped element.

Item

Variant

Description

1

Vertical

If the block container has a horizontal layout, from left to right, the drop indicator will reflect this. For example, when dragging a trend card left or right.

2

Horizontal

When it's a vertical dragging action, such as in vertical lists.

 

Bulk dragging

Drag and Drop / Style / Pattern element / Bulk dragging

In cases with bulk selection, this element is displayed during dragging to indicate the number of items being dragged.

 

Feedback

Drag and Drop / Style / Pattern element / Feedback

Item

Variant

Description

Optional

1

Dialogue

It ensures users confirm critical actions, preventing accidental changes and enhancing control, especially for actions with significant impact or irreversible effects.

Yes

2

Alert

It provides feedback, and offers an option to undo, improving user confidence and control.

 


 

Behaviours

Mouse interactions

Drag and Drop / Style / Flow / By Mouse

 

Keyboard interactions

Enabling drag-and-drop via keyboard is essential for accessibility and efficiency. It ensures users with disabilities can fully interact with the interface, meeting accessibility standards. Additionally, users who navigate with the keyboard still have the ability to perform drag actions. This flexibility improves user experience and supports the platform’s goal of optimizing time and usability.

 

Dropping

Drag and Drop / Style / Flow / By Keyboard / Droppable

Key

Interactions

Tab

Sets focus on the Button

Space or Enter

Opens the Overflow Menu if its droppable.

Up or Down arrows

Moves between the Overflow Menu List Items to select where the element will be grouped or placed.

Space or Enter

Selects the List Item and triggers the action.

Escape

Closes the Overflow Menu.

 

Sorting

Drag and Drop / Style / Flow / By Keyboard / Sortable

Key

Interactions

Tab

Sets focus on the Button

Space or Enter

Set focus to the whole sortable element.

Up or Down arrows

Moves between the list element in order to sort it.

Space or Enter

Confirm the new element place.

Escape

Cancel the sortable action.