Back to compare picker

Drag and drop vs Touch gesture vs Long press vs Drag-and-drop upload vs Kanban board vs Sort controls

Use drag and drop for moving an object from a source to a destination, position, group, or order. Use touch gesture for broad gesture rules, long press for sustained-contact invocation, drag-and-drop upload for OS file drops, kanban board for workflow columns, and sort controls for rule-based ordering.

Learn the decision

Match the interaction to the person's task

Use drag and drop for moving an object from a source to a destination, position, group, or order. Use touch gesture for broad gesture rules, long press for sustained-contact invocation, drag-and-drop upload for OS file drops, kanban board for workflow columns, and sort controls for rule-based ordering.

Drag and drop

Use it when: Users need spatial or ordered movement between clear sources and destinations.

Make this state clear: Idle state with draggable object identity and visible drag handle or move affordance.

Observe the result: A user picks up a card, drags it over Review, sees the insertion line and WIP count, drops it, then receives Moved to Review with Undo.

Study the full pattern →

Touch gesture

Use it when: A touchscreen interaction needs deliberate design for gesture vocabulary, thresholds, feedback, target sizing, cancellation, and equivalent controls.

Make this state clear: Touch down or gesture start state that identifies the active target.

Observe the result: A user starts swiping a gallery card, sees the next-card preview, changes their mind by moving back under the threshold, and the card snaps back with position unchanged.

Study the full pattern →

Long press

Use it when: A touch-first interface needs an optional shortcut to secondary item actions, selection mode, preview, or drag pickup.

Make this state clear: Idle target state with visible identity and alternate action path.

Observe the result: A user touches and holds a photo, sees the hold progress cross threshold, receives haptic feedback, then a context menu opens with Copy, Share, Favorite, and Delete.

Study the full pattern →

Drag-and-drop upload

Use it when: Users often upload files from a desktop file manager and benefit from dropping one or more files into a visible target.

Make this state clear: Idle drop zone with visible label, requirements, and choose-file fallback.

Observe the result: A user drags two PDFs over the zone, sees the target activate, drops them, reviews both filenames, removes the wrong one, uploads the remaining file, and then continues.

Study the full pattern →

Kanban board

Use it when: Work progresses through visible stages and the team uses the board to decide what to pull next.

Make this state clear: Default board state with columns, card counts, WIP limits, visible filters, selected board, and at least one card per active workflow stage.

Observe the result: A developer moves a card from In progress to Review, sees the status update, receives an over-limit warning, and can undo or help clear the bottleneck instead of pulling more work.

Study the full pattern →

Sort controls

Use it when: Users need to compare or act on a result set in different orders.

Make this state clear: Default sort state that identifies the initial order and why it is appropriate.

Observe the result: A user searches for case, changes Sort by from Relevance to Due date (oldest first), and the same filtered records reorder while the query and filters remain.

Study the full pattern →

Practice the judgment: Imagine this situation: A card can be moved only by pointer drag, excluding keyboard and assistive technology users. Write the person's goal, choose one of these patterns, and show the state that helps the person continue. Use the decision rules and source trail below to explain your choice.

Review the underlying principle →

Decision dimensions

