Back to compare picker

Compare view vs Table vs Card grid vs Details panel

Use Compare view when users intentionally select a small set of similar items and need side-by-side attribute tradeoff support; use table, card grid, or details panel when the task is general row scanning, browsing, or inspecting one object.

Learn the decision

Match the interaction to the person's task

Use Compare view when users intentionally select a small set of similar items and need side-by-side attribute tradeoff support; use table, card grid, or details panel when the task is general row scanning, browsing, or inspecting one object.

Compare view

Use it when: Users need to choose among similar offerings using multiple comparable attributes.

Make this state clear: One compared item state that explains another item is needed for meaningful comparison.

Observe the result: A shopper selects three laptops, opens comparison, hides identical specs, highlights battery and memory differences, removes the weakest option, and returns to the same shortlist in the product grid.

Study the full pattern →

Table

Use it when: Records share comparable attributes that users need to scan in aligned columns.

Make this state clear: Default table state with caption, visible headers, row values, and result count or context.

Observe the result: A user sorts by Amount descending, filters to Pending, moves to page 2, and the table keeps its caption, active sort, active filter, row count, and selected payment context.

Study the full pattern →

Card grid

Use it when: Users browse peer objects where visual preview, compact identity, and quick first-pass selection matter.

Make this state clear: Default grid with heading or label, result count, active view controls, and at least one full row of peer cards.

Observe the result: A shopper filters a product grid to In stock, switches from comfortable to compact density, selects three items, and the selected count and item positions remain understandable.

Study the full pattern →

Details panel

Use it when: Users repeatedly inspect selected records, tickets, alerts, files, assets, tasks, comments, or locations while staying in a work surface.

Make this state clear: Selected-object state with source item highlighted and panel title naming the same object.

Observe the result: A keyboard user moves down a ticket list, the highlighted row and details panel update together, and focus remains in the list until the user chooses Open full ticket.

Study the full pattern →

Practice the judgment: Imagine this situation: Compared items lose visible identity while users scroll through attributes, forcing memory work. 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 Compare viewTableCard gridDetails panel
UI or UX UI + UX - Selected side-by-side attribute comparison of peer itemsUI + UX - Semantic row-and-column data comparison surfaceUI + UX - Responsive multi-column grid of peer object cardsUI + UX - Persistent selected-object inspection panel
UI guidance Render compared items as a bounded side-by-side matrix with item identity, thumbnail or icon when useful, price or status, remove controls, action controls, grouped attribute rows, row labels, consistent units, missing-value notation, and difference indicators.Render a table with a specific caption or heading, visible column headers, optional row headers, aligned values, consistent row actions, and enough spacing for scanability.Arrange peer object cards in a responsive grid with stable tile widths, predictable gutters, consistent preview aspect ratios, titles, compact metadata, state labels, and one primary action area.Render a details panel as a persistent side or adjacent region that names the currently selected object, shows high-value metadata, status, and local secondary actions, and keeps the object selection visible in the source list, table, map, board, or feed.
UX guidance Use Compare view when users have selected a small set of similar items and need to weigh several meaningful attributes together before choosing, saving, buying, applying, or discarding options.Use tables when aligned columns help users compare records, find exceptions, audit values, or triage work faster than opening each item.Use card grid when users need visual browsing, light comparison, and quick selection across many peer objects that can be understood from compact card summaries.Use a details panel when users need to select and compare nearby objects while keeping a durable inspection area visible, such as reviewing records, tickets, assets, alerts, comments, files, or map locations.
Good UI A laptop compare view shows three selected models as columns, grouped rows for performance, display, portability, and support, a sticky model header with price, and a differences-only switch.A payment review table has the caption June vendor payments, headers Vendor, Status, Due date, Amount, and Action, right-aligned amounts, and row actions labelled by vendor.A course catalog grid shows four cards per row on desktop, each with the same image ratio, course title, provider, level, duration, saved state, and Enroll action.A ticket queue keeps TCK-2048 selected in the list and shows a right details panel with requester, severity, SLA, owner, activity, and Open full ticket.
Bad UI A side-by-side card layout repeats marketing copy but omits shared row labels, units, missing-value marks, and difference highlighting.Mobile stacking removes headers and turns rows into unlabeled paragraphs.Each card has different metadata order, different action placement, and different height, making the grid look rich but hard to scan.A panel titled Details shows metrics from the previously selected record after the list selection changes.
Good UX A shopper selects three laptops, opens comparison, hides identical specs, highlights battery and memory differences, removes the weakest option, and returns to the same shortlist in the product grid.A user sorts by Amount descending, filters to Pending, moves to page 2, and the table keeps its caption, active sort, active filter, row count, and selected payment context.A shopper filters a product grid to In stock, switches from comfortable to compact density, selects three items, and the selected count and item positions remain understandable.A keyboard user moves down a ticket list, the highlighted row and details panel update together, and focus remains in the list until the user chooses Open full ticket.
Bad UX A compare view resets the selected items after sorting or returning to browse, so the user must rebuild the shortlist from memory.Mobile stacking removes headers and turns rows into unlabeled paragraphs.A user filters to saved assets and loses selection because the product tracked selected cards by visible position rather than object ID.Sorting the list silently clears the highlighted row while the panel continues to show an old ticket.
Best fit Users need to choose among similar offerings using multiple comparable attributes.Records share comparable attributes that users need to scan in aligned columns.Users browse peer objects where visual preview, compact identity, and quick first-pass selection matter.Users repeatedly inspect selected records, tickets, alerts, files, assets, tasks, comments, or locations while staying in a work surface.
Avoid when Items are unique, nonexclusive, too simple, too cheap, or mostly aesthetic.The task depends on rich previews, imagery, or uneven metadata.Users need dense scanning of many text-heavy records.The content is just a short temporary preview before navigation.
Required state One compared item state that explains another item is needed for meaningful comparison.Default table state with caption, visible headers, row values, and result count or context.Default grid with heading or label, result count, active view controls, and at least one full row of peer cards.Selected-object state with source item highlighted and panel title naming the same object.
Accessibility burden Expose comparison title, selected item count, maximum item count, item names, row labels, group headings, units, and missing-value meanings as text.Use native table semantics for tabular data rather than div-only rows.Give the grid or list a heading, result count, and concise description of active filters or sort order.Name the panel region from the selected object's title or a heading that includes the object identity.
Common misuse Allowing too many compared items so columns become unreadable.Using table markup to create page columns or layout spacing.Using card grid as decorative chrome for rows that need dense scanning or aligned comparison.Keeping the previous ticket summary in the persistent panel after the highlighted row has moved to a different ticket.

