Provide an adaptive master-detail layout with a source list, detail destination, synchronized selected item, empty detail placeholder, stacked detail navigation, Back to list behavior, side-by-side presentation on wider screens, and preserved list, selection, filter, scroll, edit, and route state across layout changes.
Users repeatedly choose items from a collection and work with a substantial detail destination.
Wide layouts should keep list context visible while detail is active.
Narrow layouts need stacked navigation between list and detail with preserved state.
The selected item and detail state can be keyed by stable IDs and synchronized reliably.
Avoid when
The detail is only a short metadata summary.
The content is temporary supplemental information with close behavior.
The main task is dense row comparison or cell editing.
Users rarely return to the list after opening detail.
Responsive transitions cannot preserve selection, history, or unsaved detail work.
Problem it prevents
Users need to explore a set of items and inspect or work with one item's full detail repeatedly, but separate pages make context switching slow, a small details panel cannot hold the full destination, and a fixed layout can fail across phones, tablets, foldables, and desktop windows.
Pattern anatomy
What a strong implementation has to make clear
User need
The source items are conversations, orders, tickets, files, contacts, tasks, articles, cases, settings sections, media, or records.
Pattern promise
Provide an adaptive master-detail layout with a source list, detail destination, synchronized selected item, empty detail placeholder, stacked detail navigation, Back to list behavior, side-by-side presentation on wider screens, and preserved list, selection, filter, scroll, edit, and route state across layout changes.
Required state
Wide default state with master list, selected item, and detail pane visible together.
Recovery path
The detail pane shows an object that is not selected in the master list.
Access contract
Name the master and detail regions with headings that describe the collection and the selected item.
Quality bar
The difference between expert and weak execution
Strong implementation
Specific, visible, recoverable
An inbox shows conversations in the left pane and the selected message thread in the right pane on desktop, then shows either the conversation list or selected thread with Back to inbox on phone.
A customer order app keeps the order list, selected order highlight, order detail heading, shipment timeline, and Back to orders path synchronized across side-by-side and stacked layouts.
A user selects a case, scrolls its detail history, narrows the window to stacked mode, goes back to the case list, selects another case, and widening the window shows the new selected case beside the list.
A keyboard user moves through the master list, opens a detail, returns to the same list position, and the selected row remains tied to the detail heading.
Weak implementation
Vague, hidden, hard to recover from
Selecting an order highlights one list item while the detail pane still shows a previous order.
On mobile, tapping a list item replaces the list with detail but provides no return path, selected-item label, or preserved list position.
A user filters the master list after opening detail and the layout keeps showing a hidden case without saying it no longer matches the filter.
A user rotates a tablet and the app resets to the first list item, discarding the detail draft and scroll position.
UI guidance
Render a master-detail layout with a primary list or source pane, a detail pane that names the selected item, a visible selected-item indicator, and a clear empty-detail state when no item owns the detail.
Adapt the same content relationship between side-by-side panes on wider screens and stacked list/detail navigation on narrower screens, with visible Back to list or equivalent return control in stacked mode.
UX guidance
Use master-detail when users move repeatedly between a collection of items and full detail content, and the detail can act as a navigable destination rather than only a small inspector.
Preserve selected item, detail scroll or edit state, list position, filters, and return path as users select items, open detail, go back, and resize or rotate the viewport.
Implementation contract
What the implementation must handle
States
Wide default state with master list, selected item, and detail pane visible together.
Wide empty-detail state with a prompt when no item is selected.
Stacked list state where only the master list is visible.
Stacked detail state with selected-item heading and Back to list control.
Interaction
Selecting an item in the master list updates the selected marker and detail heading to the same object.
In side-by-side mode, selection can update detail without hiding the master list.
In stacked mode, opening detail moves to the detail view and Back to list returns to the same master list position and filters.
Changing viewport size preserves the current selected object and chooses whether list, detail, or both panes should be visible based on the active navigation state.
Accessibility
Name the master and detail regions with headings that describe the collection and the selected item.
Expose selected state in the master list and keep it synchronized with the detail heading.
Provide a visible and accessible Back to list control in stacked detail mode.
Move focus intentionally when opening stacked detail and return focus to the selected master item when going back.
Review
What is the master collection, and which exact selected item owns the detail right now?
Can the detail stand as a navigable destination, or is it only an inspector suited to details panel?
What happens to selection, list position, detail scroll, and draft state when the layout switches between stacked and side-by-side?
How do users return from detail to the list on compact screens?
Interactive lab
Inspect the states before you copy the pattern
Move between a master list and adaptive detail
Select orders, switch between side-by-side and stacked modes, open detail, go back to the list, protect a draft, filter the selected item away, restore it, and compare stale-detail, no-back, lost-state, random-default, index-keyed, and inspector-misuse failures.
Master-detail
Interactive demo is ready
Launch the live UI/UX lab when you want to inspect states, keyboard behavior, and common failure modes.
State To Inspect
Wide default state with master list, selected item, and detail pane visible together.
Keyboard / Access
Tab reaches master controls, the selected master item, detail heading or first detail action, Back to list, and any layout controls in predictable order.
Avoid Generating
Calling a small metadata inspector master-detail when the detail cannot act as a destination.
Supports adjacent split-view pane relationships for primary, supplementary, and detail content.
Full agent/debug reference
Problem Context
The source items are conversations, orders, tickets, files, contacts, tasks, articles, cases, settings sections, media, or records.
The detail content is substantial enough to need its own heading, body, local actions, history, comments, edits, or route state.
Users often switch between adjacent items while keeping enough context to know where the current detail came from.
The same product must work in narrow stacked mode and wider side-by-side mode without losing selection or navigation history.
Selection Rules
Choose master-detail when list selection opens or owns a full detail destination and the layout must coordinate source and detail state.
Choose master-detail when wide screens should show list and detail together while narrow screens should show either list or detail with a return path.
Use details panel when the detail is a concise adjacent inspector and does not need navigable page-like behavior.
Use list view when users only need to scan and act on rows without a coordinated detail destination.
Use window splitter when users need to resize panes; pair it with master-detail only if the list-detail behavior is also defined.
Use drawer or sheet when detail is temporary, opened by command, and should close after a side task.
Use preview panel when the detail is primarily rendered document, media, or file preview rather than full object work.
Use full-page navigation when side-by-side context adds little value or the detail is too deep for a shared layout.
Avoid master-detail when no stable selected item exists.
Avoid master-detail when responsive transitions would lose detail state, list position, or back navigation.
Required States
Wide default state with master list, selected item, and detail pane visible together.
Wide empty-detail state with a prompt when no item is selected.
Stacked list state where only the master list is visible.
Stacked detail state with selected-item heading and Back to list control.
Selection changed state where list highlight, detail heading, route state, and local actions update together.
Filtered-away selected item state with explanation, clear-filter path, or selection replacement.
Viewport widened, narrowed, rotated, or folded state preserving list position, selected item, and detail state.
Loading, failed detail, deleted item, permission-limited detail, unsaved detail draft, and unavailable detail states.
Back navigation, browser history, deep link, and no-selection return states.
Multiple-pane or tertiary detail state when the layout can add supporting content on large screens.
Interaction Contract
Selecting an item in the master list updates the selected marker and detail heading to the same object.
In side-by-side mode, selection can update detail without hiding the master list.
In stacked mode, opening detail moves to the detail view and Back to list returns to the same master list position and filters.
Changing viewport size preserves the current selected object and chooses whether list, detail, or both panes should be visible based on the active navigation state.
If the selected item becomes filtered, deleted, or unavailable, the detail pane explains the state instead of showing stale content.
Detail-local actions state which selected item they affect and do not silently act on a different master row.
Deep links can open the detail directly and still provide a path to the relevant master list when the product supports it.
Unsaved changes, scroll position, focus, and local detail state survive layout changes or trigger explicit review before being discarded.
Implementation Checklist
Define the master collection, selected-item ID, detail route or state owner, empty-detail rule, and compact versus expanded layout breakpoints.
Render a visible selected state in the master list and repeat the selected object name or ID in the detail heading.
Implement stacked navigation with Back to list, browser history, focus return, and preserved list scroll position.
Implement side-by-side mode with synchronized selection, detail refresh, and an empty placeholder when no selection exists.
Persist selected item, filters, sort order, list scroll, detail scroll, local edits, and focus across viewport changes.
Handle loading, failed detail fetch, deleted item, permission-limited detail, filtered-away item, no results, and direct deep link states.
Keep resizable splitters, drawers, previews, and inspectors separate from the master-detail ownership model unless deliberately combined.
Test keyboard selection, screen reader pane names, Back behavior, browser history, mobile rotation, tablet resize, long titles, localization, zoom, and stale-detail prevention.
Common Generated-UI Mistakes
Calling a small metadata inspector master-detail when the detail cannot act as a destination.
Forgetting the stacked mobile return path from detail back to the master list.
Showing stale detail after selection, filter, delete, permission, or refresh changes.
Resetting selection, filters, draft edits, or scroll position when the viewport crosses a breakpoint.
Using a splitter as the only implementation while leaving selected-item ownership and navigation history undefined.
Showing an unrelated default detail on wide screens before the user has selected an item.
Embedding full primary editing in the detail without unsaved-change protection across selection changes.
Letting list and detail actions target different objects because they are keyed by visible index instead of stable item ID.
Critique Questions
What is the master collection, and which exact selected item owns the detail right now?
Can the detail stand as a navigable destination, or is it only an inspector suited to details panel?
What happens to selection, list position, detail scroll, and draft state when the layout switches between stacked and side-by-side?
How do users return from detail to the list on compact screens?
What should the wide layout show when there is no selection, a hidden selection, or a deleted item?
Would list view, details panel, preview panel, drawer, window splitter, table, or full-page route better fit the task?
Accessibility
Name the master and detail regions with headings that describe the collection and the selected item.
Expose selected state in the master list and keep it synchronized with the detail heading.
Provide a visible and accessible Back to list control in stacked detail mode.
Move focus intentionally when opening stacked detail and return focus to the selected master item when going back.
Announce detail changes, filtered-away selection, loading, failed detail, and no-selection states when they update dynamically.
Keep DOM order, visual order, and keyboard order understandable across stacked and side-by-side layouts.
Protect unsaved detail changes before changing selection or leaving detail in stacked mode.
Do not use color, pane position, or viewport width alone to communicate which item owns the detail.
Keyboard Behavior
Tab reaches master controls, the selected master item, detail heading or first detail action, Back to list, and any layout controls in predictable order.
Arrow keys or list commands may move selection within the master list when the list component supports that behavior.
Enter or Space on a master item opens or selects the item and updates the detail according to the current layout mode.
In stacked mode, Back to list returns focus to the selected master item or the closest available item.
Browser Back returns from stacked detail to the master list when the detail created a navigation entry.
Selection changes with unsaved detail edits trigger review before replacing the detail.
Escape does not discard detail or navigate back unless the product explicitly defines that shortcut.
Viewport changes do not move focus unexpectedly into a hidden pane.