Dimension Drag and dropTouch gestureLong pressDrag-and-drop uploadKanban boardSort controls
UI or UX UI + UX - Pointer or touch movement that picks up an object and drops it onto a valid destinationUI + UX - Touch-first gesture vocabulary and fallback contract for taps, swipes, drags, pinches, and multi-touch interactionsUI + UX - Sustained pointer contact that reveals secondary actions, selection, preview, or drag pickupUI + UX - Drop-zone file upload enhancement with file input fallbackUI + UX - Workflow-state board for cards moving through columnsUI + UX - Control for changing the order of an existing result set
UI guidance Render drag and drop with a visible draggable object, pickup affordance, drag preview, valid and invalid drop targets, insertion or placement feedback, cancellation, and a non-drag equivalent move path.Render touch gesture affordances with visible targets, enough spacing, state feedback, and non-gesture controls for the same outcome when a gesture is path-based, multipoint, hidden, or easy to misfire.Show long press as a sustained-contact gesture with a discoverable hint, press progress, hold threshold, cancellation, release behavior, and a visible non-gesture equivalent.Render a large labelled drop zone with clear copy that says users can drag files there or activate a normal file picker, plus visible format, size, and count requirements.Render workflow columns with visible names, status mapping, card counts, WIP limits, overloaded states, empty columns, and cards that show title, owner, priority, age, due date, blocked state, and enough metadata to understand the work.Place the active sort control above or inside the result region it affects, with a visible label such as Sort by and an option name that includes both the attribute and direction.
UX guidance Use drag and drop when direct object movement between destinations is faster and more understandable than choosing source and destination from separate controls.Use touch gesture when the product needs direct manipulation on a touchscreen, but treat gestures as part of a larger interaction contract rather than the only way to act.Use long press when a touch-first surface needs a secondary action that benefits from deliberate dwell time and can coexist with tap, scroll, swipe, and drag.Use drag-and-drop upload as an enhancement for users who can drag files from a file manager, while preserving an equivalent click, keyboard, and mobile path.Use Kanban board when teams pull work through a shared workflow and need to see WIP pressure, bottlenecks, blocked items, stale cards, and status changes at a glance.Use sort controls when users need to rearrange the same matching results by a meaningful attribute while preserving the current search query, filters, page size, and view context.
Good UI A task card has a visible drag handle, lifts on pickup, highlights valid columns, previews the insertion position, blocks Done with a WIP warning, and offers a Move to column menu.A photo viewer supports pinch to zoom, double tap to zoom, plus and minus buttons, a reset button, zoom percent feedback, and a clear pan boundary after zoom.A file tile shows a short Touch and hold for actions hint, displays a hold ring after press down, opens a context menu at the tile after threshold, and keeps a visible More actions button.A drop zone says Drag bank statements here or choose files, shows PDF/PNG/JPG up to 10 MB, highlights when files hover over it, lists two dropped filenames, and keeps a Choose files button visible.A product board shows Backlog, Ready, In progress, Review, and Done columns with card counts, WIP limits, blocked badges, owners, due dates, and visible over-limit styling in Review.A search results page shows Sort by with options like Relevance, Due date (oldest first), and Amount (highest first) above the results.
Bad UI A card can only be moved by mouse drag.A hidden edge swipe deletes a message while the user is trying to scroll the list.A long press starts drag pickup while users are trying to scroll the list.The whole page becomes a hidden drop target that opens the dropped file in the browser when users miss the box.WIP overload is hidden or only color-coded.A menu labelled Sort contains Status: Open, Last 30 days, and Owner, which are filters rather than ordering rules.
Good UX A user picks up a card, drags it over Review, sees the insertion line and WIP count, drops it, then receives Moved to Review with Undo.A user starts swiping a gallery card, sees the next-card preview, changes their mind by moving back under the threshold, and the card snaps back with position unchanged.A user touches and holds a photo, sees the hold progress cross threshold, receives haptic feedback, then a context menu opens with Copy, Share, Favorite, and Delete.A user drags two PDFs over the zone, sees the target activate, drops them, reviews both filenames, removes the wrong one, uploads the remaining file, and then continues.A developer moves a card from In progress to Review, sees the status update, receives an over-limit warning, and can undo or help clear the bottleneck instead of pulling more work.A user searches for case, changes Sort by from Relevance to Due date (oldest first), and the same filtered records reorder while the query and filters remain.
Bad UX A user starts scrolling a board and accidentally drags a card into Done.A user tries to scroll a feed but the product interprets a short diagonal movement as a destructive swipe action.A user taps a card slowly and accidentally opens a hidden destructive menu.A user drags a file over the page, misses the small target, and the browser navigates to the file, wiping unsaved answers.A user drags a card to Done but the underlying status remains In progress, so reports and automations disagree with the board.Changing sort clears the search box and removes active filters.
Best fit Users need spatial or ordered movement between clear sources and destinations.A touchscreen interaction needs deliberate design for gesture vocabulary, thresholds, feedback, target sizing, cancellation, and equivalent controls.A touch-first interface needs an optional shortcut to secondary item actions, selection mode, preview, or drag pickup.Users often upload files from a desktop file manager and benefit from dropping one or more files into a visible target.Work progresses through visible stages and the team uses the board to decide what to pull next.Users need to compare or act on a result set in different orders.
Avoid when The action is rare, destructive, high-impact, or hard to preview before release.The gesture is only an implementation detail inside a more specific pattern such as swipe action, pull to refresh, long press, drag and drop, bottom sheet, carousel, or map view.The action is primary, required, urgent, destructive, security-sensitive, consent-related, payment-related, or account-changing.A normal file input is sufficient and the extra drop-zone states would add confusion.Users primarily compare records by fields or edit cell-like data.Users need to narrow which records are shown rather than change their order.
Required state Idle state with draggable object identity and visible drag handle or move affordance.Touch down or gesture start state that identifies the active target.Idle target state with visible identity and alternate action path.Idle drop zone with visible label, requirements, and choose-file fallback.Default board state with columns, card counts, WIP limits, visible filters, selected board, and at least one card per active workflow stage.Default sort state that identifies the initial order and why it is appropriate.
Accessibility burden Provide keyboard, screen reader, switch, and visible-control paths for moving objects to every valid destination.Provide a simple single-pointer alternative for multipoint or path-based gestures unless the gesture is essential.Provide visible controls, action menus, custom screen reader actions, keyboard shortcuts, context-menu invocation, or selection checkboxes for the same outcomes.Keep a visible label and instructions that name both drag-and-drop and choose-file paths.Expose board name, active filters, sorting, grouping, column count, column names, card counts, and WIP limits as text.Use a native select, radio group, or correctly implemented menu button for standalone sort controls.
Common misuse Making drag the only way to move, reorder, assign, or change status.Making a hidden gesture the only way to find navigation, delete, refresh, zoom, or edit controls.Hiding required or primary actions behind undiscoverable long press.Replacing the normal file chooser with a drop zone that only pointer users can operate.Using Kanban columns as decorative categories rather than workflow states.Putting filtering criteria such as date ranges, status, category, or owner inside a sort menu.

