Spaces:
Running on Zero
Running on Zero
Mobile-friendly layout, all features kept
Browse filesStage moves above the control deck on narrow screens, the deck becomes a
full-width scrolling panel with a sticky Generate button, the transport
bar wraps with the progress bar on its own row, the header collapses to
logo + status pill, dropzones/sliders get bigger touch targets, and
inputs use 16px to stop iOS focus zoom.
- index.html +40 -3
index.html
CHANGED
|
@@ -165,9 +165,46 @@
|
|
| 165 |
.examples button:hover { color: var(--text); border-color: var(--edge-hi); }
|
| 166 |
|
| 167 |
@media (max-width: 860px) {
|
| 168 |
-
|
| 169 |
-
|
| 170 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 171 |
}
|
| 172 |
</style>
|
| 173 |
</head>
|
|
|
|
| 165 |
.examples button:hover { color: var(--text); border-color: var(--edge-hi); }
|
| 166 |
|
| 167 |
@media (max-width: 860px) {
|
| 168 |
+
body { height: 100dvh; overflow: hidden; }
|
| 169 |
+
main { flex-direction: column; overflow-y: auto; -webkit-overflow-scrolling: touch; }
|
| 170 |
+
|
| 171 |
+
/* Stage first, controls below: the monitor is what a phone user came for. */
|
| 172 |
+
section.stage { order: -1; flex: none; }
|
| 173 |
+
.monitor-wrap { padding: 12px; }
|
| 174 |
+
.monitor video { max-height: 38vh; }
|
| 175 |
+
.monitor .placeholder { position: static; padding: 42px 16px; }
|
| 176 |
+
|
| 177 |
+
aside {
|
| 178 |
+
width: 100%; flex: none; overflow: visible;
|
| 179 |
+
border-right: none; border-top: 1px solid var(--edge);
|
| 180 |
+
padding: 14px 14px 90px; /* room for the sticky run button */
|
| 181 |
+
}
|
| 182 |
+
#run {
|
| 183 |
+
position: sticky; bottom: 12px; z-index: 5;
|
| 184 |
+
padding: 15px; font-size: 15px;
|
| 185 |
+
box-shadow: 0 8px 24px rgba(0,0,0,.5);
|
| 186 |
+
}
|
| 187 |
+
|
| 188 |
+
/* Touch targets + kill iOS auto-zoom on focus (needs >=16px). */
|
| 189 |
+
textarea, select, input[type=number] { font-size: 16px; }
|
| 190 |
+
.dropzone { min-height: 92px; }
|
| 191 |
+
.check { padding: 6px 0; }
|
| 192 |
+
summary { padding: 12px; }
|
| 193 |
+
input[type=range] { height: 28px; }
|
| 194 |
+
|
| 195 |
+
header { padding: 0 12px; gap: 10px; }
|
| 196 |
+
.logo span { display: none; }
|
| 197 |
+
#status-pill { max-width: 38vw; padding: 4px 9px; }
|
| 198 |
+
header .links a { display: none; }
|
| 199 |
+
header .links #status-pill { display: flex; }
|
| 200 |
+
|
| 201 |
+
.transport { flex-wrap: wrap; gap: 8px 12px; padding: 10px 12px; }
|
| 202 |
+
#bar-track { flex: 1 1 100%; order: -1; width: auto; height: 5px; }
|
| 203 |
+
#report { white-space: normal; flex: 1 1 60%; font-size: 11px; }
|
| 204 |
+
#refined-bar { max-height: 80px; }
|
| 205 |
+
}
|
| 206 |
+
@media (max-width: 400px) {
|
| 207 |
+
.frames-row { grid-template-columns: 1fr; }
|
| 208 |
}
|
| 209 |
</style>
|
| 210 |
</head>
|