Controles y selectores básicos

Selección de muestras de color para el mostrador de registro del evento

Completa la selección de muestras de color en el contexto de un mostrador de registro en un espectáculo: incluye contenido real, controles interactivos, comentarios de estado claros y diseño adaptable a distintos tamaños.

Controles y selectores básicosSelección de muestras de colorHTMLCSSJavaScript
Tras activar JavaScript, puedes editar, ejecutar y guardar este ejemplo. El código fuente fijado es el siguiente:
<!doctype html>
<html lang="es" dir="ltr">
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <title>Selección de muestras de color para el mostrador de registro del evento</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:"Kaiti SC",STKaiti,"Songti SC",serif; background:radial-gradient(circle at 12% 18%,color-mix(in srgb,var(--accent) 12%,transparent) 0 1px,transparent 2px),var(--paper);background-size:19px 19px; }
    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(980px,calc(100% - 32px));margin:auto;padding:72px 0 92px}.mast{display:grid;grid-template-columns:1fr auto;transform:rotate(-.25deg);gap:32px;align-items:center;margin-bottom:46px}.mast h1{font-family:"Kaiti SC",STKaiti,serif;font-weight:700;font-size:clamp(40px,8vw,84px);letter-spacing:.02em;margin:0;line-height:1.12}.intro{max-width:650px;margin-top:18px;line-height:2}.scenario{padding:12px;border:2px solid var(--accent);color:var(--accent);transform:rotate(3deg)}.eyebrow{display:block;margin-bottom:9px;color:var(--accent);letter-spacing:.18em}.demo{border-radius:2px;transform:rotate(.12deg);box-shadow:0 30px 70px color-mix(in srgb,var(--ink) 18%,transparent);position:relative;min-height:430px;overflow:hidden;padding:clamp(28px,6vw,66px);background:color-mix(in srgb,var(--paper) 92%,#fff)}@media(max-width:700px){.page{width:calc(100% - 20px);padding:28px 0}.mast{grid-template-columns:1fr}.scenario{justify-self:start}.demo{padding:20px}}
    .panel{padding:16px;border:3px double var(--accent);background:var(--paper)}.stack{display:grid;gap:14px}.row{display:grid;grid-auto-flow:column;grid-auto-columns:max-content;gap:10px;overflow:auto}.action{padding:10px 15px;border:1px solid var(--accent);background:transparent;font-family:Didot,serif;letter-spacing:.06em}.action.primary,.action.is-active{color:var(--paper);background:var(--ink)}.metric{font-family:Didot,serif;font-size:clamp(36px,8vw,74px);letter-spacing:.04em}.status{min-height:24px;padding:9px;border-inline:1px solid var(--accent);text-align:center}.muted{line-height:1.8}.chip{padding:5px 14px;border-inline:1px solid var(--accent);letter-spacing:.1em}.meter{height:5px;background:var(--line)}.meter>i{display:block;height:100%;background:linear-gradient(90deg,var(--accent),var(--secondary))}
    .composition-gallery{margin:0;padding:clamp(8px,2vw,18px);border:1px solid var(--ink);background:color-mix(in srgb,var(--paper) 78%,transparent)}.gallery-caption{display:grid;grid-template-columns:auto 1fr auto;gap:16px;align-items:center;padding:15px 4px 2px;font-size:12px}.gallery-caption::before,.gallery-caption::after{content:"";height:1px;background:var(--line)}.gallery-caption strong{font:800 11px/1.2 ui-monospace,monospace;letter-spacing:.16em;text-transform:uppercase}.composition-gallery .demo{box-shadow:none}.composition-gallery .demo::before{content:"";position:absolute;inset:10px;border:1px dashed color-mix(in srgb,var(--accent) 36%,transparent);pointer-events:none}
    .swatch-studio{display:grid;gap:18px}.swatch-studio header{display:flex;justify-content:space-between;gap:18px;align-items:end}.swatch-studio h2{margin:.2em 0}.swatch-studio-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(250px,.95fr);gap:18px}.swatch-rail{display:grid;gap:10px;padding:18px;border:1px solid var(--line);border-radius:22px;background:var(--paper)}.swatch-rail legend{padding:0 8px;font-weight:900}.swatch-rail label{position:relative}.swatch-rail input{position:absolute;opacity:0}.swatch-rail span{display:grid;grid-template-columns:64px 1fr auto;gap:12px;align-items:center;padding:12px;border:1px solid var(--line);border-radius:16px}.swatch-rail i{height:54px;border-radius:12px;background:var(--swatch)}.swatch-rail input:checked+span{border:3px solid var(--ink);padding:10px}.swatch-rail input:focus-visible+span{outline:3px solid var(--accent);outline-offset:3px}.swatch-inspector{display:grid;align-content:start;gap:14px;min-height:340px;padding:28px;border-radius:28px;color:#fff;background:linear-gradient(150deg,var(--chosen),color-mix(in srgb,var(--chosen) 42%,#09121f))}.swatch-inspector strong{font-size:clamp(38px,7vw,76px)}.swatch-inspector ul{display:grid;gap:8px;padding:0;margin:0;list-style:none}.swatch-inspector li{padding:10px 12px;border:1px solid #ffffff33;border-radius:12px;background:#ffffff14}.swatch-inspector button{justify-self:start;padding:11px 17px;border:0;border-radius:999px;color:var(--chosen);background:#fff;font-weight:900}@media(max-width:720px){.swatch-studio header{align-items:stretch;flex-direction:column}.swatch-studio-grid{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}}.evidence-shell{--evidence-zoom:100;display:grid;gap:18px;padding:clamp(16px,4vw,26px);border:1px solid var(--line);border-radius:30px;background:linear-gradient(180deg,color-mix(in srgb,var(--secondary) 8%,transparent),color-mix(in srgb,var(--paper) 94%,transparent));box-shadow:var(--shadow)}.evidence-head{display:flex;justify-content:space-between;gap:18px;align-items:end}.evidence-head h2{margin:.2em 0}.evidence-tools{display:grid;gap:10px;justify-items:end}.evidence-tools output{padding:10px 14px;border-radius:999px;border:1px solid var(--line);background:var(--paper);font-weight:900}.evidence-body{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(230px,.55fr);gap:16px}.evidence-stage{display:grid;gap:12px;min-width:0}.evidence-ribbon{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.evidence-ribbon button{display:grid;gap:6px;min-height:110px;padding:14px;border:1px solid var(--line);border-radius:18px;background:var(--paper);text-align:left}.evidence-ribbon button[aria-pressed="true"]{border-color:var(--accent);box-shadow:inset 0 0 0 2px color-mix(in srgb,var(--accent) 35%,transparent)}.evidence-ribbon span{font:800 11px/1 ui-monospace,monospace;letter-spacing:.14em}.evidence-ribbon small{opacity:.72;line-height:1.5}.evidence-core-shell{min-width:0;padding:clamp(12px,3vw,20px);overflow:auto;border:1px solid var(--line);border-radius:24px;background:color-mix(in srgb,var(--paper) 92%,transparent)}.evidence-core-shell>*{display:block;width:calc(10000%/var(--evidence-zoom));max-width:none;transform:scale(calc(var(--evidence-zoom)/100));transform-origin:top left}.evidence-rail{display:grid;align-content:start;gap:14px;padding:18px;border-radius:22px;color:var(--paper);background:var(--ink)}.evidence-rail label{display:grid;gap:8px}.evidence-rail input,.evidence-rail select{width:100%;padding:10px;border:1px solid #ffffff2e;border-radius:10px;color:inherit;background:#ffffff12}.evidence-checklist,.evidence-log{display:grid;gap:8px;padding-left:18px;margin:0}.evidence-checklist li.is-active{color:var(--secondary);font-weight:900}.evidence-checklist li.is-done{color:var(--accent);font-weight:900}.evidence-log li{line-height:1.55}.evidence-shell[data-board-mode="proof"] .evidence-core-shell{outline:4px solid color-mix(in srgb,var(--accent) 32%,transparent);outline-offset:2px}.evidence-shell[data-board-mode="handoff"] .evidence-rail{background:color-mix(in srgb,var(--ink) 82%,#0a1512)}@media(max-width:920px){.evidence-body{grid-template-columns:1fr}.evidence-ribbon{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:560px){.evidence-head{align-items:stretch;flex-direction:column}.evidence-tools{justify-items:start}.evidence-ribbon{grid-template-columns:1fr}.evidence-core-shell>*{width:100%;transform:none}}
  </style>
</head>
<body data-aesthetic="paper" data-composition="gallery-frame">
  <main class="page">
    <header class="mast"><div><span class="eyebrow">paper / selección de muestras de color / INTERMEDIATE</span><h1>Selección de muestras de color para el mostrador de registro del evento</h1><p class="intro">Completa la selección de muestras de color en el contexto de un mostrador de registro en un espectáculo: incluye contenido real, controles interactivos, comentarios de estado claros y diseño adaptable a distintos tamaños.</p></div><span class="scenario">Puesto de registro de la función</span></header>
    <figure class="composition-gallery"><section class="demo" aria-label="Área interactiva de selección de muestras de color del mostrador de registro del espectáculo"><section id="evidenceShell" class="evidence-shell" data-board-mode="scan"><header class="evidence-head"><div><span class="eyebrow">Puesto de registro del espectáculo / EVIDENCE BOARD</span><h2>Panel de observación de muestras de color</h2><p>Coloca el caso principal en un panel de evidencias, con una tarjeta de observación independiente, registros y cambios de modo para registrar el resultado actual.</p></div><div class="evidence-tools"><div class="row"><button class="action primary" type="button" data-board-mode="scan">Escanear</button><button class="action" type="button" data-board-mode="proof">Verificación</button><button class="action" type="button" data-board-mode="handoff">Entrega</button></div><output id="evidenceStatus">Esperando la muestra</output></div></header><div class="evidence-body"><section class="evidence-stage"><div class="evidence-ribbon"><button type="button" data-evidence-card="0" aria-pressed="true"><span>01</span><strong>Recordatorio del puesto de registro del espectáculo</strong><small>Comprueba si los cambios de estado son visibles</small></button><button type="button" data-evidence-card="1" aria-pressed="false"><span>02</span><strong>Colección de la mesa de registro del espectáculo</strong><small>Confirma que el teclado y el clic ofrecen la misma entrada</small></button><button type="button" data-evidence-card="2" aria-pressed="false"><span>03</span><strong>Resumen del mostrador de registro del espectáculo</strong><small>Observa si el diseño retrocede en pantallas estrechas</small></button><button type="button" data-evidence-card="3" aria-pressed="false"><span>04</span><strong>Plan del mostrador de registro del espectáculo</strong><small>Registrar la conclusión de la revisión actual</small></button></div><div id="evidenceCoreShell" class="evidence-core-shell"><div class="workflow-dispatch"><aside class="dispatch-console"><span class="eyebrow">Puesto de registro del espectáculo DISPATCH</span><h2>Puesto de control y mesa de coordinación para el registro del espectáculo</h2><form id="workflowDispatchForm"><label>Tipo de tarea<select id="workflowDispatchKind"><option>Modo manual del mostrador de registro del espectáculo</option><option>Modo inteligente del mostrador de registro del espectáculo</option><option>Modo de sincronización de la mesa de registro de espectáculos</option></select></label><label>carga del dispositivo<input id="workflowDispatchAmount" type="number" min="1" max="9999" value="36"><span>%</span></label><fieldset><legend>Prioridad de procesamiento</legend><label><input type="radio" name="workflowPriority" value="normal" checked>Normal</label><label><input type="radio" name="workflowPriority" value="urgent">Urgente</label></fieldset><button class="action primary" type="submit">Escenarios de uso</button></form><label>Tarea actual<select id="workflowDispatchActive" aria-label="Cambiar tarea actual"><option value="1">Modo manual del mostrador de registro del espectáculo</option><option value="2">Modo inteligente del mostrador de registro del espectáculo</option></select></label><output id="workflowDispatchSummary">A la espera de la programación</output></aside><section id="workflowCore" class="workflow-core dispatch-workbench" data-dispatch-priority="normal"><!-- 11DZ_CORE_START:controls-selectors-color-swatches --><section class="swatch-studio"><header><div><span class="eyebrow">COLOR SWATCHES</span><h2>Paleta de colores del mostrador de registro de la función</h2><p>Coloca las muestras de color, las indicaciones de contraste y los usos recomendados en un mismo panel de control.</p></div><output id="swatchContrast">Contraste actual: alto</output></header><div class="swatch-studio-grid"><fieldset class="swatch-rail"><legend>Seleccionar color de tema</legend><label style="--swatch:#1f9d8a"><input type="radio" name="themeColor" value="#1f9d8a" data-color-index="0" checked data-core-bridge="controls-selectors-color-swatches"><span><i aria-hidden="true"></i><b>Turquesa</b><small>#1f9d8a</small></span></label><label style="--swatch:#e5673f"><input type="radio" name="themeColor" value="#e5673f" data-color-index="1"><span><i aria-hidden="true"></i><b>puesta de sol</b><small>#e5673f</small></span></label><label style="--swatch:#4b5cc4"><input type="radio" name="themeColor" value="#4b5cc4" data-color-index="2"><span><i aria-hidden="true"></i><b>índigo</b><small>#4b5cc4</small></span></label><label style="--swatch:#d39a27"><input type="radio" name="themeColor" value="#d39a27" data-color-index="3"><span><i aria-hidden="true"></i><b>Arena</b><small>#d39a27</small></span></label><label style="--swatch:#a94268"><input type="radio" name="themeColor" value="#a94268" data-color-index="4"><span><i aria-hidden="true"></i><b>Baya</b><small>#a94268</small></span></label></fieldset><aside id="swatchPreview" class="swatch-inspector" style="--chosen:#1f9d8a"><span>THEME BOARD</span><strong id="swatchName">Turquesa</strong><p id="swatchHex">#1f9d8a</p><ul id="swatchChecklist"><li>Botón de título</li><li>Etiqueta de sugerencia</li><li>Énfasis de datos</li></ul><button type="button">Aplicar tema actual</button></aside></div></section><!-- 11DZ_CORE_END --></section></div></div></section><aside class="evidence-rail"><label>Escalado del lienzo<input id="evidenceZoom" type="range" min="88" max="128" value="100"><output id="evidenceZoomValue">100%</output></label><label>Muestra actual<select id="evidenceStep"><option value="0">Recordatorio del puesto de registro del espectáculo</option><option value="1">Colección de la mesa de registro del espectáculo</option><option value="2">Resumen del mostrador de registro del espectáculo</option><option value="3">Plan del mostrador de registro del espectáculo</option></select></label><ul id="evidenceChecklist" class="evidence-checklist"><li>Recordatorio del puesto de registro del espectáculo</li><li>Colección de la mesa de registro del espectáculo</li><li>Resumen del mostrador de registro del espectáculo</li><li>Plan del mostrador de registro del espectáculo</li></ul><button id="evidenceCapture" class="action primary" type="button">Escribir evidencia</button><ol id="evidenceLog" class="evidence-log"><li>Aún no se han registrado pruebas</li></ol></aside></div></section><p id="status" class="status" role="status" aria-live="polite"></p></section><figcaption class="gallery-caption"><strong>Puesto de check-in para actuaciones / GALLERY 03</strong></figcaption></figure>
  </main>
  <script>
    'use strict';
    const statusOutput = document.querySelector('#status');
    const announce = message => { statusOutput.textContent = message; };
    /* 11DZ_CORE_SCRIPT_START:controls-selectors-color-swatches */
const swatchInputs=[...document.querySelectorAll('input[name="themeColor"]')];const swatchPreview=document.querySelector('#swatchPreview');const swatchName=document.querySelector('#swatchName');const swatchHex=document.querySelector('#swatchHex');const swatchContrast=document.querySelector('#swatchContrast');const swatchChecklist=document.querySelector('#swatchChecklist');const swatchLabel=input=>input.closest('label').querySelector('b').textContent;function renderSwatchInspector(input){const color=input.value;const name=swatchLabel(input);const contrast=['Alta','medio','Alta','medio','Alta'][swatchInputs.indexOf(input)]||'Alta';swatchPreview.style.setProperty('--chosen',color);swatchName.textContent=name;swatchHex.textContent=color.toUpperCase();swatchContrast.textContent='Comparación actual:'+contrast;swatchChecklist.replaceChildren(...['Botón de título','Etiqueta de sugerencia','Énfasis de datos'].map((label,index)=>{const item=document.createElement('li');item.textContent=name+' · '+label+' · '+['Principal','Uso secundario','acento'][index];return item;}));announce('El color temático se ha cambiado a '+name);}swatchInputs.forEach(input=>input.addEventListener('change',()=>renderSwatchInspector(input)));renderSwatchInspector(swatchInputs.find(input=>input.checked)||swatchInputs[0]);
/* 11DZ_CORE_SCRIPT_END */
const workflowBridgeSpec={"name":"controls-selectors-color-swatches","selector":"[data-core-bridge=\"controls-selectors-color-swatches\"]","mode":"radio","key":"ArrowRight"};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+' · versión principal '+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("keydown",workflowBridgeScheduleCommit);workflowBridgeControl.addEventListener('input',workflowBridgeScheduleCommit);workflowBridgeControl.addEventListener('change',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();const radios=[...workflowBridgeCore.querySelectorAll('input[type="radio"]')].filter(input=>input.name===workflowBridgeControl.name&&!input.disabled);const current=Math.max(0,radios.findIndex(input=>input.checked));radios[(current+1)%radios.length].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":"Modo manual del mostrador de registro del espectáculo","amount":12,"priority":"normal","touches":0}],["2",{"label":"Modo inteligente del mostrador de registro del espectáculo","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+' % · '+bridge.summary;announce('Tarea actual del mostrador de registro del espectáculo:'+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'?' · Urgente':'');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+' % · '+workflowBridgeSummary();});workflowDispatchRender('1',false);
workflowBridgeReset();
const evidenceShell=document.querySelector('#evidenceShell');const evidenceStatus=document.querySelector('#evidenceStatus');const evidenceZoom=document.querySelector('#evidenceZoom');const evidenceZoomValue=document.querySelector('#evidenceZoomValue');const evidenceStep=document.querySelector('#evidenceStep');const evidenceChecklistItems=[...document.querySelectorAll('#evidenceChecklist li')];const evidenceCards=[...document.querySelectorAll('[data-evidence-card]')];const evidenceLog=document.querySelector('#evidenceLog');const evidenceModeButtons=[...evidenceShell.querySelectorAll('button[data-board-mode]')];const evidenceNotes=["Recordatorio del puesto de registro del espectáculo","Colección de la mesa de registro del espectáculo","Resumen del mostrador de registro del espectáculo","Plan del mostrador de registro del espectáculo"];const evidenceCore=document.querySelector('#workflowCore');let evidenceCaptures=0;function evidenceSetCard(index){evidenceCards.forEach((card,cardIndex)=>{const active=cardIndex===index;card.setAttribute('aria-pressed',String(active));});evidenceChecklistItems.forEach((item,itemIndex)=>{item.classList.toggle('is-active',itemIndex===index);item.classList.toggle('is-done',itemIndex<evidenceCaptures);});}function evidenceRender(reason){const version=evidenceCore?.dataset.workflowVersion||'0';const zoom=Number(evidenceZoom.value);const active=Math.min(evidenceNotes.length-1,Number(evidenceStep.value)||0);evidenceShell.style.setProperty('--evidence-zoom',String(zoom));evidenceZoomValue.textContent=zoom+'%';evidenceSetCard(active);evidenceStatus.textContent=reason+' · versión principal '+version;}evidenceModeButtons.forEach(button=>button.addEventListener('click',()=>{evidenceModeButtons.forEach(item=>item.classList.toggle('primary',item===button));evidenceShell.dataset.boardMode=button.dataset.boardMode;evidenceRender('Se ha cambiado a'+button.textContent);announce('Modo evidencia:'+button.textContent);}));evidenceCards.forEach((card,index)=>card.addEventListener('click',()=>{evidenceStep.value=String(index);evidenceRender('Tarjeta de observación cambiada');announce('Tarjeta de observación:'+evidenceNotes[index]);}));evidenceZoom.addEventListener('input',()=>{evidenceRender('El zoom del lienzo se ha actualizado');announce('Observación de escala '+evidenceZoom.value+'%');});evidenceStep.addEventListener('change',()=>{const index=Number(evidenceStep.value)||0;evidenceRender('Cambio a la vista de muestra');announce('Muestra actual:'+evidenceNotes[index]);});document.querySelector('#evidenceCapture').addEventListener('click',()=>{const index=Math.min(evidenceNotes.length-1,Number(evidenceStep.value)||0);const note=evidenceNotes[index];const version=evidenceCore?.dataset.workflowVersion||'0';evidenceCaptures+=1;const item=document.createElement('li');item.textContent='evidencia '+evidenceCaptures+' · '+note+' · versión principal '+version;const empty=evidenceLog.querySelector('li')?.textContent==='Aún no se han registrado pruebas';if(empty)evidenceLog.replaceChildren(item);else evidenceLog.prepend(item);while(evidenceLog.children.length>6)evidenceLog.lastElementChild.remove();evidenceRender('Se ha registrado la evidencia '+evidenceCaptures);announce('Se ha registrado la evidencia '+evidenceCaptures+' · '+note);});evidenceCore?.addEventListener('focusin',()=>evidenceRender('Caso principal tiene el foco'));evidenceCore?.addEventListener('click',()=>evidenceRender('Se produce una interacción en el caso principal'));evidenceRender('Esperando la muestra');
  </script>
</body>
</html>
Comentarios de la página¿Has encontrado un problema o tienes sugerencias de mejora?
Las funciones de retroalimentación deben usarse en la versión en línea

Envía tras activar JavaScript en la versión en línea; las funciones locales de la herramienta o del ejemplo no se verán afectadas.

Ir a la versión en línea para dar feedback