Stabilize WebUI mount geometry
Add responsive shell styling for a 250px desktop sidebar slot that yields to the mounted left panel and collapses on mobile. Reserve the welcome composer's final height while nested input components hydrate, and document that component-local layout contract.
Alessandro committed
Jul 23, 2026 at 15:25 UTC
dec6df661f839040748221f828f5f792257892f0
3 files changed
+19
webui/components/welcome/AGENTS.md
+1
@@ -18,6 +18,7 @@
18
- Do not show setup prompts for already configured plugins when backend status can prevent it.
19
- Do not replace the welcome composer with blocking model setup UI; missing model setup is deferred to the chat thread on first send.
20
- The welcome screen mounts the shared chat composer to start a new chat; keep it mutually exclusive with the normal chat input DOM.
21
+- Reserve the welcome composer's final minimum height before its nested input components hydrate.
22
- Render `system-resources` as the dedicated System Resources panel, not as a generic alert banner.
23
- Utility quick actions from welcome must keep the first screen intact; use modal/floating entry points instead of docking the right canvas beside welcome content.
24
webui/components/welcome/welcome-screen.html
+1
@@ -237,6 +237,7 @@
237
238
.welcome-composer {
239
width: 100%;
240
+ min-height: 4.9rem;
241
}
242
243
.welcome-composer > x-component,
webui/index.css
+17
@@ -311,6 +311,23 @@ img {
311
overflow: hidden;
312
}
313
314
+.sidebar-slot {
315
+ flex: 0 0 250px;
316
+ min-width: 250px;
317
+ height: 100%;
318
+}
319
+
320
+.sidebar-slot:has(#left-panel) {
321
+ display: contents;
322
+}
323
+
324
+@media (max-width: 768px) {
325
+ .sidebar-slot {
326
+ flex-basis: 0;
327
+ min-width: 0;
328
+ }
329
+}
330
+
331
.panel {
332
display: -webkit-flex;
333
display: flex;