| UI or UX | UI + UX - Horizontal item-level gesture that reveals or commits row-scoped actions | UI + UX - Touch-first gesture vocabulary and fallback contract for taps, swipes, drags, pinches, and multi-touch interactions | UI + UX - Vertical object-summary browsing surface | UI + UX - Contextual command list for a resource or selection | UX - Post-action recovery behavior | UI + 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. |