Back to compare picker

Touch gesture vs Carousel vs Map view vs Bottom sheet vs Drag-and-drop upload vs Data visualization

Use touch gesture for the general touchscreen interaction contract: gesture vocabulary, thresholds, feedback, cancellation, target sizing, and equivalent controls. Use carousel, map view, bottom sheet, drag-and-drop upload, and data visualization when gesture behavior is only one part of a more specific content or component pattern.

Learn the decision

Match the interaction to the person's task

Use touch gesture for the general touchscreen interaction contract: gesture vocabulary, thresholds, feedback, cancellation, target sizing, and equivalent controls. Use carousel, map view, bottom sheet, drag-and-drop upload, and data visualization when gesture behavior is only one part of a more specific content or component 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 →

Carousel

Use it when: A small set of peer slides must share one constrained display area.

Make this state clear: Initial slide state with carousel label, slide identity, current position, and previous or next controls.

Observe the result: A keyboard user tabs to Stop rotation first, pauses the carousel, moves to Next slide, activates slide 3, and focus remains on the chosen control while the status updates.

Study the full pattern →

Map view

Use it when: Users choose or inspect objects by where they are, how near they are, or what area they fall inside.

Make this state clear: Default map state with visible viewport, zoom level or distance context, markers, layer state, result count, and synchronized fallback list.

Observe the result: A dispatcher pans to the west district, the result count and list update to the current bounds, a cluster expands at closer zoom, and the selected incident popup remains tied to the marker.

Study the full pattern →

Bottom sheet

Use it when: Mobile users need extra contextual detail or controls while staying oriented to a map, feed, route, media item, or selected object.

Make this state clear: Closed state with a trigger tied to the current map item, feed card, route, media item, or contextual action.

Observe the result: Users open a station sheet from the map, peek at the station identity, expand to half height for next departures, expand to full height for all stops, collapse back to the map, and keep the selected pin visible.

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 →

Data visualization

Use it when: Users need to see trends, comparisons, rankings, distributions, relationships, composition, anomalies, or uncertainty.

Make this state clear: Default chart with title, question, data scope, axes, units, legend, source or freshness note, visible filters, and data alternative.

Observe the result: An analyst switches from revenue to conversion rate, the y-axis unit changes, target and annotation stay aligned, and the selected month tooltip and table row update from the same data.

Study the full pattern →

