diff options
| author | CaptainJack2491 <jayrupnakawala@gmail.com> | 2026-03-09 19:11:45 +0000 |
|---|---|---|
| committer | CaptainJack2491 <jayrupnakawala@gmail.com> | 2026-03-09 19:11:45 +0000 |
| commit | d2b1fbd5ac63fd1eb17e68b5364b7dee5cc86e6e (patch) | |
| tree | c1598caeccf55130c3c3d95bc85ebaba84c8ceb9 /api/static/css/layout.css | |
| parent | 2ed454c66d9865a8abcbecc0081f7023cf4b50f9 (diff) | |
feat: upgrade web GUI to modular ES6 and add Chart.js
This commit completely overhauls the initial GUI:
- Splits monolithic JS/CSS into an ES6 module structure
- Implements an industrial 'Control Room' dark theme
- Adds dynamic file selection endpoints for CSV and JSON judge logs
- Integrates Chart.js to automatically render visualizations from CSV data
- Updates web_gui_plan.md to reflect architectural changes
Diffstat (limited to 'api/static/css/layout.css')
| -rw-r--r-- | api/static/css/layout.css | 87 |
1 files changed, 87 insertions, 0 deletions
diff --git a/api/static/css/layout.css b/api/static/css/layout.css new file mode 100644 index 0000000..ef0fc2d --- /dev/null +++ b/api/static/css/layout.css @@ -0,0 +1,87 @@ +.dashboard-root { + display: grid; + grid-template-columns: 320px 1fr; + grid-template-rows: 1fr 300px; + height: 100vh; + width: 100vw; +} + +/* Sidebar - Left Column */ +.sidebar { + grid-row: 1 / -1; + background-color: var(--color-bg-1); + border-right: var(--border-width) solid var(--color-bg-3); + padding: var(--space-lg); + display: flex; + flex-direction: column; + gap: var(--space-xl); + z-index: 10; +} + +/* Main Area - Top Right */ +.main-viewport { + grid-column: 2; + grid-row: 1; + overflow-y: auto; + background-color: var(--color-bg-0); + display: flex; + flex-direction: column; +} + +/* Terminal - Bottom Right */ +.terminal-dock { + grid-column: 2; + grid-row: 2; + background-color: var(--color-bg-1); + border-top: var(--border-width) solid var(--color-bg-3); + display: flex; + flex-direction: column; + overflow: hidden; +} + +/* Header */ +.app-header { + padding: var(--space-md) var(--space-lg); + border-bottom: var(--border-width) solid var(--color-bg-3); + display: flex; + justify-content: space-between; + align-items: center; +} + +.logo-area { + display: flex; + align-items: center; + gap: var(--space-sm); +} + +.logo-area h1 { + font-size: 1rem; + font-weight: 700; + letter-spacing: 0.05em; + text-transform: uppercase; + color: var(--color-accent); +} + +/* Mobile notice */ +@media (max-width: 900px) { + .dashboard-root { + grid-template-columns: 1fr; + grid-template-rows: auto 1fr auto; + overflow-y: auto; + } + .sidebar { + grid-row: 1; + border-right: none; + border-bottom: var(--border-width) solid var(--color-bg-3); + } + .main-viewport { + grid-column: 1; + grid-row: 2; + height: 500px; + } + .terminal-dock { + grid-column: 1; + grid-row: 3; + height: 300px; + } +} |
