From 2609e4bd73f031a318ef151b38e0256d4e3612b9 Mon Sep 17 00:00:00 2001 From: gramps Date: Tue, 14 Jul 2026 15:30:10 -0700 Subject: [PATCH] Topbar cleanup: move stats to bottom bar, toggles to hamburger menu, palette next to version, mobile-responsive --- templates/index.html | 153 +++++++++++++++++++++++++++---------------- 1 file changed, 96 insertions(+), 57 deletions(-) diff --git a/templates/index.html b/templates/index.html index 9f4244b..4edb396 100644 --- a/templates/index.html +++ b/templates/index.html @@ -93,17 +93,18 @@ body { font-family: var(--font-body); background: var(--bg-primary); color: var( .main::after { right:0; border-right:none; border-radius:4px 0 0 4px; } .topbar { display:flex; align-items:center; justify-content:space-between; padding:8px 28px; border-bottom:1px solid var(--border); background:var(--bg-secondary); flex-shrink:0; gap:12px; } .topbar-left { display:flex; align-items:center; gap:10px; min-width:0; } -.topbar-center { display:flex; align-items:center; gap:12px; font-size:12px; font-family:var(--font-mono); color:var(--text-muted); } -.tc-item { white-space:nowrap; } -.tc-label { color:var(--text-muted); text-transform:uppercase; margin-right:2px; } -.tc-val { transition:color 0.3s; } -.tc-val.green { color:var(--success); } -.tc-val.orange { color:var(--warning); } -.tc-val.red { color:var(--danger); } +.sys-stats { display:flex; align-items:center; gap:14px; padding:4px 28px; background:var(--bg-secondary); border-top:1px solid var(--border); font-size:11px; font-family:var(--font-mono); color:var(--text-muted); flex-shrink:0; overflow-x:auto; white-space:nowrap; } +.sys-stats .ss-item { display:flex; align-items:center; gap:3px; } +.sys-stats .ss-label { color:var(--text-muted); text-transform:uppercase; } +.sys-stats .ss-val { transition:color 0.3s; } +.sys-stats .ss-val.green { color:var(--success); } +.sys-stats .ss-val.orange { color:var(--warning); } +.sys-stats .ss-val.red { color:var(--danger); } + .topbar-right { display:flex; align-items:center; gap:6px; } .hamburger { background:transparent; border:1px solid var(--border); color:var(--text-secondary); width:30px; height:30px; border-radius:var(--radius); cursor:pointer; font-size:16px; display:flex; align-items:center; justify-content:center; transition:all 0.15s; flex-shrink:0; } .hamburger:hover { background:var(--bg-hover); border-color:var(--accent-dim); color:var(--accent); } -.topbar-brand { font-family:var(--font-body); font-size:16px; color:#e0e8ff; white-space:nowrap; letter-spacing:0.5px; } +.topbar-brand { font-family:var(--font-body); font-size:16px; color:#e0e8ff; white-space:nowrap; letter-spacing:0.5px; display:flex; align-items:center; gap:6px; } .topbar-brand .version { color:var(--text-muted); font-size:13px; } .badge { font-size:12px; padding:3px 10px; border-radius:10px; font-family:var(--font-body); cursor:pointer; border:1px solid var(--border); background:transparent; color:var(--text-muted); transition:all 0.15s; letter-spacing:0.5px; } .badge.on { border-color:rgba(0,255,102,0.3); color:var(--success); background:rgba(0,255,102,0.08); } @@ -116,6 +117,18 @@ body { font-family: var(--font-body); background: var(--bg-primary); color: var( .theme-option { display:flex; align-items:center; gap:8px; padding:8px 14px; font-size:12px; font-family:var(--font-mono); color:var(--text-secondary); cursor:pointer; transition:background 0.12s; } .theme-option:hover { background:var(--bg-hover); color:var(--text-primary); } .theme-option.active { color:var(--accent); background:var(--accent-glow); } +.status-menu { position:relative; } +.status-menu-btn { background:transparent; border:1px solid var(--border); color:var(--text-secondary); width:30px; height:30px; border-radius:var(--radius); cursor:pointer; font-size:16px; display:flex; align-items:center; justify-content:center; transition:all 0.15s; flex-shrink:0; } +.status-menu-btn:hover { background:var(--bg-hover); border-color:var(--accent-dim); color:var(--accent); } +.status-dropdown { display:none; position:absolute; top:100%; right:0; margin-top:6px; background:var(--bg-secondary); border:1px solid var(--border); border-radius:var(--radius); min-width:180px; z-index:2000; box-shadow:0 4px 20px rgba(0,0,0,0.4); font-family:var(--font-mono); font-size:12px; } +.status-dropdown.open { display:block; } +.status-dropdown-item { display:flex; align-items:center; justify-content:space-between; padding:8px 14px; color:var(--text-secondary); cursor:pointer; transition:background 0.12s; gap:10px; } +.status-dropdown-item:hover { background:var(--bg-hover); color:var(--text-primary); } +.status-dropdown-item .sdi-label { flex:1; white-space:nowrap; } +.status-dropdown-item .sdi-toggle { font-size:10px; padding:2px 8px; border-radius:8px; border:1px solid; } +.status-dropdown-item .sdi-toggle.on { border-color:rgba(0,255,102,0.3); color:var(--success); background:rgba(0,255,102,0.08); } +.status-dropdown-item .sdi-toggle.off { border-color:rgba(255,51,85,0.3); color:var(--danger); background:rgba(255,51,85,0.08); } +.status-dropdown-divider { height:1px; background:var(--border); margin:4px 0; } .theme-swatch { width:14px; height:14px; border-radius:3px; border:1px solid var(--border); flex-shrink:0; } .swatch-ibm { background:#0088bb; } .swatch-green { background:#00cc33; } @@ -326,9 +339,12 @@ body { font-family: var(--font-body); background: var(--bg-primary); color: var( .raw-results small { color:var(--text-muted); display:block; margin-top:2px; } @media (max-width:768px) { - .topbar { padding:10px 32px; } - .chat-container { padding:12px 28px; } - .input-area { padding:10px 28px; } + .topbar { padding:8px 14px; gap:6px; } + .chat-container { padding:12px 14px; } + .input-area { padding:8px 14px; } + .sys-stats { padding:3px 14px; gap:10px; font-size:10px; } + .topbar-brand { font-size:14px; } + .topbar-brand .version { font-size:11px; } } .auth-screen { position: fixed; inset: 0; width: 100%; height: 100vh; display: none; align-items: center; justify-content: center; background: rgba(0,0,0,0.62); z-index: 3000; } @@ -499,22 +515,41 @@ body { font-family: var(--font-body); background: var(--bg-primary); color: var(
- cAIc {{ version }} -
-
- CPU --% - MEM --% - GPU --% - VRAM --% - TOK 0 / 0% + cAIc {{ version }}
IBM Blue
Green Ln
Dark
Light
Amber
Trippin
+
- - - - - - + +
+ +
+
+ Memory + MEM +
+
+ Web Search + SEARCH +
+
+ Profile + PROFILE +
+
+ Sort + ↓ NEW +
+
+ Privacy + OFF +
+
+
+ ⓘ About Privacy + +
+
+
- -
- -
-
IBM Blue
-
Green Ln
-
Dark
-
Light
-
Amber
-
Trippin
-
-
+
+
+ +
+
+ +
+ CPU --% + MEM --% + GPU --% + VRAM --% + TOK 0 / 0% +
+
@@ -575,12 +612,6 @@ body { font-family: var(--font-body); background: var(--bg-primary); color: var(
- -
-
- -
-