Drag and drop

UI or UX
UI + UX - Pointer or touch movement that picks up an object and drops it onto a valid destination
UI guidance
Render drag and drop with a visible draggable object, pickup affordance, drag preview, valid and invalid drop targets, insertion or placement feedback, cancellation, and a non-drag equivalent move path.
UX guidance
Use drag and drop when direct object movement between destinations is faster and more understandable than choosing source and destination from separate controls.
Good UI
A task card has a visible drag handle, lifts on pickup, highlights valid columns, previews the insertion position, blocks Done with a WIP warning, and offers a Move to column menu.
Bad UI
A card can only be moved by mouse drag.
Good UX
A user picks up a card, drags it over Review, sees the insertion line and WIP count, drops it, then receives Moved to Review with Undo.
Bad UX
A user starts scrolling a board and accidentally drags a card into Done.
Best fit
Users need spatial or ordered movement between clear sources and destinations.
Avoid when
The action is rare, destructive, high-impact, or hard to preview before release.
Required state
Idle state with draggable object identity and visible drag handle or move affordance.
Accessibility burden
Provide keyboard, screen reader, switch, and visible-control paths for moving objects to every valid destination.
Common misuse
Making drag the only way to move, reorder, assign, or change status.

Touch gesture

UI or UX
UI + UX - Touch-first gesture vocabulary and fallback contract for taps, swipes, drags, pinches, and multi-touch interactions
UI guidance
Render touch gesture affordances with visible targets, enough spacing, state feedback, and non-gesture controls for the same outcome when a gesture is path-based, multipoint, hidden, or easy to misfire.
UX guidance
Use touch gesture when the product needs direct manipulation on a touchscreen, but treat gestures as part of a larger interaction contract rather than the only way to act.
Good UI
A photo viewer supports pinch to zoom, double tap to zoom, plus and minus buttons, a reset button, zoom percent feedback, and a clear pan boundary after zoom.
Bad UI
A hidden edge swipe deletes a message while the user is trying to scroll the list.
Good UX
A user starts swiping a gallery card, sees the next-card preview, changes their mind by moving back under the threshold, and the card snaps back with position unchanged.
Bad UX
A user tries to scroll a feed but the product interprets a short diagonal movement as a destructive swipe action.
Best fit
A touchscreen interaction needs deliberate design for gesture vocabulary, thresholds, feedback, target sizing, cancellation, and equivalent controls.
Avoid when
The gesture is only an implementation detail inside a more specific pattern such as swipe action, pull to refresh, long press, drag and drop, bottom sheet, carousel, or map view.
Required state
Touch down or gesture start state that identifies the active target.
Accessibility burden
Provide a simple single-pointer alternative for multipoint or path-based gestures unless the gesture is essential.
Common misuse
Making a hidden gesture the only way to find navigation, delete, refresh, zoom, or edit controls.