Practice the judgment: Imagine this situation: A carousel requires a fast horizontal flick and hides previous and next buttons. 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 Touch gestureCarouselMap viewBottom sheetDrag-and-drop uploadData visualization
UI or UX UI + UX - Touch-first gesture vocabulary and fallback contract for taps, swipes, drags, pinches, and multi-touch interactionsUI + UX - Sequential slide viewer for a small peer content setUI + UX - Spatial viewport for location-based objects, layers, and routesUI + UX - Mobile bottom-anchored contextual overlay with detentsUI + UX - Drop-zone file upload enhancement with file input fallbackUI + UX - Encoded visual analysis of quantitative or categorical data
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.Render a carousel as a labelled region with one current slide or a small visible subset, clear previous and next controls, named slide picker controls or thumbnails, current slide position, and a pause or play control if rotation exists.Render a real spatial viewport with visible map region, zoom state, scale or distance context, markers or shapes anchored to coordinates, selected-place detail, cluster counts, visible layer/filter controls, and a fallback list or table for the same results.Render a bottom sheet as a lower-edge surface with a visible handle, rounded top edge, safe-area spacing, meaningful peek content, and controls that remain reachable from the bottom of the screen.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 a chart with a specific analytic question, title, dataset scope, mark type, axis labels, units, tick labels, scale baseline, legend, annotations, source or freshness note, selected mark, tooltip or detail, and data table alternative.
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.Make user control stronger than motion: avoid auto-advance by default, stop rotation on focus or hover, preserve focus after slide changes, and keep the current slide stable while users read or interact.Use Map view when the user's decision depends on where objects are, how far apart they are, what falls inside the current area, which route or coverage applies, or how dense nearby points are.Use bottom sheets for mobile contextual details or controls that benefit from lower-edge reach while preserving orientation to the current background object.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 Data visualization when visual encoding helps users detect trends, comparisons, rankings, distributions, relationships, outliers, part-to-whole composition, or uncertainty faster than reading rows.
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.A product tour carousel shows one feature slide at a time with Previous, Next, Stop rotation, labelled slide dots, and text announcing Slide 2 of 4.A clinic finder map shows visible bounds, zoom level, selected clinic marker, appointment availability markers, a transit layer toggle, cluster counts, distance chips, and a synchronized results list.A map pin opens a bottom sheet with a handle, station name, distance, primary route action, half-height service details, and full-height stop list.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 revenue trend chart shows month on the x-axis, revenue in USD on the y-axis, a target line, color-coded channels with legend labels, selected month tooltip, annotation for a campaign, and a data table toggle.
Bad UI A hidden edge swipe deletes a message while the user is trying to scroll the list.Auto-rotation moves content before users finish reading.The selected popup is detached from the marker or opens outside the viewport.A bottom sheet contains a long settings workflow and bottom navigation links, with the primary action below the device safe area.The whole page becomes a hidden drop target that opens the dropped file in the browser when users miss the box.Axes or units are missing and magnitude is ambiguous.
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.A keyboard user tabs to Stop rotation first, pauses the carousel, moves to Next slide, activates slide 3, and focus remains on the chosen control while the status updates.A dispatcher pans to the west district, the result count and list update to the current bounds, a cluster expands at closer zoom, and the selected incident popup remains tied to the marker.Users open a station sheet from the map, peek at the station identity, expand to half height for next departures, expand to full height for all stops, collapse back to the map, and keep the selected pin visible.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.An analyst switches from revenue to conversion rate, the y-axis unit changes, target and annotation stay aligned, and the selected month tooltip and table row update from the same data.
Bad UX A user tries to scroll a feed but the product interprets a short diagonal movement as a destructive swipe action.A user starts reading shipping details and the carousel advances to a different slide before they finish.A user filters to open locations but the map markers update while the list still shows closed locations, causing the wrong branch to be selected.Users drag on the list expecting to scroll, but the whole sheet dismisses and loses the selected map pin.A user drags a file over the page, misses the small target, and the browser navigates to the file, wiping unsaved answers.A chart filter removes the low-performing segment but the legend and annotation still describe the full dataset.
Best fit A touchscreen interaction needs deliberate design for gesture vocabulary, thresholds, feedback, target sizing, cancellation, and equivalent controls.A small set of peer slides must share one constrained display area.Users choose or inspect objects by where they are, how near they are, or what area they fall inside.Mobile users need extra contextual detail or controls while staying oriented to a map, feed, route, media item, or selected object.Users often upload files from a desktop file manager and benefit from dropping one or more files into a visible target.Users need to see trends, comparisons, rankings, distributions, relationships, composition, anomalies, or uncertainty.
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.Every item is important or users need to compare items.Location is only a label or decorative backdrop.The surface contains persistent app destinations or global navigation.A normal file input is sufficient and the extra drop-zone states would add confusion.The data question is a single number, a record list, a geographic location, or an event audit trail.
Required state Touch down or gesture start state that identifies the active target.Initial slide state with carousel label, slide identity, current position, and previous or next controls.Default map state with visible viewport, zoom level or distance context, markers, layer state, result count, and synchronized fallback list.Closed state with a trigger tied to the current map item, feed card, route, media item, or contextual action.Idle drop zone with visible label, requirements, and choose-file fallback.Default chart with title, question, data scope, axes, units, legend, source or freshness note, visible filters, and data alternative.
Accessibility burden Provide a simple single-pointer alternative for multipoint or path-based gestures unless the gesture is essential.Label the carousel region by its purpose, such as Featured product tour or Case study slides.Expose the map name, current area, result count, active filters, layers, selected place, and location permission state as text.Give the bottom sheet a visible heading or context label and expose it as the accessible name.Keep a visible label and instructions that name both drag-and-drop and choose-file paths.Expose chart title, purpose, data scope, chart type, axes, units, legend, selected point, filter state, and source as text.
Common misuse Making a hidden gesture the only way to find navigation, delete, refresh, zoom, or edit controls.Hiding critical content or required tasks on later slides.Treating geolocation denial as a dead end.Using a bottom sheet as hidden global navigation or a dumping ground for unrelated commands.Replacing the normal file chooser with a drop zone that only pointer users can operate.Choosing a chart type that mismatches the data relationship.

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.