Compare view

UI or UX
UI + UX - Selected side-by-side attribute comparison of peer items
UI guidance
Render compared items as a bounded side-by-side matrix with item identity, thumbnail or icon when useful, price or status, remove controls, action controls, grouped attribute rows, row labels, consistent units, missing-value notation, and difference indicators.
UX guidance
Use Compare view when users have selected a small set of similar items and need to weigh several meaningful attributes together before choosing, saving, buying, applying, or discarding options.
Good UI
A laptop compare view shows three selected models as columns, grouped rows for performance, display, portability, and support, a sticky model header with price, and a differences-only switch.
Bad UI
A side-by-side card layout repeats marketing copy but omits shared row labels, units, missing-value marks, and difference highlighting.
Good UX
A shopper selects three laptops, opens comparison, hides identical specs, highlights battery and memory differences, removes the weakest option, and returns to the same shortlist in the product grid.
Bad UX
A compare view resets the selected items after sorting or returning to browse, so the user must rebuild the shortlist from memory.
Best fit
Users need to choose among similar offerings using multiple comparable attributes.
Avoid when
Items are unique, nonexclusive, too simple, too cheap, or mostly aesthetic.
Required state
One compared item state that explains another item is needed for meaningful comparison.
Accessibility burden
Expose comparison title, selected item count, maximum item count, item names, row labels, group headings, units, and missing-value meanings as text.
Common misuse
Allowing too many compared items so columns become unreadable.

Table

UI or UX
UI + UX - Semantic row-and-column data comparison surface
UI guidance
Render a table with a specific caption or heading, visible column headers, optional row headers, aligned values, consistent row actions, and enough spacing for scanability.
UX guidance
Use tables when aligned columns help users compare records, find exceptions, audit values, or triage work faster than opening each item.
Good UI
A payment review table has the caption June vendor payments, headers Vendor, Status, Due date, Amount, and Action, right-aligned amounts, and row actions labelled by vendor.
Bad UI
Mobile stacking removes headers and turns rows into unlabeled paragraphs.
Good UX
A user sorts by Amount descending, filters to Pending, moves to page 2, and the table keeps its caption, active sort, active filter, row count, and selected payment context.
Bad UX
Mobile stacking removes headers and turns rows into unlabeled paragraphs.
Best fit
Records share comparable attributes that users need to scan in aligned columns.
Avoid when
The task depends on rich previews, imagery, or uneven metadata.
Required state
Default table state with caption, visible headers, row values, and result count or context.
Accessibility burden
Use native table semantics for tabular data rather than div-only rows.
Common misuse
Using table markup to create page columns or layout spacing.

