Back to compare picker

Details panel vs Drawer vs Hover card vs Accordion

Choose details panel when selecting a row, card, map item, issue, alert, or record should keep a persistent inspection area visible while users continue browsing nearby objects.

Decision dimensions

Dimension Details panelDrawerHover cardAccordion
UI or UX UI + UX - Persistent selected-object inspection panelUI + UX - Supplemental edge panel for current-context detail or light actionsUI + UX - Rich preview surface on hover or focusUI + UX - Grouped show-hide sections for related page content
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.Render a drawer as an edge-aligned panel with a visible heading, selected-object identity, close control, stable width, and clear relationship to the page content it supplements.Render a hover card as a compact preview visually tied to a link, mention, row, object chip, file, person, or chart mark, with a title, key metadata, optional thumbnail, recent activity, and a clear route to the full object.Render each section title as a real button inside an appropriate heading, expose expanded or collapsed state, and connect the button to the panel it controls.
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.Use drawers to preserve parent-page context while users inspect supplemental detail or perform simple adjacent actions.Use hover cards to help users inspect an object before navigating, especially in dense lists, mentions, dashboards, file browsers, issue trackers, and relationship-heavy interfaces.Use an accordion when a page has several related sections that users may inspect selectively while still needing an overview of all section labels.
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.A right-side case details drawer opens from a table row, names Claim C-1042, shows status, owner, activity, and a close button while the table remains visible.Hovering or focusing @Maya Chen opens a card with avatar, role, local time, current project, recent activity, and View profile link.A product policy page shows Shipping, Returns, Warranty, and Contact sections as heading buttons with clear expanded states and one open panel.
Bad UI A panel titled Details shows metrics from the previously selected record after the list selection changes.A panel slides over the table with the title Details, no close control, and no selected record name.A hover card contains a long editable form, delete buttons, filters, and settings controls.A page hides every required instruction behind plus icons with no headings, state, or expand-all route.
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.Opening the drawer preserves the table filter and selected row, Next item updates the drawer title, Escape closes it, and focus returns to the selected row.A user focuses @Maya Chen, reads the profile preview, moves the pointer into the card without it closing, presses Escape, and focus remains on the mention.A user opens Returns, then Warranty, scans both sections, collapses Returns, and the page keeps focus and open-state feedback stable.
Bad UX Sorting the list silently clears the highlighted row while the panel continues to show an old ticket.The drawer keeps showing Claim C-1042 after the user selects Claim C-1043 in the table.The card disappears while the pointer travels from the mention into the preview.A user misses eligibility requirements because the only required step is hidden inside a collapsed section by default.
Best fit Users repeatedly inspect selected records, tickets, alerts, files, assets, tasks, comments, or locations while staying in a work surface.Users need to inspect object detail, metadata, comments, history, or light actions while staying on the current page.Users need to inspect object metadata before choosing whether to open a link, mention, file, row, issue, or reference.A page has several related sections and users do not need all details visible at once.
Avoid when The content is just a short temporary preview before navigation.The surface is mainly app navigation or destination switching.The content is only a short description that belongs in a tooltip.There is only one revealable section and a simpler details disclosure is enough.
Required state No selection state with a clear prompt or preserved last-selection rule.Closed state with a clear opener tied to a specific object or page section.Resting trigger state with visible or accessible object identity.All collapsed state with every section title visible.
Accessibility burden Name the panel region from the selected object's title or a heading that includes the object identity.Give the drawer a visible heading and expose it as the accessible name for the region or dialog-like surface.Do not rely on hover card content as the only source of required information.Use native buttons for section controls and expose expanded or collapsed state.
Common misuse Showing a details panel with no selected-object identity.Using a drawer as an unlabeled junk panel for unrelated commands, navigation, filters, and help.Using a hover card as the only place for required instructions or validation help.Using divs or links as section toggles without button semantics or expanded state.

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
No selection state with a clear prompt or preserved last-selection rule.
Accessibility burden
Name the panel region from the selected object's title or a heading that includes the object identity.
Common misuse
Showing a details panel with no selected-object identity.

Drawer

UI or UX
UI + UX - Supplemental edge panel for current-context detail or light actions
UI guidance
Render a drawer as an edge-aligned panel with a visible heading, selected-object identity, close control, stable width, and clear relationship to the page content it supplements.
UX guidance
Use drawers to preserve parent-page context while users inspect supplemental detail or perform simple adjacent actions.
Good UI
A right-side case details drawer opens from a table row, names Claim C-1042, shows status, owner, activity, and a close button while the table remains visible.
Bad UI
A panel slides over the table with the title Details, no close control, and no selected record name.
Good UX
Opening the drawer preserves the table filter and selected row, Next item updates the drawer title, Escape closes it, and focus returns to the selected row.
Bad UX
The drawer keeps showing Claim C-1042 after the user selects Claim C-1043 in the table.
Best fit
Users need to inspect object detail, metadata, comments, history, or light actions while staying on the current page.
Avoid when
The surface is mainly app navigation or destination switching.
Required state
Closed state with a clear opener tied to a specific object or page section.
Accessibility burden
Give the drawer a visible heading and expose it as the accessible name for the region or dialog-like surface.
Common misuse
Using a drawer as an unlabeled junk panel for unrelated commands, navigation, filters, and help.

