Detail Panel Patterns
Stacked Panel Preview
A static narrow-layout fallback shows Details below list layout, Invoice 104 current item, Below list panel position, and Stacked panel preview status.
Program
A narrow layout can show the same details below the list without running a resize observer or layout engine.
narrow_panel_stack_preview.html
Visuals: captured from real browser rendering
<section class="stack-preview" aria-labelledby="stack-preview-title"><h2 id="stack-preview-title">Narrow panel stack preview</h2><div class="stack-card" aria-label="Static stacked detail panel preview"><span>List row: Invoice 104</span><span>Details below list</span></div><dl>
<div><dt>Layout</dt><dd>Details below list</dd></div>
<div><dt>Current item</dt><dd>Invoice 104</dd></div><div><dt>Panel position</dt><dd>Below list</dd></div>
<div><dt>Status</dt><dd><span class="badge">Stacked panel preview</span></dd></div></dl>
<p class="check">Learner check: the details stack below the list without a live layout engine.</p>
<p class="note">Static narrow panel stack preview only; no drawer engine, modal, dialog API, focus trap, close interception, route change, list selection engine, resize observer, media query listener, panel animation, row mutation, API, network, storage, cookie, script, event listener, form submit, input, textarea, contenteditable, timer, analytics, object URL, download, service worker, account/session behavior, live detail panel, live drawer, live routing, or live submission runs.</p></section>
<style>
.stack-preview { display: grid; gap: 10px; max-width: 38rem; border: 1px solid #1d4ed8; padding: 12px; background: #eff6ff; }
.stack-card { display: grid; gap: 8px; border: 1px solid #1d4ed8; background: #ffffff; padding: 10px; max-width: 260px; }
.stack-card span { border-radius: 6px; background: #dbeafe; padding: 8px; }
.stack-preview dl { display: grid; gap: 8px; margin: 0; }
.stack-preview dl div { display: grid; grid-template-columns: 8rem 1fr; gap: 8px; }
.stack-preview dt { color: #475569; }
.stack-preview dd, .check, .note { margin: 0; }
.badge { border-radius: 999px; background: #dbeafe; padding: 2px 8px; }
.note { color: #475569; }
</style>
Label the stacked panel preview.

The section is labelled by its visible heading. Show stacked structure.

The static card shows details below the list. Show exact layout rows.

The layout, current item, and panel position are exact pinned data. Render stacked-panel-preview status.

The status badge says this is a stacked panel preview. Check stacked-panel readback.

The check says the details stack below the list without a live layout engine. Check stacked panel honesty.

Stacked structure, exact rows, status, and no live layout engine.
step flow
step(1) labels the source, step(2) shows the stacked browser structure, step(3) shows exact layout rows, step(4) shows stacked-panel-preview status, step(5) checks stacked readback, and step(6) checks the honesty note.
stacked panel readback
The section heading names the narrow panel stack preview surface.
stack rows
Layout, Current item, Panel position, and Status values are exact pinned data.
no layout engine
The lesson should not imply drawer engines, modals, dialog APIs, focus traps, close interception, route changes, list selection engines, resize observers, media query listeners, panel animations, row mutations, APIs, networks, storage, cookies, scripts, event listeners, form submits, inputs, textareas, contenteditable surfaces, timers, analytics, object URLs, downloads, service workers, account/session behavior, live detail panels, live drawers, live routing, or live submissions.