A process changes the material
HTML for this example
Select the code and use your copy shortcut. Changes in this preview are temporary.
<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><meta name="color-scheme" content="light"><title>A process changes the material</title><style>*{box-sizing:border-box}body{margin:0;background:var(--bg,#f2f5f4);color:#203039;font:16px/1.55 system-ui,-apple-system,Segoe UI,sans-serif;--accent:#24635b;--soft:#e1eeea}main{max-width:1000px;margin:auto;padding:32px}header{padding-bottom:20px;border-bottom:1px solid #becbc8;margin-bottom:22px}.eyebrow{font-size:12px;font-weight:750;letter-spacing:.13em;text-transform:uppercase;color:var(--accent)}h1{font-size:clamp(28px,4.7vw,44px);line-height:1.12;letter-spacing:-.045em;margin:10px 0 14px;max-width:830px}h2{font-size:22px;line-height:1.25;margin:0 0 16px}h3{font-size:17px;margin:0 0 9px}p{margin:8px 0 12px}header p{font-size:18px;max-width:760px}.fiction{font-size:13px;color:#52636a;display:block;margin-top:12px}.paper,.panel{background:#fff;border:1px solid #c5d1cf;border-radius:12px;padding:24px;min-width:0}.pair{display:grid;grid-template-columns:1fr 1fr;gap:20px;align-items:start}.trio{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.note{border-left:4px solid var(--accent);padding:16px 20px;background:var(--soft);margin:18px 0}.note p:last-child{margin-bottom:0}.muted,small{color:#52636a;font-size:14px}.actions{display:flex;flex-wrap:wrap;gap:8px;margin:18px 0}button{font:inherit;font-weight:650;min-height:44px;border:1px solid #81958f;background:#fff;color:#203039;padding:9px 15px;border-radius:7px;cursor:pointer}button:hover{background:var(--soft)}button[aria-pressed=true],#check{background:var(--accent);color:#fff;border-color:var(--accent)}button:disabled{opacity:.55;cursor:default}button:focus-visible,select:focus-visible,input:focus-visible,summary:focus-visible,a:focus-visible{outline:3px solid #b96000;outline-offset:3px}label{display:block;font-size:14px;font-weight:700;margin:12px 0 6px}select,input{font:inherit;width:100%;min-height:44px;border:1px solid #81958f;border-radius:6px;padding:9px;background:#fff;color:#203039;min-width:0}input[type=checkbox]{width:20px;min-height:20px}.feedback{padding:14px 18px;background:var(--soft);border-radius:8px;min-height:53px}.large{font-size:clamp(36px,6vw,60px);font-weight:750;line-height:1.1;letter-spacing:-.05em}.metric{padding:22px;background:var(--accent);color:#fff;border-radius:12px}.metric small{color:#fff}.metric p{margin:8px 0 0}.metric.secondary{background:#e1e9e7;color:#203039}.metric.secondary small{color:#384f4b}.agenda{border-top:1px solid #becbc8;margin-top:28px;padding-top:24px}.agenda h2 span{float:right;font:14px system-ui;color:#52636a}.agenda ol{padding:0;list-style:none}.agenda li{display:grid;grid-template-columns:65px 1fr 48px;gap:16px;border-bottom:1px solid #d5dfdc;padding:14px 0}.agenda p{margin-bottom:0;font-size:14px}.time{color:var(--accent);font-variant-numeric:tabular-nums}svg{width:100%;height:auto;display:block}svg text{font-family:system-ui,sans-serif;fill:#203039}figure{margin:0}figcaption{font-size:14px;margin-top:12px}table{width:100%;border-collapse:collapse;font-size:14px;margin:14px 0}th,td{padding:12px 10px;text-align:left;border-bottom:1px solid #d2dcd9;vertical-align:top;overflow-wrap:anywhere}th{background:var(--soft);font-size:12px;text-transform:uppercase;letter-spacing:.035em}.mobile-label{display:none}.blank{padding:16px 0;border-bottom:1px dashed #879992;color:#52636a}.view{margin:16px 0}[hidden]{display:none!important}details{border-top:1px solid #bccac5;padding:15px 0;margin-top:18px}summary{cursor:pointer;font-weight:700;min-height:44px}a{color:var(--accent)}footer{border-top:1px solid #bdcbc6;padding-top:18px;margin-top:30px;font-size:13px;color:#52636a}.tag{display:inline-block;padding:3px 8px;font-size:12px;background:var(--soft);border-radius:4px;font-weight:700}.formula{font-family:ui-monospace,Consolas,monospace;background:#eaf0ed;padding:15px;border-radius:6px;overflow-wrap:anywhere}.strip{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0}.strip span{border:1px solid #bccac5;border-radius:5px;padding:6px 10px;font-size:14px}.scene{background:#fbf7ed;padding:20px;border-radius:12px}.sentence{font:clamp(23px,4vw,34px)/1.5 Georgia,serif;padding:20px 0}.accent{color:var(--accent);font-weight:750}.bar{height:18px;background:#e2e9e6;border-radius:4px;overflow:hidden}.bar span{display:block;height:100%;background:var(--accent)}.path{font-size:17px;line-height:1.8;padding:16px;background:#fff;border:1px solid #bccac5;border-radius:8px;overflow-wrap:anywhere}.diagram-row{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.node{padding:15px;background:var(--soft);border:1px solid #8ea79d;border-radius:10px;font-weight:700}.study{padding:14px;background:#fff;border-bottom:3px solid var(--accent)}.study svg{height:86px}.studio{--bg:#f6f1e6;--accent:#78502d;--soft:#efe3cf}.studio h1{font-family:Georgia,serif;font-weight:500}.stage{--bg:#f0edf4;--accent:#654378;--soft:#e8def0}.rhythm{--bg:#eef2fa;--accent:#3c4d86;--soft:#e4e9f8}.rhythm-grid{display:grid;grid-template-columns:85px repeat(4,1fr);gap:4px;margin:14px 0}.rhythm-grid>*{padding:13px 6px;text-align:center;background:#fff;border:1px solid #c8d1e4}.rhythm-grid .changed{background:#f5dfa0;font-weight:750}.beat{font-size:22px}.position{background:#eef1f0;border-radius:8px;padding:20px}.tokens{display:flex;flex-wrap:wrap;gap:8px;min-height:60px}.ordered{padding:18px;border:2px dashed #91a699;border-radius:8px;min-height:82px;margin:18px 0;font-size:24px}.parcel-row{display:grid;grid-template-columns:repeat(6,1fr);gap:8px}.parcel-row button{padding:10px 3px;font-size:12px}.parcel-row svg{height:64px;margin:0 auto 6px}.ribbon{padding:12px 0;display:grid;grid-template-columns:65px 1fr 58px;gap:12px;align-items:center}.ribbon .bar{height:27px;border-radius:0;background:transparent}.ribbon .bar span{background:#718e66}.ribbon:nth-child(2) .bar span{background:#8868a5}.ribbon:nth-child(3) .bar span{background:#3f7f99}.cell-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.cell{border:2px solid #90aaba;border-radius:50%;padding:20px;background:#f3f8fb;text-align:center;min-height:115px}.chromosome{display:inline-block;padding:4px;margin:4px;color:#254f73;border:1px solid #90aaba;border-radius:8px;font-size:15px;font-weight:700}.codons{display:flex;gap:8px;flex-wrap:wrap}.codon{border:1px solid #a9bab2;background:#fff;border-radius:8px;padding:12px;text-align:center;min-width:80px}.codon.current{border:3px solid var(--accent);padding:10px}.codon b{font:28px ui-monospace,monospace;letter-spacing:.12em}.periodic{display:grid;grid-template-columns:65px repeat(3,1fr);gap:8px;align-items:stretch;margin:16px 0}.element{padding:12px!important;background:#eaf1ed}.element strong{display:block;font-size:44px}.element small{display:block}.omitted{border:1px dashed #94a89e;padding:15px;color:#52636a;font-size:13px}.receipt{border-top:5px solid var(--accent);background:#fff;padding:28px}.number-list{font-variant-numeric:tabular-nums}.travel{--bg:#edf4f6;--accent:#235d76;--soft:#dfeef3}.travel .timetable{border-left:5px solid var(--accent);background:#fff;padding:20px}.readiness{display:grid;grid-template-columns:140px 1fr;gap:8px 18px}.readiness dt{font-size:13px;font-weight:700}.readiness dd{margin:0;padding-bottom:10px;border-bottom:1px solid #d6dfda}.request-card{border:1px solid #bfd0c7;background:#fff;border-left:5px solid var(--accent);padding:20px;margin:16px 0}.grid-form{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}@media(max-width:720px){main{padding:22px}.pair{gap:14px}.paper,.panel{padding:18px}.trio{grid-template-columns:1fr}.grid-form{grid-template-columns:1fr}.readiness{grid-template-columns:115px 1fr}.rhythm-grid>*{padding:12px 3px;font-size:13px}.beat{font-size:19px}}@media(max-width:520px){main{padding:16px}.pair{grid-template-columns:1fr}.agenda li{grid-template-columns:48px 1fr 38px;gap:8px}.agenda h2 span{float:none;display:block;margin-top:8px}.parcel-row{gap:4px}.parcel-row button{font-size:10px;min-width:0}.parcel-row svg{height:46px}.periodic{grid-template-columns:40px repeat(3,1fr);gap:4px}.periodic button{font-size:12px;padding:8px 3px!important}.periodic .element strong{font-size:34px}.periodic small{font-size:11px}.periodic .omitted{padding:10px 5px;font-size:11px}thead{display:none}table,tbody,tr,td{display:block;width:100%}tr{border-bottom:1px solid #bdcec5;padding:8px 0}td{border:0;padding:7px 4px}.mobile-label{display:block;font-size:11px;font-weight:750;color:#52636a}.cell{padding:12px}.cell-grid{gap:8px}.readiness{grid-template-columns:1fr;gap:3px}.rhythm-grid{grid-template-columns:65px repeat(4,1fr);gap:2px}.rhythm-grid>*{font-size:11px;padding:12px 2px}.ribbon{grid-template-columns:57px 1fr 48px;gap:6px}}@media print{main{max-width:none;padding:0}body{background:#fff}button,.actions{display:none}.view[hidden]{display:block!important}.paper{break-inside:avoid}}</style></head><body class=""><main><header><span class="eyebrow">Rock pathways · branching teaching model</span><h1>A process changes the material</h1><p>Worked route: Igneous rock → melting → magma → cooling and crystallization → igneous rock. The history explains why the final label can recur.</p><span class="fiction">Original illustrative example · local practice; answers are not stored</span></header><section class="paper"><span class="eyebrow">Your current material</span><h2 id="material" class="large">Igneous rock</h2><p id="available" class="muted"></p><label for="process">Choose a process</label><select id="process"><option value="">Choose a process</option><option value="Solid-state metamorphism">Solid-state metamorphism</option><option value="Weathering, transport and deposition">Weathering, transport and deposition</option><option value="Compaction and cementation">Compaction and cementation</option><option value="Melting">Melting</option><option value="Cooling and crystallization">Cooling and crystallization</option></select><div class="actions"><button id="apply">Apply process</button><button id="undo">Undo last</button><button id="reset">Reset path</button></div><div id="history" class="path" aria-live="polite">No process chosen.</div><p id="feedback" class="feedback" role="status">No process chosen. Start with igneous rock.</p></section><details open><summary>Limited-model transition key</summary><table><thead><tr><th scope="col">From</th><th scope="col">Process</th><th scope="col">To</th></tr></thead><tbody><tr><td><span class="mobile-label">From</span>Igneous rock</td><td><span class="mobile-label">Process</span>Solid-state metamorphism</td><td><span class="mobile-label">To</span>Metamorphic rock</td></tr><tr><td><span class="mobile-label">From</span>Igneous rock</td><td><span class="mobile-label">Process</span>Weathering, transport and deposition</td><td><span class="mobile-label">To</span>Sediment</td></tr><tr><td><span class="mobile-label">From</span>Sediment</td><td><span class="mobile-label">Process</span>Compaction and cementation</td><td><span class="mobile-label">To</span>Sedimentary rock</td></tr><tr><td><span class="mobile-label">From</span>Igneous rock</td><td><span class="mobile-label">Process</span>Melting</td><td><span class="mobile-label">To</span>Magma</td></tr><tr><td><span class="mobile-label">From</span>Sedimentary rock</td><td><span class="mobile-label">Process</span>Melting</td><td><span class="mobile-label">To</span>Magma</td></tr><tr><td><span class="mobile-label">From</span>Metamorphic rock</td><td><span class="mobile-label">Process</span>Melting</td><td><span class="mobile-label">To</span>Magma</td></tr><tr><td><span class="mobile-label">From</span>Magma</td><td><span class="mobile-label">Process</span>Cooling and crystallization</td><td><span class="mobile-label">To</span>Igneous rock</td></tr></tbody></table></details><aside class="note"><strong>Explain one arrow</strong><p>Why did the material change? “It is next in the circle” is not an explanation. This limited model does not identify real samples or calculate temperature, depth or geological time.</p></aside><footer>Changes and practice answers last only on this page. Keep actual observations, decisions and records in your established school, document or spreadsheet workflow.</footer></main><script>const $=id=>document.getElementById(id);const esc=s=>String(s).replace(/[&<>"']/g,c=>({'&':'&','<':'<','>':'>','"':'"',"'":'''}[c]));const status=s=>{$('feedback').textContent=s;};
const edges=[["Igneous rock","Solid-state metamorphism","Metamorphic rock","The rock changes through suitable heat and/or pressure while remaining solid."],["Igneous rock","Weathering, transport and deposition","Sediment","Broken-down material is moved and deposited. Sediment is not yet sedimentary rock."],["Sediment","Compaction and cementation","Sedimentary rock","Deposited material becomes rock."],["Igneous rock","Melting","Magma","Melting creates molten material, not metamorphic rock."],["Sedimentary rock","Melting","Magma","Melting creates molten material, not metamorphic rock."],["Metamorphic rock","Melting","Magma","Melting creates molten material, not metamorphic rock."],["Magma","Cooling and crystallization","Igneous rock","Molten material forms rock as it cools and crystallizes."]];let current='Igneous rock',history=[];function transition(from,process){const x=edges.find(x=>x[0]===from&&x[1]===process);return x?{to:x[2],explanation:x[3]}:{error:'That process is not supplied for '+from+' in this limited model. Keep the material unchanged and consult the transition key.'};}function render(){ $('material').textContent=current;$('available').textContent='Supplied here: '+edges.filter(x=>x[0]===current).map(x=>x[1]).join('; ');$('history').textContent=history.length?'Igneous rock'+history.map(x=>' — '+x.process+' → '+x.to).join(''):'No process chosen. Starting material: Igneous rock.';$('undo').disabled=history.length===0;$('process').value='';}$('apply').addEventListener('click',()=>{const p=$('process').value;if(!p){status('Choose a process. No transition made.');return;}const t=transition(current,p);if(t.error){status(t.error);return;}history.push({from:current,process:p,to:t.to});current=t.to;render();status(t.explanation);});$('undo').addEventListener('click',()=>{if(history.length){current=history.pop().from;render();status('Undone. Current material and path restored together.');}});$('reset').addEventListener('click',()=>{current='Igneous rock';history=[];render();status('No process chosen. Start with igneous rock.');});globalThis.Model={edges,transition,getState:()=>({current,history:[...history]})};render();</script></body></html>