Questions for a wider view
HTML for this example
Select the code and use your copy shortcut. Changes in this preview are temporary.
<!doctype html>
<html lang="en-US"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Questions for a wider view</title><style>*{box-sizing:border-box}body{margin:0;background:#f3f4f2;color:#202c32;font:16px/1.5 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}main{max-width:1120px;margin:auto;padding:30px 28px 60px}header{margin-bottom:22px}.eyebrow{font-size:12px;letter-spacing:.14em;text-transform:uppercase;font-weight:750;color:#59676b}h1{font-size:clamp(25px,4vw,36px);line-height:1.15;letter-spacing:-.035em;margin:7px 0 10px}h2{font-size:21px;line-height:1.3;margin:0 0 16px}h3{font-size:17px;margin:0 0 10px}p{margin:8px 0 16px}label{display:block;font-size:14px;font-weight:650;margin:12px 0 5px}input,select,textarea,button{font:inherit}input,select,textarea{width:100%;min-width:0;border:1px solid #b6c0bf;border-radius:7px;background:#fff;color:#202c32;padding:10px 12px}textarea{resize:vertical;min-height:88px}input[type=checkbox]{width:18px;height:18px;vertical-align:middle;margin-right:8px}button{border:1px solid #b8c3c1;border-radius:7px;padding:10px 15px;background:#fff;color:#203632;font-weight:650;cursor:pointer}button.primary{background:#243f3c;color:white;border-color:#243f3c}button:hover{filter:brightness(.95)}button:disabled{opacity:.48;cursor:not-allowed}:focus-visible{outline:3px solid #b05814;outline-offset:3px}.buttons{display:flex;gap:8px;flex-wrap:wrap;margin-top:18px}.panel{background:#fff;border:1px solid #d7ddda;border-radius:12px;padding:24px}.split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:22px}.row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.result{background:#e4eee8;border:1px solid #c5d6ca;border-radius:12px;padding:28px}.big{font-size:clamp(32px,5vw,56px);font-weight:740;line-height:1.14;letter-spacing:-.04em;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}.muted{color:#59686a;font-size:14px}.tag{display:inline-block;background:#edf0ed;border-radius:4px;padding:3px 8px;font-size:12px;font-weight:700}.error{color:#9d301b;font-weight:650;min-height:24px;margin-top:10px}.note{border-left:3px solid #9a794a;padding:10px 15px;background:#faf5e9;margin:18px 0}.below{margin-top:28px}.record{white-space:pre-wrap;overflow-wrap:anywhere;font:14px/1.65 ui-monospace,SFMono-Regular,Consolas,monospace;background:#f2f4f1;padding:18px;border-radius:8px}table{width:100%;border-collapse:collapse;font-size:14px}th,td{text-align:left;vertical-align:top;border-bottom:1px solid #dce1dd;padding:12px 10px;overflow-wrap:anywhere}th{color:#59686a;font-size:12px}a{color:#2c5a6a;overflow-wrap:anywhere}details{margin-top:20px}summary{cursor:pointer;font-weight:650}hr{border:0;border-top:1px solid #d6dcd6;margin:22px 0}[hidden]{display:none!important}ol,ul{padding-left:23px}.statline{display:flex;gap:20px;flex-wrap:wrap;margin:18px 0}.statline strong{display:block;font-size:24px}.inline{display:flex;align-items:center;gap:8px}.inline label{margin:0} .blank{min-height:36px;border-bottom:1px dashed #aebbb5;color:#66736d;font-size:13px;padding:8px 0}@media(max-width:720px){main{padding:22px 18px 45px}.split{grid-template-columns:1fr}.panel,.result{padding:20px}.row{gap:12px}th,td{padding:10px 6px}}@media(max-width:400px){main{padding:18px 14px 40px}.big{font-size:34px}button{padding:10px 12px}.row{grid-template-columns:1fr}.panel,.result{padding:17px}}.question{border-top:1px solid #d7ddd7;padding:18px 0 4px}.question h3{font-size:19px;max-width:760px;margin-top:7px}.agenda{display:grid;grid-template-columns:65px 1fr;gap:20px 12px}.agenda b{color:#53645b;font-size:14px}.agenda p{font-size:14px;margin:4px 0 0}#viewIntro{margin:20px 0;color:#59686a}</style></head><body><main><header><div class="eyebrow">Skip-level preparation · 30-minute packet</div><h1>Questions for a wider view</h1></header>
<section class="panel"><div class="inline"><span class="tag">Fictional intake-rule discussion</span><span class="muted">Employee → senior leader</span></div><h2 class="below">Clarify the decision and who owns the open question.</h2><div class="buttons"><button id="employee" class="primary" aria-pressed="true">Employee preparation</button><button id="leader" aria-pressed="false">Leader facilitation</button></div><p class="note"><strong>Note-sharing boundary: TO CONFIRM.</strong> Resolve recipients, attribution, access and concerns with the organizer before discussing personal feedback.</p><div id="viewIntro"></div><div class="question"><span class="eyebrow">Question 01</span><h3>What organizational problem is the new route intended to address?</h3><p class="leaderOnly" hidden>Invite the employee's understanding first, then distinguish the written rule from your interpretation.</p></div><div class="question"><span class="eyebrow">Question 02</span><h3>Who owns the decision about urgent-request exceptions, and where are the criteria published?</h3><p class="leaderOnly" hidden>Ask: “Which part of the instruction leaves you unsure?” Read back the uncertainty before proposing a check.</p></div><p><strong>Concrete uncertainty:</strong> I cannot tell whether urgent requests use the same route.</p></section>
<section class="below split"><div class="panel"><h2>30-minute conversation</h2><div class="agenda"><b>00–04</b><div><strong>Purpose and sharing boundary</strong><p>Ask how notes may be used before moving into feedback.</p></div><b>04–10</b><div><strong>Organizational context</strong><p>Explain the decision only from verified material.</p></div><b>10–24</b><div><strong>Employee questions and examples</strong><p>Listen, ask for the unclear instruction, and check your summary.</p></div><b>24–30</b><div><strong>Readback and follow-up</strong><p>Review the open question, proposed next step and permitted sharing.</p></div></div></div><div class="panel"><h2>Evidence and follow-up</h2><label for="rule">Verified rule excerpt and source</label><textarea id="rule" placeholder="INSERT VERIFIED RULE EXCERPT AND SOURCE"></textarea><label for="context">Known explanation and source</label><textarea id="context" placeholder="Leave blank until supported"></textarea><label for="reply">Actual reply · sanitized review copy only</label><textarea id="reply" placeholder="Leave blank until a reply exists"></textarea><p><strong>Proposed follow-up:</strong> Check the published exception criteria.</p><div class="row"><div><label for="owner">Accepted owner</label><input id="owner"></div><div><label for="date">Agreed return date</label><input id="date" type="date"></div></div></div></section>
<details class="panel"><summary>Complete the sharing and participant fields</summary><label for="participants">Participants and management relationship</label><input id="participants" placeholder="TO CONFIRM"><label for="recipients">Who may receive notes; names and attribution</label><textarea id="recipients" placeholder="TO CONFIRM under actual policy"></textarea><label for="location">Approved note location and access</label><input id="location" placeholder="TO CONFIRM"><label for="concerns">Route for a sharing concern or separate channel</label><input id="concerns" placeholder="TO CONFIRM"><label for="summary">Actual sharing summary</label><textarea id="summary"></textarea><p class="muted">The proposed check approves no exception. Priority, performance and career decisions remain with the direct manager. Use approved organizational records for actual personal feedback; this local packet provides no private storage or anonymity promise.</p><a href="https://handbook.gitlab.com/handbook/leadership/skip-levels/">GitLab overview</a> · <a href="https://handbook.gitlab.com/handbook/engineering/devops/create/engineers/skip-level/">Engineering sharing example</a></details><footer class="below muted">Local working example · Changes last only while this page is open.</footer></main><script>
const $=id=>document.getElementById(id);const txt=(id,v)=>$(id).textContent=v;const esc=s=>String(s).replace(/[&<>"']/g,c=>({'&':'&','<':'<','>':'>','"':'"',"'":'''}[c]));const on=(id,event,fn)=>$(id).addEventListener(event,fn);const num=(s,positive=false)=>{s=String(s).trim();if(!/^\d+(?:\.\d{1,6})?$/.test(s)||!Number.isFinite(+s)||+s>1000000||(positive&&+s<=0))throw Error(positive?'Enter a density greater than 0, up to 1,000,000, with at most six decimals.':'Enter a value from 0 to 1,000,000, with at most six decimals.');return +s};const fmt=n=>n!==0&&Math.abs(n)<.000001?n.toExponential(6):Number(n.toFixed(6)).toString();
function setView(view){if(!['employee','leader'].includes(view))throw Error('Unknown preparation view');for(const v of ['employee','leader']){$(v).setAttribute('aria-pressed',String(v===view));$(v).className=v===view?'primary':''}document.querySelectorAll('.leaderOnly').forEach(el=>el.hidden=view!=='leader');txt('viewIntro',view==='employee'?'Bring the verified rule and these two questions. Keep actual answers blank until supplied.':'Listen to the same two questions. Separate verified explanation, uncertainty and an actual reply.');return [4,6,14,6].reduce((a,b)=>a+b,0)}on('employee','click',()=>setView('employee'));on('leader','click',()=>setView('leader'));window.app={setView};setView('employee');
</script></body></html>