Back to compare picker

Swipe action vs Touch gesture vs List view vs Action menu vs Undo vs Confirmation dialog

Use swipe action for the specific horizontal row gesture that reveals or commits item-level actions. Use touch gesture for the broader gesture contract, list view for row structure, action menu for explicit command access, undo for post-action recovery, and confirmation dialog for informed pre-action decisions.

Learn the decision

Match the interaction to the person's task

Use swipe action for the specific horizontal row gesture that reveals or commits item-level actions. Use touch gesture for the broader gesture contract, list view for row structure, action menu for explicit command access, undo for post-action recovery, and confirmation dialog for informed pre-action decisions.

Swipe action

Use it when: Users repeatedly perform simple item-level actions on touch-first rows.

Make this state clear: Idle row state with visible row identity and discoverable action path.

Observe the result: A user partially swipes a notification, sees Archive and Mark read labels, releases before threshold, and the row snaps back unchanged.

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 →

List view

Use it when: Users need to scan and act on a collection of objects using compact summaries.

Make this state clear: Default list state with label or heading, row count or context, visible row summaries, and primary row identity.

Observe the result: A user filters tickets to Critical, selects two rows, opens the details panel for one ticket, then clears the filter and the selected count and active ticket remain understandable.

Study the full pattern →

Action menu

Use it when: A resource, row, card, selected set, or local page object has several contextual commands.

Make this state clear: Closed trigger or contextual entry point with resource scope.

Observe the result: A user opens Customer actions, chooses Duplicate customer, and receives status that names the customer and keeps focus anchored to the action context.

Study the full pattern →

Undo

Use it when: The action is common and mistakes are likely.

Make this state clear: Normal state before the user action.

Observe the result: Undo restores the deleted task to the list and reports Quarterly report restored.

Study the full pattern →

Confirmation dialog

Use it when: The action is destructive, irreversible, costly, security-sensitive, privacy-affecting, or externally visible.

Make this state clear: Pre-action state with an explicit consequential trigger.

Observe the result: Cancel, Escape, and Keep archive leave the archive unchanged and return focus to Delete archive.

Study the full pattern →

Practice the judgment: Imagine this situation: A hidden swipe deletes a row before users see the action label or threshold. 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 Swipe actionTouch gestureList viewAction menuUndoConfirmation dialog
UI or UX UI + UX - Horizontal item-level gesture that reveals or commits row-scoped actionsUI + UX - Touch-first gesture vocabulary and fallback contract for taps, swipes, drags, pinches, and multi-touch interactionsUI + UX - Vertical object-summary browsing surfaceUI + UX - Contextual command list for a resource or selectionUX - Post-action recovery behaviorUI + UX - Consequential alert decision
UI guidance Render swipe action as a row-scoped horizontal gesture with clear direction, action label, background affordance, threshold feedback, cancel behavior, and a visible action-menu or button equivalent.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.Render a labelled vertical list where each row has a strong primary label, concise supporting text, metadata, status, optional leading media, and row-scoped actions with clear hit targets.Render a compact menu of verb-led actions scoped to one resource, row, card, selected set, or page object, with clear section headings, object-aware labels, disabled reasons, and separated dangerous commands.Show a named recovery affordance after the completed action, such as Undo delete for a specific task, near the result or in a consistent status region.Render an alert-style modal decision with a specific title, consequence description, safe cancellation, and a destructive action label that names the object or scope.
UX guidance Help the person reach a clear task outcome.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 list view when scanning and opening object summaries is faster than comparing columns or inspecting large visual cards.Make the current object or selection count explicit, update actions when scope changes, and route destructive or privacy-sensitive commands into confirmation, undo, restore, or review instead of running silently.Let users move quickly through frequent reversible actions, then recover from mistakes after seeing the result.Help the person reach a clear task outcome.
Good UI A message row reveals Archive on left swipe and More actions on right swipe, shows action labels behind the row, snaps back before threshold, and keeps a More menu for the same commands.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 ticket list row shows TCK-2048 Database backup failed, a one-line incident summary, Critical status, owner, updated time, selected state, and a labelled More actions menu.A Customer actions menu has Manage customer, Data requests, and Account risk sections, with Edit customer, Merge customer, Request data export, and Delete customer separated at the end.Deleting Quarterly report removes it from the list and shows a recovery panel saying Quarterly report deleted with an Undo task button.Delete Research archive? explains that 14 notes and shared links will be permanently removed, offers Keep archive, and labels the danger action Delete archive.
Bad UI A diagonal scroll inside a list activates a destructive swipe action while the user is trying to read older rows.A hidden edge swipe deletes a message while the user is trying to scroll the list.Every row has five unlabeled icon buttons, and the whole row also navigates.Safe, risky, disabled, external, and value-selection items share the same style and role.Undo action disappears before users can activate it.The red destructive action is enabled immediately and sits where users expect the routine primary button.
Good UX A user partially swipes a notification, sees Archive and Mark read labels, releases before threshold, and the row snaps back unchanged.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 filters tickets to Critical, selects two rows, opens the details panel for one ticket, then clears the filter and the selected count and active ticket remain understandable.A user opens Customer actions, chooses Duplicate customer, and receives status that names the customer and keeps focus anchored to the action context.Undo restores the deleted task to the list and reports Quarterly report restored.Cancel, Escape, and Keep archive leave the archive unchanged and return focus to Delete archive.
Bad UX A user swipes to scroll a horizontally cramped row and accidentally archives a critical alert.A user tries to scroll a feed but the product interprets a short diagonal movement as a destructive swipe action.A user tries to preview a file but the row click opens navigation while the small trailing icon deletes the file.A user activates a menu item that looks like a command but navigates away and loses unsaved context.The UI promises undo for a side effect that has already notified external recipients.Every archive, filter, and dismiss action opens the same confirmation until users click through automatically.
Best fit Users repeatedly perform simple item-level actions on touch-first rows.A touchscreen interaction needs deliberate design for gesture vocabulary, thresholds, feedback, target sizing, cancellation, and equivalent controls.Users need to scan and act on a collection of objects using compact summaries.A resource, row, card, selected set, or local page object has several contextual commands.The action is common and mistakes are likely.The action is destructive, irreversible, costly, security-sensitive, privacy-affecting, or externally visible.
Avoid when The action is rare, complex, high-impact, non-reversible, or requires review before execution.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.Users need to compare many records across shared attributes.Only one or two commands are needed and visible buttons would be faster.Recovery would restore only part of the user's lost work.The action is routine and easily reversible.
Required state Idle row state with visible row identity and discoverable action path.Touch down or gesture start state that identifies the active target.Default list state with label or heading, row count or context, visible row summaries, and primary row identity.Closed trigger or contextual entry point with resource scope.Normal state before the user action.Pre-action state with an explicit consequential trigger.
Accessibility burden Expose row action labels with the affected object name, such as Archive Budget review message.Provide a simple single-pointer alternative for multipoint or path-based gestures unless the gesture is essential.Use semantic list markup for ordinary object lists; use listbox only when rows are options in a single control.Give the trigger or menu an accessible name that includes the resource or selected-set scope.Make the undo control keyboard reachable and programmatically identifiable.Use alertdialog semantics or platform equivalent when the decision is urgent and requires a response.
Common misuse Making a hidden swipe the only way to archive, delete, complete, or reveal row actions.Making a hidden gesture the only way to find navigation, delete, refresh, zoom, or edit controls.Putting too many independent controls in every row until the list becomes a keyboard trap.Letting a bulk action menu run single-object commands against multiple selected items.Restoring only part of the prior state while implying full recovery.Asking users to confirm every routine action until they stop reading.