Card grid

UI or UX
UI + UX - Responsive multi-column grid of peer object cards
UI guidance
Arrange peer object cards in a responsive grid with stable tile widths, predictable gutters, consistent preview aspect ratios, titles, compact metadata, state labels, and one primary action area.
UX guidance
Use card grid when users need visual browsing, light comparison, and quick selection across many peer objects that can be understood from compact card summaries.
Good UI
A course catalog grid shows four cards per row on desktop, each with the same image ratio, course title, provider, level, duration, saved state, and Enroll action.
Bad UI
Each card has different metadata order, different action placement, and different height, making the grid look rich but hard to scan.
Good UX
A shopper filters a product grid to In stock, switches from comfortable to compact density, selects three items, and the selected count and item positions remain understandable.
Bad UX
A user filters to saved assets and loses selection because the product tracked selected cards by visible position rather than object ID.
Best fit
Users browse peer objects where visual preview, compact identity, and quick first-pass selection matter.
Avoid when
Users need dense scanning of many text-heavy records.
Required state
Default grid with heading or label, result count, active view controls, and at least one full row of peer cards.
Accessibility burden
Give the grid or list a heading, result count, and concise description of active filters or sort order.
Common misuse
Using card grid as decorative chrome for rows that need dense scanning or aligned comparison.

Details panel

UI or UX
UI + UX - Persistent selected-object inspection panel
UI guidance
Render a details panel as a persistent side or adjacent region that names the currently selected object, shows high-value metadata, status, and local secondary actions, and keeps the object selection visible in the source list, table, map, board, or feed.
UX guidance
Use a details panel when users need to select and compare nearby objects while keeping a durable inspection area visible, such as reviewing records, tickets, assets, alerts, comments, files, or map locations.
Good UI
A ticket queue keeps TCK-2048 selected in the list and shows a right details panel with requester, severity, SLA, owner, activity, and Open full ticket.
Bad UI
A panel titled Details shows metrics from the previously selected record after the list selection changes.
Good UX
A keyboard user moves down a ticket list, the highlighted row and details panel update together, and focus remains in the list until the user chooses Open full ticket.
Bad UX
Sorting the list silently clears the highlighted row while the panel continues to show an old ticket.
Best fit
Users repeatedly inspect selected records, tickets, alerts, files, assets, tasks, comments, or locations while staying in a work surface.
Avoid when
The content is just a short temporary preview before navigation.
Required state
Selected-object state with source item highlighted and panel title naming the same object.
Accessibility burden
Name the panel region from the selected object's title or a heading that includes the object identity.
Common misuse
Keeping the previous ticket summary in the persistent panel after the highlighted row has moved to a different ticket.
Decision rules
  • Choose Compare view when users have narrowed to a small shortlist of similar offerings and need to weigh attributes side by side before choosing, removing, saving, or acting on one item.
  • Choose table when the dataset itself is the work surface and users need to scan many records in rows rather than intentionally compare a selected shortlist of offerings as columns.
  • Choose card grid when users are still browsing or discovering candidates and visual previews, compact object cards, filters, and saving are more important than row-aligned attribute tradeoffs.
  • Choose details panel when users inspect one selected object beside a list or grid and do not need several peer objects kept visible with the same attribute rows.
  • A Compare view should expose selected items, item limit, add and remove controls, comparable attribute rows, grouped attributes, sticky or persistent item identity, difference highlighting, identical-row hiding, missing-value explanations, and a clear action for each compared item.
  • Use Compare view for compensatory decisions where multiple attributes matter together; use filters or facets first when a single hard requirement should eliminate candidates before comparison.
  • Do not use Compare view when items are unique, nonexclusive, cheap, simple, aesthetic-only, or too dissimilar to share meaningful attributes.
  • Keep product names, key price or status, and thumbnails visible while users scroll long attributes so they do not have to memorize which column is which.
  • On mobile, reduce the compared set or let users choose a subset of items and attributes rather than forcing a full desktop-wide matrix into the viewport.
  • If many exact records, bulk actions, editing, or export dominate the task, route users to table or data-grid behavior instead of adding compare controls to every row.
Inspect live examples
Failure modes
  • Compared items lose visible identity while users scroll through attributes, forcing memory work.
  • The view allows too many columns, making every row unreadable and horizontal scrolling excessive.
  • Identical rows dominate the view and differences are neither hidden nor highlighted.
  • Attributes are missing or named inconsistently across items, so users compare unlike values.
  • The compare action is hidden until hover or not available on keyboard and touch paths.
  • Mobile users receive the desktop comparison matrix with clipped columns and no subset control.

Saved items