Long press

UI or UX
UI + UX - Sustained pointer contact that reveals secondary actions, selection, preview, or drag pickup
UI guidance
Show long press as a sustained-contact gesture with a discoverable hint, press progress, hold threshold, cancellation, release behavior, and a visible non-gesture equivalent.
UX guidance
Use long press when a touch-first surface needs a secondary action that benefits from deliberate dwell time and can coexist with tap, scroll, swipe, and drag.
Good UI
A file tile shows a short Touch and hold for actions hint, displays a hold ring after press down, opens a context menu at the tile after threshold, and keeps a visible More actions button.
Bad UI
A long press starts drag pickup while users are trying to scroll the list.
Good UX
A user touches and holds a photo, sees the hold progress cross threshold, receives haptic feedback, then a context menu opens with Copy, Share, Favorite, and Delete.
Bad UX
A user taps a card slowly and accidentally opens a hidden destructive menu.
Best fit
A touch-first interface needs an optional shortcut to secondary item actions, selection mode, preview, or drag pickup.
Avoid when
The action is primary, required, urgent, destructive, security-sensitive, consent-related, payment-related, or account-changing.
Required state
Idle target state with visible identity and alternate action path.
Accessibility burden
Provide visible controls, action menus, custom screen reader actions, keyboard shortcuts, context-menu invocation, or selection checkboxes for the same outcomes.
Common misuse
Hiding required or primary actions behind undiscoverable long press.

Drag-and-drop upload

UI or UX
UI + UX - Drop-zone file upload enhancement with file input fallback
UI guidance
Render a large labelled drop zone with clear copy that says users can drag files there or activate a normal file picker, plus visible format, size, and count requirements.
UX guidance
Use drag-and-drop upload as an enhancement for users who can drag files from a file manager, while preserving an equivalent click, keyboard, and mobile path.
Good UI
A drop zone says Drag bank statements here or choose files, shows PDF/PNG/JPG up to 10 MB, highlights when files hover over it, lists two dropped filenames, and keeps a Choose files button visible.
Bad UI
The whole page becomes a hidden drop target that opens the dropped file in the browser when users miss the box.
Good UX
A user drags two PDFs over the zone, sees the target activate, drops them, reviews both filenames, removes the wrong one, uploads the remaining file, and then continues.
Bad UX
A user drags a file over the page, misses the small target, and the browser navigates to the file, wiping unsaved answers.
Best fit
Users often upload files from a desktop file manager and benefit from dropping one or more files into a visible target.
Avoid when
A normal file input is sufficient and the extra drop-zone states would add confusion.
Required state
Idle drop zone with visible label, requirements, and choose-file fallback.
Accessibility burden
Keep a visible label and instructions that name both drag-and-drop and choose-file paths.
Common misuse
Replacing the normal file chooser with a drop zone that only pointer users can operate.

Kanban board