Swipe action

UI or UX
UI + UX - Horizontal item-level gesture that reveals or commits row-scoped actions
UI guidance
Render swipe action as a row-scoped horizontal gesture with clear direction, action label, background affordance, threshold feedback, cancel behavior, and a visible action-menu or button equivalent.
UX guidance
Help the person reach a clear task outcome.
Good UI
A message row reveals Archive on left swipe and More actions on right swipe, shows action labels behind the row, snaps back before threshold, and keeps a More menu for the same commands.
Bad UI
A diagonal scroll inside a list activates a destructive swipe action while the user is trying to read older rows.
Good UX
A user partially swipes a notification, sees Archive and Mark read labels, releases before threshold, and the row snaps back unchanged.
Bad UX
A user swipes to scroll a horizontally cramped row and accidentally archives a critical alert.
Best fit
Users repeatedly perform simple item-level actions on touch-first rows.
Avoid when
The action is rare, complex, high-impact, non-reversible, or requires review before execution.
Required state
Idle row state with visible row identity and discoverable action path.
Accessibility burden
Expose row action labels with the affected object name, such as Archive Budget review message.
Common misuse
Making a hidden swipe the only way to archive, delete, complete, or reveal row actions.

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.

List view

UI or UX
UI + UX - Vertical object-summary browsing surface
UI guidance
Render a labelled vertical list where each row has a strong primary label, concise supporting text, metadata, status, optional leading media, and row-scoped actions with clear hit targets.
UX guidance
Use list view when scanning and opening object summaries is faster than comparing columns or inspecting large visual cards.
Good UI
A ticket list row shows TCK-2048 Database backup failed, a one-line incident summary, Critical status, owner, updated time, selected state, and a labelled More actions menu.
Bad UI
Every row has five unlabeled icon buttons, and the whole row also navigates.
Good UX
A user filters tickets to Critical, selects two rows, opens the details panel for one ticket, then clears the filter and the selected count and active ticket remain understandable.
Bad UX
A user tries to preview a file but the row click opens navigation while the small trailing icon deletes the file.
Best fit
Users need to scan and act on a collection of objects using compact summaries.
Avoid when
Users need to compare many records across shared attributes.
Required state
Default list state with label or heading, row count or context, visible row summaries, and primary row identity.
Accessibility burden
Use semantic list markup for ordinary object lists; use listbox only when rows are options in a single control.
Common misuse
Putting too many independent controls in every row until the list becomes a keyboard trap.

