From d2b8cf9356f309adc0976fbc7030f9d7b84a4abc Mon Sep 17 00:00:00 2001 From: Mika Date: Mon, 23 Mar 2026 11:13:25 +0000 Subject: [PATCH] Add data_visualization/css/layout.css --- data_visualization/css/layout.css | 129 ++++++++++++++++++++++++++++++ 1 file changed, 129 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..0c97209 --- /dev/null +++ b/data_visualization/css/layout.css @@ -0,0 +1,129 @@ +:root { + --primary-color: #2b5fab; + --background-light: #f6f7f9; + --text-color: #222; + --text-muted: #666; + --spacing-sm: 0.5rem; + --spacing-md: 1rem; + --spacing-lg: 2rem; + --border-radius: 4px; + --font-base: 16px; + --transition-fast: 0.2s ease-in-out; +} + +body { + margin: 0; + font-family: system-ui, -apple-system, Segoe UI, Roboto, sans-serif; + background-color: var(--background-light); + color: var(--text-color); + font-size: var(--font-base); +} + +/* ================================ */ +/* Filter and Chart Layout */ +/* ================================ */ + +.filter-panel { + display: flex; + flex-wrap: wrap; + gap: var(--spacing-sm); + align-items: center; + padding: var(--spacing-md); + background-color: #fff; + border-radius: var(--border-radius); + box-shadow: 0 1px 3px rgba(0,0,0,0.1); + margin-bottom: var(--spacing-md); +} + +.chart-panel { + background-color: #fff; + border-radius: var(--border-radius); + box-shadow: 0 1px 3px rgba(0,0,0,0.1); + padding: var(--spacing-lg); + display: flex; + flex-direction: column; + min-height: 300px; + transition: box-shadow var(--transition-fast); +} + +.chart-panel:hover { + box-shadow: 0 2px 6px rgba(0,0,0,0.15); +} + +@media (min-width: 768px) { + .layout-container { + display: grid; + grid-template-columns: 300px 1fr; + gap: var(--spacing-md); + } + .filter-panel { + flex-direction: column; + } +} + +/* ================================ */ +/* Summary Metrics */ +/* ================================ */ + +.summary-metrics { + display: flex; + flex-wrap: wrap; + justify-content: space-around; + background-color: #fff; + border-radius: var(--border-radius); + padding: var(--spacing-md); + box-shadow: 0 1px 3px rgba(0,0,0,0.1); + margin-bottom: var(--spacing-md); +} + +.summary-metrics__item { + text-align: center; + margin: var(--spacing-sm); +} + +.summary-metrics__label { + display: block; + color: var(--text-muted); + font-size: 0.875rem; + margin-bottom: var(--spacing-sm); +} + +.summary-metrics__value { + font-size: 1.5rem; + font-weight: bold; + color: var(--primary-color); +} + +@media (min-width: 1024px) { + .summary-metrics__value { + font-size: 2rem; + } +} + +/* ================================ */ +/* Accessibility Enhancements */ +/* ================================ */ + +.filter-panel button:focus, +.chart-panel button:focus, +.summary-metrics__item:focus-within { + outline: 2px solid var(--primary-color); + outline-offset: 2px; +} + +/* ================================ */ +/* Footer */ +/* ================================ */ + +footer { + text-align: center; + font-size: 0.875rem; + color: var(--text-muted); + padding: var(--spacing-md); +} + +footer::after { + content: "© 2026 Donau2Space.de"; + display: block; + margin-top: var(--spacing-sm); +} \ No newline at end of file