Cards, Lists, and Content Organization

Outpatient Clip Box Collapsible Content List

In the outpatient clip box scenario, complete a collapsible content list: including real content, actionable controls, clear state feedback, and responsive layouts across sizes.

Cards, Lists, and Content OrganizationAccordion Content ListHTMLCSSJavaScript
With JavaScript enabled, you can edit, run, and save this example. The fixed source is as follows:
<!doctype html>
<html lang="en" dir="ltr">
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <title>Outpatient Clip Box Collapsible Content List</title>
  <style>
    :root { --ink:#30231f; --paper:#f9efe5; --accent:#8b6fb0; --secondary:#d7a971; --line:color-mix(in srgb, var(--ink) 18%, transparent); --shadow:0 24px 60px color-mix(in srgb, var(--ink) 16%, transparent); color-scheme:light; }
    * { box-sizing:border-box; }
    html { min-width:320px; background:var(--paper); }
    body { min-height:100vh; margin:0; overflow-x:hidden; color:var(--ink); font-family:Baskerville,"Songti SC",serif; background:linear-gradient(90deg,var(--paper) 0 72%,color-mix(in srgb,var(--secondary) 18%,var(--paper)) 72%); }
    button,input,select,textarea { color:inherit; font:inherit; }
    button,[role="button"],input,select,textarea { accent-color:var(--accent); }
    button { cursor:pointer; }
    button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[tabindex]:focus-visible { outline:3px solid var(--accent); outline-offset:3px; }
    [hidden] { display:none !important; }
    @media (max-width:700px) { .mast h1 { line-height:1.08 !important; letter-spacing:-.035em !important; overflow-wrap:anywhere; } }
    @media (prefers-reduced-motion:reduce) { *,*::before,*::after { scroll-behavior:auto !important; animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; } }
    .page{width:min(1200px,calc(100% - 38px));margin:auto;padding:76px 0}.mast{display:grid;grid-template-columns:2fr 1fr;gap:7vw;align-items:center;margin-bottom:44px}.mast h1{font-family:Baskerville,"Songti SC",serif;font-weight:800;font-size:clamp(48px,11vw,112px);line-height:.86;letter-spacing:-.06em;margin:0}.eyebrow{display:block;margin-bottom:22px;color:var(--accent);font:800 11px/1 ui-monospace,monospace;letter-spacing:.26em}.intro{max-width:46ch;margin-top:26px;font-size:17px;line-height:1.85}.scenario{align-self:end;padding-bottom:14px;border-bottom:5px solid var(--accent);font-weight:800}.demo{border-radius:0 60px 0 0;box-shadow:-16px 18px 0 color-mix(in srgb,var(--accent) 22%,transparent);position:relative;min-height:460px;overflow:hidden;padding:clamp(30px,6vw,72px);background:color-mix(in srgb,var(--paper) 92%,#fff)}@media(max-width:700px){.page{width:calc(100% - 22px);padding:30px 0}.mast{grid-template-columns:1fr}.demo{padding:20px}}
    .panel{padding:24px;border-block:1px solid var(--ink);background:transparent}.stack{display:grid;gap:22px}.row{display:flex;flex-wrap:wrap;gap:16px}.action{padding:8px 0;border:0;border-bottom:1px solid currentColor;background:transparent;letter-spacing:.08em}.action.primary,.action.is-active{color:var(--accent);border-bottom-width:4px}.status{min-height:28px;margin-top:20px;font-style:italic}.metric{font-family:Didot,serif;font-size:clamp(38px,8vw,76px)}.muted{max-width:54ch;line-height:1.8}.meter{position:relative;height:3px;background:var(--line)}.meter>i{position:absolute;inset:0 auto 0 0;background:var(--accent)}.chip{padding-bottom:3px;border-bottom:1px solid var(--ink);font-size:13px}
    .composition-deck{display:grid;grid-template-rows:auto 1fr;border:1px solid var(--line);border-radius:24px;overflow:hidden;background:color-mix(in srgb,var(--ink) 4%,var(--paper))}.deck-bar{display:flex;justify-content:space-between;gap:18px;align-items:center;padding:12px 18px;color:var(--paper);background:var(--ink);font:700 12px/1 ui-monospace,monospace}.deck-lights{display:flex;gap:7px}.deck-lights i{width:10px;height:10px;border-radius:50%;background:var(--accent)}.deck-lights i:nth-child(2){background:var(--secondary)}.deck-lights i:nth-child(3){background:color-mix(in srgb,var(--paper) 55%,transparent)}.composition-deck .demo{border:0;border-radius:0;box-shadow:none}
    .accordion-studio{display:grid;gap:18px;max-width:960px;margin:auto}.accordion-studio header{display:flex;justify-content:space-between;gap:18px;align-items:end}.accordion-studio h2{margin:.3em 0}.accordion-layout{display:grid;grid-template-columns:minmax(0,1.15fr) 250px;gap:14px}.accordion-stack{display:grid;gap:10px}.accordion-stack article{overflow:hidden;border:1px solid var(--line);border-radius:18px;background:var(--paper)}.accordion-stack article>button{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center;width:100%;padding:16px;border:0;background:transparent;text-align:left}.accordion-stack article>button span{display:grid;gap:5px}.accordion-stack article>button[aria-expanded="true"] i{transform:rotate(45deg)}.accordion-stack article>div{display:grid;gap:10px;padding:0 16px 16px;border-top:1px solid var(--line)}.accordion-stack article ul{display:grid;gap:7px;padding-left:18px;margin:0}.accordion-inspector{display:grid;align-content:start;gap:10px;padding:18px;border-left:5px solid var(--accent);background:color-mix(in srgb,var(--secondary) 10%,transparent)}.accordion-inspector strong{font-size:28px}.accordion-inspector ol{display:grid;gap:8px;padding-left:18px;margin:0}@media(max-width:720px){.accordion-studio header{align-items:stretch;flex-direction:column}.accordion-layout{grid-template-columns:1fr}}.workflow-dispatch{display:grid;grid-template-columns:minmax(210px,.48fr) minmax(0,1.52fr);gap:18px}.dispatch-console{display:grid;align-content:start;gap:16px;padding:22px;border:1px solid var(--line);border-radius:18px;background:color-mix(in srgb,var(--secondary) 12%,var(--paper))}.dispatch-console h2{margin:.2em 0}.dispatch-console form,.dispatch-console label{display:grid;gap:7px}.dispatch-console input,.dispatch-console select{min-width:0;width:100%;padding:10px;border:1px solid var(--line);border-radius:8px;background:var(--paper)}.dispatch-console fieldset{display:flex;gap:12px;border:1px solid var(--line);border-radius:10px}.dispatch-console fieldset label{display:flex;align-items:center}.dispatch-workbench{--dispatch-load:.22;min-width:0;padding:14px;border-left:8px solid color-mix(in srgb,var(--accent) calc(var(--dispatch-load)*100%),var(--line));background:linear-gradient(90deg,color-mix(in srgb,var(--accent) 8%,transparent),transparent 28%)}.dispatch-workbench[data-dispatch-priority="urgent"]{box-shadow:inset 0 0 0 2px var(--accent)}@media(max-width:900px){.workflow-dispatch{grid-template-columns:1fr}.dispatch-console{order:2}}
  </style>
</head>
<body data-aesthetic="magazine" data-composition="control-deck">
  <main class="page">
    <header class="mast"><div><span class="eyebrow">magazine / Accordion Content List / INTERMEDIATE</span><h1>Outpatient Clip Box Collapsible Content List</h1><p class="intro">In the outpatient clip box scenario, complete a collapsible content list: including real content, actionable controls, clear state feedback, and responsive layouts across sizes.</p></div><span class="scenario">Outpatient Clip Box</span></header>
    <div class="composition-deck"><div class="deck-bar"><span>CONTROL DECK · 04</span><span>Accordion Content List</span><span class="deck-lights" aria-hidden="true"><i></i><i></i><i></i></span></div><section class="demo" aria-label="Outpatient Clipping Box Accordion Content List Interactive Area"><div class="workflow-dispatch"><aside class="dispatch-console"><span class="eyebrow">Outpatient Clip Box DISPATCH</span><h2>Clinic Clip Box Control Center</h2><form id="workflowDispatchForm"><label>Task Type<select id="workflowDispatchKind"><option>Outpatient clipping box collection list</option><option>Clinic Clip Box Sorting and Grouping</option><option>Clinic clipping box release complete</option></select></label><label>Content Count<input id="workflowDispatchAmount" type="number" min="1" max="9999" value="27"><span>Item</span></label><fieldset><legend>Processing priority</legend><label><input type="radio" name="workflowPriority" value="normal" checked>Regular</label><label><input type="radio" name="workflowPriority" value="urgent">Urgent</label></fieldset><button class="action primary" type="submit">Save Arrangement</button></form><label>Current task<select id="workflowDispatchActive" aria-label="Switch current task"><option value="1">Outpatient clipping box collection list</option><option value="2">Clinic Clip Box Sorting and Grouping</option></select></label><output id="workflowDispatchSummary">Waiting for Dispatch</output></aside><section id="workflowCore" class="workflow-core dispatch-workbench" data-dispatch-priority="normal"><!-- 11DZ_CORE_START:cards-lists-content-accordion-list --><section class="accordion-studio"><header><div><span class="eyebrow">ACCORDION LIST</span><h2>Outpatient Scrapbook Care Checklist</h2><p>Each module can be expanded independently, and the current focus is shown synchronously on the right.</p></div><output id="accordionOpenCount">1 items expanded</output></header><div class="accordion-layout"><div class="accordion-stack"><article><button id="accordionButton0" type="button" data-accordion-card="0" aria-expanded="true" aria-controls="accordionPanel0" data-core-bridge="cards-lists-content-accordion-list"><span><b>Outpatient clipping box reminder</b><small>Execution Steps</small></span><i aria-hidden="true">+</i></button><div id="accordionPanel0" role="region" aria-labelledby="accordionButton0"><p>Detailed explanations of the outpatient clipping box reminder will stay here and remain readable within the current page.</p><ul><li>Check local records</li><li>Add key notes</li><li>Prepare the next step</li></ul></div></article><article><button id="accordionButton1" type="button" data-accordion-card="1" aria-expanded="false" aria-controls="accordionPanel1"><span><b>Outpatient clipping box collection</b><small>Additional reminder</small></span><i aria-hidden="true">+</i></button><div id="accordionPanel1" role="region" aria-labelledby="accordionButton1" hidden><p>Detailed notes for the clinic clipping box favorites will stay here and remain readable on the current page.</p><ul><li>Check local records</li><li>Add key notes</li><li>Prepare the next step</li></ul></div></article><article><button id="accordionButton2" type="button" data-accordion-card="2" aria-expanded="false" aria-controls="accordionPanel2"><span><b>Clinic Clippings Box Overview</b><small>Execution Steps</small></span><i aria-hidden="true">+</i></button><div id="accordionPanel2" role="region" aria-labelledby="accordionButton2" hidden><p>The detailed explanation of the outpatient clipping box overview will stay here and remain readable within the current page.</p><ul><li>Check local records</li><li>Add key notes</li><li>Prepare the next step</li></ul></div></article><article><button id="accordionButton3" type="button" data-accordion-card="3" aria-expanded="false" aria-controls="accordionPanel3"><span><b>Clinic clipping box plan</b><small>Additional reminder</small></span><i aria-hidden="true">+</i></button><div id="accordionPanel3" role="region" aria-labelledby="accordionButton3" hidden><p>Detailed notes on the outpatient clipping box plan will stay here and remain readable within the current page.</p><ul><li>Check local records</li><li>Add key notes</li><li>Prepare the next step</li></ul></div></article><article><button id="accordionButton4" type="button" data-accordion-card="4" aria-expanded="false" aria-controls="accordionPanel4"><span><b>Outpatient Clip Box Inspiration</b><small>Execution Steps</small></span><i aria-hidden="true">+</i></button><div id="accordionPanel4" role="region" aria-labelledby="accordionButton4" hidden><p>A detailed description of the inspiration for the clinic clip box will stay here, readable within the current page.</p><ul><li>Check local records</li><li>Add key notes</li><li>Prepare the next step</li></ul></div></article></div><aside class="accordion-inspector"><strong id="accordionCurrent">Outpatient clipping box reminder</strong><p id="accordionCurrentCopy">A summary of the currently focused module will be shown here.</p><ol id="accordionVisible"><li>Outpatient clipping box reminder</li></ol></aside></div></section><!-- 11DZ_CORE_END --></section></div><p id="status" class="status" role="status" aria-live="polite"></p></section></div>
  </main>
  <script>
    'use strict';
    const statusOutput = document.querySelector('#status');
    const announce = message => { statusOutput.textContent = message; };
    /* 11DZ_CORE_SCRIPT_START:cards-lists-content-accordion-list */
const accordionCards=[...document.querySelectorAll('[data-accordion-card]')];function syncAccordion(){const openCards=accordionCards.filter(button=>button.getAttribute('aria-expanded')==='true');document.querySelector('#accordionOpenCount').textContent='Expanded '+openCards.length+' Item';const current=openCards.at(-1)||accordionCards[0];document.querySelector('#accordionCurrent').textContent=current.querySelector('b').textContent;document.querySelector('#accordionCurrentCopy').textContent=current.querySelector('small').textContent+'Will continue expanding in the local page.';document.querySelector('#accordionVisible').replaceChildren(...(openCards.length?openCards:[accordionCards[0]]).map(button=>{const item=document.createElement('li');item.textContent=button.querySelector('b').textContent;return item;}));}accordionCards.forEach(button=>button.addEventListener('click',()=>{const open=button.getAttribute('aria-expanded')!=='true';button.setAttribute('aria-expanded',String(open));document.querySelector('#'+button.getAttribute('aria-controls')).hidden=!open;syncAccordion();announce(button.querySelector('b').textContent+(open?' Expanded':' Collapsed'));}));syncAccordion();
/* 11DZ_CORE_SCRIPT_END */
const workflowBridgeSpec={"name":"cards-lists-content-accordion-list","selector":"[data-core-bridge=\"cards-lists-content-accordion-list\"]","mode":"click","key":"Enter"};const workflowBridgeCore=document.querySelector('#workflowCore');const workflowBridgeControl=workflowBridgeCore.querySelector(workflowBridgeSpec.selector);if(!workflowBridgeControl)throw new Error('Missing core bridge: '+workflowBridgeSpec.name);const workflowBridgeControlledId=workflowBridgeControl.getAttribute('aria-controls');const workflowBridgeControlled=workflowBridgeControlledId?document.getElementById(workflowBridgeControlledId):null;workflowBridgeCore.dataset.workflowBridge=workflowBridgeSpec.name;workflowBridgeCore.dataset.workflowVersion='0';function workflowBridgeSerialize(){const visualNode=workflowBridgeCore.firstElementChild||workflowBridgeCore;const visual=getComputedStyle(visualNode);const outputs=[...workflowBridgeCore.querySelectorAll('output,[role="status"],[aria-live],meter,progress')].map(node=>node.textContent.trim()+'|'+node.getAttribute('aria-valuenow')+'|'+node.getAttribute('value'));const canvas=[...workflowBridgeCore.querySelectorAll('canvas')].map(node=>{try{return node.toDataURL().slice(-160);}catch{return 'canvas-unavailable';}});return JSON.stringify({html:workflowBridgeCore.innerHTML,status:statusOutput.textContent,outputs,canvas,visual:[visual.display,visual.visibility,visual.opacity,visual.transform,visual.filter,visual.backgroundColor,visual.width,visual.height],scroll:workflowBridgeSpec.mode==='scroll'?workflowBridgeControl.scrollTop:null});}let workflowBridgeLastEffect=workflowBridgeSerialize();function workflowBridgeSummary(){const label=(workflowBridgeControl.getAttribute('aria-label')||workflowBridgeControl.textContent||workflowBridgeControl.value||workflowBridgeSpec.name).trim().replace(/\s+/g,' ').slice(0,72);return label+' · Core Version '+workflowBridgeCore.dataset.workflowVersion;}function workflowBridgeCommit(){const effect=workflowBridgeSerialize();if(effect===workflowBridgeLastEffect)return {changed:false,summary:workflowBridgeSummary()};workflowBridgeLastEffect=effect;workflowBridgeCore.dataset.workflowVersion=String(Number(workflowBridgeCore.dataset.workflowVersion||0)+1);return {changed:true,summary:workflowBridgeSummary()};}function workflowBridgeScheduleCommit(){queueMicrotask(workflowBridgeCommit);setTimeout(workflowBridgeCommit,0);}workflowBridgeControl.addEventListener("click",workflowBridgeScheduleCommit);const workflowBridgeStateTargets=new Set(workflowBridgeCore.querySelectorAll('dialog'));if(workflowBridgeControlled&&workflowBridgeCore.contains(workflowBridgeControlled))workflowBridgeStateTargets.add(workflowBridgeControlled);workflowBridgeStateTargets.forEach(target=>['close','cancel','toggle'].forEach(eventName=>target.addEventListener(eventName,workflowBridgeScheduleCommit)));function workflowBridgeActivate(){workflowBridgeControl.focus();workflowBridgeControl.click();const result=workflowBridgeCommit();setTimeout(workflowBridgeCommit,0);return result;}function workflowBridgeReset(){workflowBridgeCore.dataset.workflowVersion='0';workflowBridgeLastEffect=workflowBridgeSerialize();}
const workflowDispatchCore=document.querySelector('#workflowCore');const workflowDispatchForm=document.querySelector('#workflowDispatchForm');const workflowDispatchSelect=document.querySelector('#workflowDispatchActive');const workflowDispatchJobs=new Map([["1",{"label":"Outpatient clipping box collection list","amount":12,"priority":"normal","touches":0}],["2",{"label":"Clinic Clip Box Sorting and Grouping","amount":21,"priority":"urgent","touches":0}]]);let workflowDispatchSerial=workflowDispatchJobs.size;function workflowDispatchDrive(job,activate=false){workflowDispatchCore.dataset.dispatchPriority=job.priority;workflowDispatchCore.style.setProperty('--dispatch-load',Math.min(.95,.16+job.amount/120));const bridge=activate?workflowBridgeActivate():{changed:false,summary:workflowBridgeSummary()};document.querySelector('#workflowDispatchSummary').textContent=job.label+' · '+job.amount+' Item · '+bridge.summary;announce('Outpatient Clip Box Current Tasks:'+job.label);}function workflowDispatchRender(activeId,activate=false){workflowDispatchSelect.replaceChildren(...[...workflowDispatchJobs].map(([id,job])=>{const option=document.createElement('option');option.value=id;option.textContent=job.label+(job.priority==='urgent'?' · Urgent':'');return option;}));workflowDispatchSelect.value=activeId;workflowDispatchDrive(workflowDispatchJobs.get(activeId),activate);}workflowDispatchForm.addEventListener('submit',event=>{event.preventDefault();const data=new FormData(workflowDispatchForm);const id=String(++workflowDispatchSerial);workflowDispatchJobs.set(id,{label:document.querySelector('#workflowDispatchKind').value,amount:Math.max(1,Number(document.querySelector('#workflowDispatchAmount').value)||1),priority:data.get('workflowPriority'),touches:0});workflowDispatchRender(id,true);});workflowDispatchSelect.addEventListener('change',()=>workflowDispatchDrive(workflowDispatchJobs.get(workflowDispatchSelect.value),true));workflowDispatchCore.addEventListener('focusin',()=>{const job=workflowDispatchJobs.get(workflowDispatchSelect.value);if(!job)return;job.touches+=1;document.querySelector('#workflowDispatchSummary').textContent=job.label+' · '+job.amount+' Item · '+workflowBridgeSummary();});workflowDispatchRender('1',false);
workflowBridgeReset();
  </script>
</body>
</html>
Page feedbackFound an issue or have suggestions for improvement?
Feedback features need to be used in the online version

Please enable JavaScript in the online version before submitting; local features of the current tool or example are not affected.

Go to the online version for feedback