Action menu

UI or UX
UI + UX - Contextual command list for a resource or selection
UI guidance
Render a compact menu of verb-led actions scoped to one resource, row, card, selected set, or page object, with clear section headings, object-aware labels, disabled reasons, and separated dangerous commands.
UX guidance
Make the current object or selection count explicit, update actions when scope changes, and route destructive or privacy-sensitive commands into confirmation, undo, restore, or review instead of running silently.
Good UI
A Customer actions menu has Manage customer, Data requests, and Account risk sections, with Edit customer, Merge customer, Request data export, and Delete customer separated at the end.
Bad UI
Safe, risky, disabled, external, and value-selection items share the same style and role.
Good UX
A user opens Customer actions, chooses Duplicate customer, and receives status that names the customer and keeps focus anchored to the action context.
Bad UX
A user activates a menu item that looks like a command but navigates away and loses unsaved context.
Best fit
A resource, row, card, selected set, or local page object has several contextual commands.
Avoid when
Only one or two commands are needed and visible buttons would be faster.
Required state
Closed trigger or contextual entry point with resource scope.
Accessibility burden
Give the trigger or menu an accessible name that includes the resource or selected-set scope.
Common misuse
Letting a bulk action menu run single-object commands against multiple selected items.

Undo

UI or UX
UX - Post-action recovery behavior
UI guidance
Show a named recovery affordance after the completed action, such as Undo delete for a specific task, near the result or in a consistent status region.
UX guidance
Let users move quickly through frequent reversible actions, then recover from mistakes after seeing the result.
Good UI
Deleting Quarterly report removes it from the list and shows a recovery panel saying Quarterly report deleted with an Undo task button.
Bad UI
Undo action disappears before users can activate it.
Good UX
Undo restores the deleted task to the list and reports Quarterly report restored.
Bad UX
The UI promises undo for a side effect that has already notified external recipients.
Best fit
The action is common and mistakes are likely.
Avoid when
Recovery would restore only part of the user's lost work.
Required state
Normal state before the user action.
Accessibility burden
Make the undo control keyboard reachable and programmatically identifiable.
Common misuse
Restoring only part of the prior state while implying full recovery.

Confirmation dialog

UI or UX
UI + UX - Consequential alert decision
UI guidance
Render an alert-style modal decision with a specific title, consequence description, safe cancellation, and a destructive action label that names the object or scope.
UX guidance
Help the person reach a clear task outcome.
Good UI
Delete Research archive? explains that 14 notes and shared links will be permanently removed, offers Keep archive, and labels the danger action Delete archive.
Bad UI
The red destructive action is enabled immediately and sits where users expect the routine primary button.
Good UX
Cancel, Escape, and Keep archive leave the archive unchanged and return focus to Delete archive.
Bad UX
Every archive, filter, and dismiss action opens the same confirmation until users click through automatically.
Best fit
The action is destructive, irreversible, costly, security-sensitive, privacy-affecting, or externally visible.
Avoid when
The action is routine and easily reversible.
Required state
Pre-action state with an explicit consequential trigger.
Accessibility burden
Use alertdialog semantics or platform equivalent when the decision is urgent and requires a response.
Common misuse
Asking users to confirm every routine action until they stop reading.
Decision rules
  • Choose swipe action when a horizontal gesture on one row reveals or commits a row-scoped action such as Archive, Mark read, Complete, Pin, Dismiss, or Delete.
  • Choose touch gesture when the design problem is general gesture recognition, target sizing, feedback, cancellation, multipoint alternatives, and conflict rules across touch interactions.
  • Choose list view when the main design problem is row anatomy, scanability, selection, sorting, filtering, pagination, row navigation, or list density.
  • Choose action menu when commands must be visible from an explicit trigger, when the action set is larger than a small swipe affordance can hold, or when discoverability matters more than gesture speed.
  • Choose undo when the key question is how users recover after a completed reversible row action.
  • Choose confirmation dialog when a destructive or high-impact row action cannot be safely undone and users need consequence review before execution.
  • Swipe action must define direction, row ownership, partial reveal, threshold, release boundary, snap-back, revealed label, equivalent non-gesture control, status message, and recovery or confirmation path.
  • Swipe action must not be the only path to a primary, destructive, account, security, payment, consent, or critical workflow command.
  • Swipe action conflicts must be resolved against vertical scroll, pull-to-refresh, row navigation, row selection, drag handles, nested horizontal content, and system back gestures.
  • Do not treat a list row with an action menu or a generic touch gesture as swipe action unless the horizontal row gesture behavior itself is designed.
Inspect live examples
Failure modes
  • A hidden swipe deletes a row before users see the action label or threshold.
  • A visible row menu and the swipe action expose different commands for the same object.
  • A diagonal scroll triggers archive while the user is trying to read older rows.
  • A screen reader user cannot discover the row action because it exists only as a path-based gesture.
  • A destructive swipe has no undo and no confirmation despite irreversible side effects.
  • The comparison treats row anatomy, gesture mechanics, command menus, post-action recovery, and pre-action review as one interchangeable pattern.

Saved items