Restyle Web UI with warm orange theme matching Soup logo

- Color scheme: warm oranges (#e8703a), golds (#f2b233), dark browns (#1a1210)
  instead of cold blue/green
- Add Soup logo image to sidebar
- Update chart colors (loss=orange, LR=gold) to match brand
- Dark warm background tones throughout

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Alpamys 2026-03-23 21:15:50 +05:00
parent 6a76a1be32
commit 0de51152ed
4 changed files with 40 additions and 30 deletions

View File

@ -276,8 +276,8 @@ function renderCharts(metrics) {
datasets: [{
label: 'Loss',
data: losses,
borderColor: '#22c55e',
backgroundColor: 'rgba(34, 197, 94, 0.1)',
borderColor: '#e8703a',
backgroundColor: 'rgba(232, 112, 58, 0.1)',
fill: true,
tension: 0.3,
pointRadius: 0,
@ -289,8 +289,8 @@ function renderCharts(metrics) {
maintainAspectRatio: false,
plugins: { legend: { display: false } },
scales: {
x: { title: { display: true, text: 'Step', color: '#94a3b8' }, ticks: { color: '#94a3b8' }, grid: { color: 'rgba(71,85,105,0.3)' } },
y: { title: { display: true, text: 'Loss', color: '#94a3b8' }, ticks: { color: '#94a3b8' }, grid: { color: 'rgba(71,85,105,0.3)' } },
x: { title: { display: true, text: 'Step', color: '#a89080' }, ticks: { color: '#a89080' }, grid: { color: 'rgba(90,68,56,0.3)' } },
y: { title: { display: true, text: 'Loss', color: '#a89080' }, ticks: { color: '#a89080' }, grid: { color: 'rgba(90,68,56,0.3)' } },
},
},
});
@ -306,8 +306,8 @@ function renderCharts(metrics) {
datasets: [{
label: 'Learning Rate',
data: lrs,
borderColor: '#3b82f6',
backgroundColor: 'rgba(59, 130, 246, 0.1)',
borderColor: '#f2b233',
backgroundColor: 'rgba(242, 178, 51, 0.1)',
fill: true,
tension: 0.3,
pointRadius: 0,
@ -319,8 +319,8 @@ function renderCharts(metrics) {
maintainAspectRatio: false,
plugins: { legend: { display: false } },
scales: {
x: { title: { display: true, text: 'Step', color: '#94a3b8' }, ticks: { color: '#94a3b8' }, grid: { color: 'rgba(71,85,105,0.3)' } },
y: { title: { display: true, text: 'LR', color: '#94a3b8' }, ticks: { color: '#94a3b8' }, grid: { color: 'rgba(71,85,105,0.3)' } },
x: { title: { display: true, text: 'Step', color: '#a89080' }, ticks: { color: '#a89080' }, grid: { color: 'rgba(90,68,56,0.3)' } },
y: { title: { display: true, text: 'LR', color: '#a89080' }, ticks: { color: '#a89080' }, grid: { color: 'rgba(90,68,56,0.3)' } },
},
},
});

View File

@ -11,7 +11,7 @@
<div class="app">
<!-- Sidebar -->
<aside class="sidebar">
<div class="sidebar-logo">Soup</div>
<div class="sidebar-logo"><img src="/static/logo.png" alt="Soup">Soup</div>
<nav class="sidebar-nav">
<button class="nav-item active" data-page="dashboard" onclick="navigate('dashboard')">
<svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><rect x="3" y="3" width="7" height="7"/><rect x="14" y="3" width="7" height="7"/><rect x="3" y="14" width="7" height="7"/><rect x="14" y="14" width="7" height="7"/></svg>

BIN
soup_cli/ui/static/logo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 156 KiB

View File

@ -1,16 +1,17 @@
/* Soup Web UI — Custom styles */
/* Soup Web UI — Warm theme inspired by the Soup logo */
:root {
--bg: #0f172a;
--bg-card: #1e293b;
--bg-input: #334155;
--border: #475569;
--text: #f1f5f9;
--text-dim: #94a3b8;
--accent: #22c55e;
--accent-hover: #16a34a;
--danger: #ef4444;
--warning: #f59e0b;
--info: #3b82f6;
--bg: #1a1210;
--bg-card: #2a1f1b;
--bg-input: #3d2e28;
--border: #5a4438;
--text: #f5ebe6;
--text-dim: #a89080;
--accent: #e8703a;
--accent-hover: #d45a28;
--accent-gold: #f2b233;
--danger: #e84040;
--warning: #f2b233;
--info: #e8703a;
}
* { margin: 0; padding: 0; box-sizing: border-box; }
@ -36,7 +37,10 @@ body {
}
.sidebar-logo {
padding: 0 1.5rem 1.5rem;
padding: 0.75rem 1.5rem 1.25rem;
display: flex;
align-items: center;
gap: 0.75rem;
font-size: 1.5rem;
font-weight: 700;
color: var(--accent);
@ -44,6 +48,12 @@ body {
margin-bottom: 1rem;
}
.sidebar-logo img {
width: 36px;
height: 36px;
object-fit: contain;
}
.sidebar-nav { flex: 1; }
.nav-item {
@ -62,7 +72,7 @@ body {
}
.nav-item:hover { background: var(--bg-input); color: var(--text); }
.nav-item.active { color: var(--accent); background: rgba(34, 197, 94, 0.1); border-right: 3px solid var(--accent); }
.nav-item.active { color: var(--accent); background: rgba(232, 112, 58, 0.1); border-right: 3px solid var(--accent); }
.sidebar-footer {
padding: 1rem 1.5rem;
@ -175,10 +185,10 @@ tr:hover td { background: rgba(71, 85, 105, 0.15); }
font-weight: 600;
}
.badge-success { background: rgba(34, 197, 94, 0.2); color: var(--accent); }
.badge-danger { background: rgba(239, 68, 68, 0.2); color: var(--danger); }
.badge-warning { background: rgba(245, 158, 11, 0.2); color: var(--warning); }
.badge-info { background: rgba(59, 130, 246, 0.2); color: var(--info); }
.badge-success { background: rgba(232, 112, 58, 0.2); color: var(--accent); }
.badge-danger { background: rgba(232, 64, 64, 0.2); color: var(--danger); }
.badge-warning { background: rgba(242, 178, 51, 0.2); color: var(--warning); }
.badge-info { background: rgba(232, 112, 58, 0.15); color: var(--info); }
/* Forms */
.form-group { margin-bottom: 1rem; }
@ -242,8 +252,8 @@ textarea {
border-radius: 0.5rem;
}
.chat-msg.user { background: rgba(59, 130, 246, 0.1); }
.chat-msg.assistant { background: rgba(34, 197, 94, 0.1); }
.chat-msg.user { background: rgba(242, 178, 51, 0.1); }
.chat-msg.assistant { background: rgba(232, 112, 58, 0.1); }
.chat-msg-role {
font-size: 0.75rem;
@ -253,7 +263,7 @@ textarea {
color: var(--text-dim);
}
.chat-msg.user .chat-msg-role { color: var(--info); }
.chat-msg.user .chat-msg-role { color: var(--accent-gold); }
.chat-msg.assistant .chat-msg-role { color: var(--accent); }
.chat-msg-content {