From 3c7ef342606c125ca884ce07477312eca722b215 Mon Sep 17 00:00:00 2001 From: Mika Date: Sun, 26 Apr 2026 02:07:48 +0000 Subject: [PATCH] Add data_visualization/css/layout.css --- data_visualization/css/layout.css | 117 ++++++++++++++++++++++++++++++ 1 file changed, 117 insertions(+) create mode 100644 data_visualization/css/layout.css diff --git a/data_visualization/css/layout.css b/data_visualization/css/layout.css new file mode 100644 index 0000000..be6dfe1 --- /dev/null +++ b/data_visualization/css/layout.css @@ -0,0 +1,117 @@ +:root { + --color-bg: #0a0a0a; + --color-surface: #1c1c1c; + --color-accent: #3ac0ff; + --color-text: #e0e0e0; + --color-text-muted: #a0a0a0; + --spacing-xs: 0.25rem; + --spacing-sm: 0.5rem; + --spacing-md: 1rem; + --spacing-lg: 2rem; + --radius-sm: 4px; + --radius-md: 8px; + --font-base: system-ui, sans-serif; + --font-size-base: 1rem; + --font-size-sm: 0.875rem; + --layout-header-height: 3.5rem; + --layout-footer-height: 2.5rem; +} + +/* ===================== App Layout ===================== */ +.app-shell { + display: grid; + grid-template-rows: var(--layout-header-height) 1fr var(--layout-footer-height); + height: 100vh; + background-color: var(--color-bg); + color: var(--color-text); + font-family: var(--font-base); + overflow: hidden; +} + +.app-header { + display: flex; + align-items: center; + justify-content: space-between; + padding: 0 var(--spacing-md); + background-color: var(--color-surface); + border-bottom: 1px solid rgba(255, 255, 255, 0.1); +} + +.app-main { + display: grid; + grid-template-columns: 1fr 320px; + overflow: hidden; +} + +.app-footer { + display: flex; + align-items: center; + justify-content: center; + font-size: var(--font-size-sm); + background-color: var(--color-surface); + border-top: 1px solid rgba(255, 255, 255, 0.1); + color: var(--color-text-muted); +} + +/* ===================== Panels ===================== */ +.heatmap-panel { + position: relative; + background-color: #000; + overflow: hidden; +} + +.stats-panel { + background-color: var(--color-surface); + color: var(--color-text); + display: flex; + flex-direction: column; + overflow-y: auto; + padding: var(--spacing-md); + border-left: 1px solid rgba(255, 255, 255, 0.1); +} + +/* ===================== Sidebar ===================== */ +.sidebar { + display: flex; + flex-direction: column; + gap: var(--spacing-md); + overflow-y: auto; + padding: var(--spacing-md); +} + +.sidebar .sidebar__box { + background-color: rgba(255, 255, 255, 0.05); + padding: var(--spacing-md); + border-radius: var(--radius-md); +} + +.sidebar .sidebar__box + .sidebar__box { + margin-top: var(--spacing-sm); +} + +/* ===================== Responsive ===================== */ +@media (max-width: 768px) { + .app-main { + grid-template-columns: 1fr; + grid-template-rows: auto auto; + } + + .heatmap-panel { + order: 2; + height: 50vh; + } + + .stats-panel { + order: 1; + height: auto; + max-height: 50vh; + } +} + +/* ===================== Footer Copyright ===================== */ +.app-footer::after { + content: '© 2026 Donau2Space.de'; + margin-left: var(--spacing-sm); + color: var(--color-text-muted); + font-size: var(--font-size-sm); +}