Carousel

UI or UX
UI + UX - Sequential slide viewer for a small peer content set
UI guidance
Render a carousel as a labelled region with one current slide or a small visible subset, clear previous and next controls, named slide picker controls or thumbnails, current slide position, and a pause or play control if rotation exists.
UX guidance
Make user control stronger than motion: avoid auto-advance by default, stop rotation on focus or hover, preserve focus after slide changes, and keep the current slide stable while users read or interact.
Good UI
A product tour carousel shows one feature slide at a time with Previous, Next, Stop rotation, labelled slide dots, and text announcing Slide 2 of 4.
Bad UI
Auto-rotation moves content before users finish reading.
Good UX
A keyboard user tabs to Stop rotation first, pauses the carousel, moves to Next slide, activates slide 3, and focus remains on the chosen control while the status updates.
Bad UX
A user starts reading shipping details and the carousel advances to a different slide before they finish.
Best fit
A small set of peer slides must share one constrained display area.
Avoid when
Every item is important or users need to compare items.
Required state
Initial slide state with carousel label, slide identity, current position, and previous or next controls.
Accessibility burden
Label the carousel region by its purpose, such as Featured product tour or Case study slides.
Common misuse
Hiding critical content or required tasks on later slides.

Map view

UI or UX
UI + UX - Spatial viewport for location-based objects, layers, and routes
UI guidance
Render a real spatial viewport with visible map region, zoom state, scale or distance context, markers or shapes anchored to coordinates, selected-place detail, cluster counts, visible layer/filter controls, and a fallback list or table for the same results.
UX guidance
Use Map view when the user's decision depends on where objects are, how far apart they are, what falls inside the current area, which route or coverage applies, or how dense nearby points are.
Good UI
A clinic finder map shows visible bounds, zoom level, selected clinic marker, appointment availability markers, a transit layer toggle, cluster counts, distance chips, and a synchronized results list.
Bad UI
The selected popup is detached from the marker or opens outside the viewport.
Good UX
A dispatcher pans to the west district, the result count and list update to the current bounds, a cluster expands at closer zoom, and the selected incident popup remains tied to the marker.
Bad UX
A user filters to open locations but the map markers update while the list still shows closed locations, causing the wrong branch to be selected.
Best fit
Users choose or inspect objects by where they are, how near they are, or what area they fall inside.
Avoid when
Location is only a label or decorative backdrop.
Required state
Default map state with visible viewport, zoom level or distance context, markers, layer state, result count, and synchronized fallback list.
Accessibility burden
Expose the map name, current area, result count, active filters, layers, selected place, and location permission state as text.
Common misuse
Treating geolocation denial as a dead end.

Bottom sheet

UI or UX
UI + UX - Mobile bottom-anchored contextual overlay with detents
UI guidance
Render a bottom sheet as a lower-edge surface with a visible handle, rounded top edge, safe-area spacing, meaningful peek content, and controls that remain reachable from the bottom of the screen.
UX guidance
Use bottom sheets for mobile contextual details or controls that benefit from lower-edge reach while preserving orientation to the current background object.
Good UI
A map pin opens a bottom sheet with a handle, station name, distance, primary route action, half-height service details, and full-height stop list.
Bad UI
A bottom sheet contains a long settings workflow and bottom navigation links, with the primary action below the device safe area.
Good UX
Users open a station sheet from the map, peek at the station identity, expand to half height for next departures, expand to full height for all stops, collapse back to the map, and keep the selected pin visible.
Bad UX
Users drag on the list expecting to scroll, but the whole sheet dismisses and loses the selected map pin.
Best fit
Mobile users need extra contextual detail or controls while staying oriented to a map, feed, route, media item, or selected object.
Avoid when
The surface contains persistent app destinations or global navigation.
Required state
Closed state with a trigger tied to the current map item, feed card, route, media item, or contextual action.
Accessibility burden
Give the bottom sheet a visible heading or context label and expose it as the accessible name.
Common misuse
Using a bottom sheet as hidden global navigation or a dumping ground for unrelated commands.

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.