Hover card

UI or UX
UI + UX - Rich preview surface on hover or focus
UI guidance
Render a hover card as a compact preview visually tied to a link, mention, row, object chip, file, person, or chart mark, with a title, key metadata, optional thumbnail, recent activity, and a clear route to the full object.
UX guidance
Use hover cards to help users inspect an object before navigating, especially in dense lists, mentions, dashboards, file browsers, issue trackers, and relationship-heavy interfaces.
Good UI
Hovering or focusing @Maya Chen opens a card with avatar, role, local time, current project, recent activity, and View profile link.
Bad UI
A hover card contains a long editable form, delete buttons, filters, and settings controls.
Good UX
A user focuses @Maya Chen, reads the profile preview, moves the pointer into the card without it closing, presses Escape, and focus remains on the mention.
Bad UX
The card disappears while the pointer travels from the mention into the preview.
Best fit
Users need to inspect object metadata before choosing whether to open a link, mention, file, row, issue, or reference.
Avoid when
The content is only a short description that belongs in a tooltip.
Required state
Resting trigger state with visible or accessible object identity.
Accessibility burden
Do not rely on hover card content as the only source of required information.
Common misuse
Using a hover card as the only place for required instructions or validation help.

Accordion

UI or UX
UI + UX - Grouped show-hide sections for related page content
UI guidance
Render each section title as a real button inside an appropriate heading, expose expanded or collapsed state, and connect the button to the panel it controls.
UX guidance
Use an accordion when a page has several related sections that users may inspect selectively while still needing an overview of all section labels.
Good UI
A product policy page shows Shipping, Returns, Warranty, and Contact sections as heading buttons with clear expanded states and one open panel.
Bad UI
A page hides every required instruction behind plus icons with no headings, state, or expand-all route.
Good UX
A user opens Returns, then Warranty, scans both sections, collapses Returns, and the page keeps focus and open-state feedback stable.
Bad UX
A user misses eligibility requirements because the only required step is hidden inside a collapsed section by default.
Best fit
A page has several related sections and users do not need all details visible at once.
Avoid when
There is only one revealable section and a simpler details disclosure is enough.
Required state
All collapsed state with every section title visible.
Accessibility burden
Use native buttons for section controls and expose expanded or collapsed state.
Common misuse
Using divs or links as section toggles without button semantics or expanded state.
Decision rules
  • Choose details panel when selecting a row, card, map item, issue, alert, or record should keep a persistent inspection area visible while users continue browsing nearby objects.
  • Choose drawer when the detail surface should slide over or beside the page temporarily, with explicit open and close behavior and focus movement into the surface.
  • Choose hover card when users need only a compact preview before deciding whether to open or navigate to the object.
  • Choose accordion when the content belongs inline under section headings and users are revealing page sections rather than inspecting a selected object.
  • A details panel should update immediately when selection changes, keep the selected object visibly highlighted, and avoid stale content after sorting, filtering, or list refresh.
  • Do not use a details panel for primary editing that needs saved progress, route history, or validation across many fields; use a page, sheet, drawer, or form workflow.
  • Do not hide required object identity, status, or primary metadata behind a hover card when users need to compare several selected objects.
  • Do not make a details panel behave like an unlabeled drawer; if it can be closed or opened independently, provide a close path, focus return, and state preservation.
  • Use a details panel for side-by-side comparison with the current list, table, map, feed, or board; use a full page when the detail needs deep reading, sharing, or durable URL state.
  • When no object is selected, show an empty selection prompt or preserve the last valid selection intentionally rather than showing unrelated or stale details.
Inspect live examples
Failure modes
  • The panel title says Details but does not name the selected object.
  • Selecting another row leaves stale metrics from the previous record in the panel.
  • Sorting or filtering the list clears selection without telling users what happened to the panel.
  • The panel covers the list users need for comparison but has no resize, collapse, or full-page route.
  • The panel mixes object metadata, global navigation, filters, destructive actions, and unrelated settings.
  • Keyboard focus enters the panel unexpectedly when users only intended to move list selection.
  • The empty state shows a random previous record instead of asking the user to select an object.