UI or UX
UI + UX - Workflow-state board for cards moving through columns
UI guidance
Render workflow columns with visible names, status mapping, card counts, WIP limits, overloaded states, empty columns, and cards that show title, owner, priority, age, due date, blocked state, and enough metadata to understand the work.
UX guidance
Use Kanban board when teams pull work through a shared workflow and need to see WIP pressure, bottlenecks, blocked items, stale cards, and status changes at a glance.
Good UI
A product board shows Backlog, Ready, In progress, Review, and Done columns with card counts, WIP limits, blocked badges, owners, due dates, and visible over-limit styling in Review.
Bad UI
WIP overload is hidden or only color-coded.
Good UX
A developer moves a card from In progress to Review, sees the status update, receives an over-limit warning, and can undo or help clear the bottleneck instead of pulling more work.
Bad UX
A user drags a card to Done but the underlying status remains In progress, so reports and automations disagree with the board.
Best fit
Work progresses through visible stages and the team uses the board to decide what to pull next.
Avoid when
Users primarily compare records by fields or edit cell-like data.
Required state
Default board state with columns, card counts, WIP limits, visible filters, selected board, and at least one card per active workflow stage.
Accessibility burden
Expose board name, active filters, sorting, grouping, column count, column names, card counts, and WIP limits as text.
Common misuse
Using Kanban columns as decorative categories rather than workflow states.

Sort controls

UI or UX
UI + UX - Control for changing the order of an existing result set
UI guidance
Place the active sort control above or inside the result region it affects, with a visible label such as Sort by and an option name that includes both the attribute and direction.
UX guidance
Use sort controls when users need to rearrange the same matching results by a meaningful attribute while preserving the current search query, filters, page size, and view context.
Good UI
A search results page shows Sort by with options like Relevance, Due date (oldest first), and Amount (highest first) above the results.
Bad UI
A menu labelled Sort contains Status: Open, Last 30 days, and Owner, which are filters rather than ordering rules.
Good UX
A user searches for case, changes Sort by from Relevance to Due date (oldest first), and the same filtered records reorder while the query and filters remain.
Bad UX
Changing sort clears the search box and removes active filters.
Best fit
Users need to compare or act on a result set in different orders.
Avoid when
Users need to narrow which records are shown rather than change their order.
Required state
Default sort state that identifies the initial order and why it is appropriate.
Accessibility burden
Use a native select, radio group, or correctly implemented menu button for standalone sort controls.
Common misuse
Putting filtering criteria such as date ranges, status, category, or owner inside a sort menu.
Decision rules
  • Choose drag and drop when users move a source to a destination by picking up an object, selected set, tile, card, row, file, or canvas item and dropping it onto a valid destination or insertion position inside the product.
  • Choose touch gesture when the design problem is the broad vocabulary of touch input, including target sizing, thresholds, cancellation, system gestures, and equivalent controls.
  • Choose long press when sustained contact is the key interaction, such as opening actions, selection mode, preview, or arming drag pickup before movement begins.
  • Choose drag-and-drop upload when the dragged items are files from the operating system and the product needs file validation, queue, upload, progress, remove, and file-picker fallback states.
  • Choose kanban board when the primary pattern is workflow visualization across columns, WIP limits, status mapping, card details, filtering, and board navigation; drag may be one movement method inside it.
  • Choose sort controls when the user chooses an ordering rule such as newest, priority, date, or amount instead of manually placing individual objects.
  • Drag and drop must define source object, pickup handle, drag preview, valid target, invalid target reason, insertion indicator, drop result, cancel path, server rejection behavior, and equivalent non-drag move control.
  • Drag and drop must not be the only path for moving, assigning, reordering, grouping, or changing status unless dragging is essential to the task itself.
  • Drag and drop conflicts must be resolved against scroll, long press, swipe action, text selection, pull-to-refresh, nested draggable regions, and browser-native drag behavior.
  • Do not treat a board, sortable list, upload zone, or touch gesture as complete drag and drop unless the source-to-destination movement contract and equivalent controls are designed.
Inspect live examples
Failure modes
  • A card can be moved only by pointer drag, excluding keyboard and assistive technology users.
  • Every destination highlights as valid even though some are full, locked, filtered, or permission-denied.
  • Dropping changes workflow status, ownership, or notifications before users see the consequence.
  • A file-upload drop zone is confused with object movement inside the product.
  • A sort control is used when users need manual placement, or manual drag is used when users need deterministic sorting.
  • A long press starts drag pickup while users are trying to scroll or select text.
  • Server rejection leaves the card visually moved but the underlying model unchanged.
  • The comparison merges gesture mechanics, workflow board structure, upload validation, and order rules into one indistinct recommendation.

Saved items