diff --git a/README.md b/README.md index 0705761..9b8a2e8 100644 --- a/README.md +++ b/README.md @@ -118,7 +118,9 @@ The detail lives in dedicated documents: animating the whole plant as a simulated SCADA overview, from PVC intake and the material lab through extruder, press, trim, optical inspection, finishing, packaging and fulfillment, with the metal path, utilities and - energy alongside; open it in a browser, every station is clickable + energy alongside; open it in a browser, every station is clickable; + on phones and tablets held sideways it pinch-zooms and opens station + details in a side sheet - [Test site](site/README.md): `site/` builds https://cnxvinyl.lol/, the internal test site with demo pages from `docs/` (the plant operation page first) and any static site we want to share by link; Gitea Actions diff --git a/docs/plant-operation.html b/docs/plant-operation.html index 98e1e6f..286df65 100644 --- a/docs/plant-operation.html +++ b/docs/plant-operation.html @@ -12,22 +12,31 @@ } *{box-sizing:border-box;margin:0;padding:0} html,body{height:100%} -body{background:var(--bg);color:var(--fg);font:13px/1.4 -apple-system,"Segoe UI",Roboto,Arial,sans-serif;display:flex;flex-direction:column;height:100vh;overflow:hidden} -header{display:flex;align-items:center;gap:16px;padding:7px 14px;background:var(--panel);border-bottom:1px solid var(--stroke);flex:0 0 auto} +html{-webkit-text-size-adjust:100%;text-size-adjust:100%} +body{background:var(--bg);color:var(--fg);font:13px/1.4 -apple-system,"Segoe UI",Roboto,Arial,sans-serif;display:flex;flex-direction:column;height:100vh;height:100dvh;overflow:hidden} +header{display:flex;flex-wrap:wrap;align-items:center;gap:6px 16px;padding:7px 14px;background:var(--panel);border-bottom:1px solid var(--stroke);flex:0 0 auto} header h1{font-size:15px;font-weight:600;letter-spacing:.02em;white-space:nowrap} header h1 span{color:var(--mute);font-weight:400} -.kpis{display:flex;gap:14px;margin-left:auto} -.kpi{display:flex;flex-direction:column;min-width:70px} +.kpis{display:flex;gap:12px;margin-left:auto;min-width:0;max-width:100%;overflow-x:auto;scrollbar-width:none} +.kpis::-webkit-scrollbar{display:none} +.kpi{display:flex;flex-direction:column;min-width:70px;flex:0 0 auto} .kpi b{font:600 15px var(--mono);white-space:nowrap} .kpi small{color:var(--mute);font-size:10px;text-transform:uppercase;letter-spacing:.06em;white-space:nowrap} -.ctl{display:flex;gap:6px;align-items:center;margin-left:16px} +.ctl{display:flex;gap:6px;align-items:center;flex:0 0 auto} button{background:#182238;color:var(--fg);border:1px solid var(--stroke);border-radius:4px;padding:4px 9px;font-size:12px;cursor:pointer;white-space:nowrap} button:hover{background:#1f2c47} button.on{background:#244a7a;border-color:#3b74b8} button.demo{border-color:#5a4a1f;color:#ffd777} -main{flex:1 1 auto;min-height:0;display:flex;align-items:center;justify-content:center;padding:4px 10px} -svg{width:100%;height:100%} -footer{flex:0 0 210px;display:grid;grid-template-columns:1.1fr 1fr 0.9fr;gap:10px;padding:8px 14px 10px;background:var(--panel);border-top:1px solid var(--stroke);min-height:0} +main{flex:1 1 auto;min-height:0;display:flex;align-items:center;justify-content:center;padding:4px 10px;position:relative} +svg{width:100%;height:100%;touch-action:none;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent} +svg.zoomed{cursor:grab} +svg.dragging{cursor:grabbing} +.mapctl{position:absolute;right:12px;bottom:8px;display:flex;gap:2px;z-index:2} +.mapctl button{background:rgba(24,34,56,.88);min-width:30px} +#btnInfo,footer .tabs{display:none} +#hint{display:none;position:absolute;top:8px;left:50%;transform:translateX(-50%);background:var(--box);border:1px solid var(--stroke);border-radius:6px;padding:6px 10px;color:var(--mute);font-size:12px;white-space:nowrap;z-index:2} +footer .tabs button.close{margin-left:auto;min-width:32px} +footer{flex:0 0 clamp(150px,26vh,210px);display:grid;grid-template-columns:1.1fr 1fr 0.9fr;gap:10px;padding:8px 14px 10px;background:var(--panel);border-top:1px solid var(--stroke);min-height:0} .panel{background:var(--box);border:1px solid var(--stroke);border-radius:6px;padding:8px 12px;overflow:auto;min-height:0} .panel h2{font-size:13px;margin-bottom:4px} .panel h3{font-size:11px;color:var(--mute);text-transform:uppercase;letter-spacing:.06em;margin:6px 0 2px} @@ -45,6 +54,35 @@ footer{flex:0 0 210px;display:grid;grid-template-columns:1.1fr 1fr 0.9fr;gap:10p .legend i.d{border-top-style:dashed} .legend .note{grid-column:1/3;color:var(--mute);margin-top:6px;font-size:10.5px} +/* Short screens (phones held sideways): one-row header with a scrolling KPI + strip, the drawing takes the rest, panels open as a sheet on the right. */ +@media (max-height:560px){ + header{flex-wrap:nowrap;gap:8px;padding:4px 8px} + header h1{font-size:13px} + header h1 span{display:none} + .ctl{gap:4px} + button{padding:4px 7px;font-size:11px;min-height:28px} + .kpis{flex:1 1 0;gap:10px} + .kpi{min-width:56px} + .kpi b{font-size:13px} + .kpi small{font-size:9px} + main{padding:2px 4px} + .mapctl{right:8px;bottom:4px} + body.sheet .mapctl{right:calc(min(420px,55vw) + 8px)} + #btnInfo{display:inline-block} + footer{position:fixed;z-index:5;top:var(--hdrH,37px);right:0;bottom:0;width:min(420px,55vw);display:none;flex-direction:column;gap:6px;padding:6px;border-top:0;border-left:1px solid var(--stroke);box-shadow:-8px 0 24px rgba(0,0,0,.45)} + body.sheet footer{display:flex} + footer .tabs{display:flex;gap:4px;flex:0 0 auto} + footer .panel{display:none;flex:1 1 auto} + body[data-panel=detail] #detail,body[data-panel=log] #logPanel,body[data-panel=legend] #legendPanel{display:block} +} +/* Phones held upright: the plant is too wide, ask for landscape. */ +@media (orientation:portrait) and (max-width:600px){ + #hint{display:block} + header h1{white-space:normal} + .ctl{flex-wrap:wrap} +} + /* SVG */ .mbox{fill:#121a2b;stroke:#2a3a56;stroke-width:1} .machine{cursor:pointer} @@ -111,6 +149,7 @@ footer{flex:0 0 210px;display:grid;grid-template-columns:1.1fr 1fr 0.9fr;gap:10p +
08:00:00sim clock
@@ -132,15 +171,27 @@ footer{flex:0 0 210px;display:grid;grid-template-columns:1.1fr 1fr 0.9fr;gap:10p +
+ + + +
+
Turn the phone sideways for the plant view