Data visualization

UI or UX
UI + UX - Encoded visual analysis of quantitative or categorical data
UI guidance
Render a chart with a specific analytic question, title, dataset scope, mark type, axis labels, units, tick labels, scale baseline, legend, annotations, source or freshness note, selected mark, tooltip or detail, and data table alternative.
UX guidance
Use Data visualization when visual encoding helps users detect trends, comparisons, rankings, distributions, relationships, outliers, part-to-whole composition, or uncertainty faster than reading rows.
Good UI
A revenue trend chart shows month on the x-axis, revenue in USD on the y-axis, a target line, color-coded channels with legend labels, selected month tooltip, annotation for a campaign, and a data table toggle.
Bad UI
Axes or units are missing and magnitude is ambiguous.
Good UX
An analyst switches from revenue to conversion rate, the y-axis unit changes, target and annotation stay aligned, and the selected month tooltip and table row update from the same data.
Bad UX
A chart filter removes the low-performing segment but the legend and annotation still describe the full dataset.
Best fit
Users need to see trends, comparisons, rankings, distributions, relationships, composition, anomalies, or uncertainty.
Avoid when
The data question is a single number, a record list, a geographic location, or an event audit trail.
Required state
Default chart with title, question, data scope, axes, units, legend, source or freshness note, visible filters, and data alternative.
Accessibility burden
Expose chart title, purpose, data scope, chart type, axes, units, legend, selected point, filter state, and source as text.
Common misuse
Choosing a chart type that mismatches the data relationship.
Decision rules
  • Choose touch gesture when the design problem is how touch input itself is recognized, previewed, canceled, committed, and made available through non-gesture alternatives.
  • Choose carousel when horizontal swipe or drag moves through a set of panels, cards, media items, or recommendations and the primary questions are position, previous or next controls, pagination, auto-advance, and content discoverability.
  • Choose map view when pinch, pan, drag, zoom, marker selection, clustering, geolocation, and spatial target density are part of a geographic browsing surface.
  • Choose bottom sheet when a drag changes a bottom-anchored contextual overlay, detent, or dismissal state; keep scroll-versus-drag priority in the sheet contract.
  • Choose drag-and-drop upload when pointer or touch movement is specifically a file-selection enhancement with drop-zone, rejected drop, file queue, progress, remove, retry, and file-input fallback states.
  • Choose data visualization when touch is used to inspect marks, pan ranges, zoom charts, or reveal values and the main issue is data comprehension, exact value access, series selection, and chart navigation.
  • Touch gesture must provide single-pointer alternatives for multipoint or path-based functions such as pinch, two-finger swipe, rotate, fast flick, and strict gesture paths unless the gesture is essential.
  • Touch gesture must define target size, target spacing, start region, movement threshold, direction lock, velocity, scroll conflict, cancellation, commit boundary, system gesture boundary, and recovery.
  • Do not use touch gesture as a completion bucket for specialized patterns that need their own rules, such as carousel pagination, map marker precision, bottom-sheet detents, file-drop validation, or chart value inspection.
  • Do not hide critical, destructive, payment, consent, security, account, or legal actions behind gesture-only behavior.
Inspect live examples
Failure modes
  • A map has pinch zoom but no plus, minus, reset, or single-pointer controls.
  • A carousel requires a fast horizontal flick and hides previous and next buttons.
  • A feed scroll accidentally triggers a row delete because diagonal movement is interpreted as an action too early.
  • A bottom sheet drag fights inner list scrolling and dismisses the sheet while users are trying to read.
  • A file uploader says drag here but has no file-picker fallback for keyboard, touch, or assistive technology users.
  • A chart reveals exact values only through pointer hover, so touch users cannot inspect the same data.
  • A keyboard shortcut is the only alternative to a multipoint gesture, leaving pointer-only assistive technology users without a simple pointer path.
  • Targets are too small or too close, causing accidental activation on touchscreens.

Saved items