From 3fcdb43bdb9b01ed280002604e5b66148010435c Mon Sep 17 00:00:00 2001 From: Mika Date: Sun, 15 Mar 2026 03:07:34 +0000 Subject: [PATCH] Add data_visualization/css/components.css --- data_visualization/css/components.css | 178 ++++++++++++++++++++++++++ 1 file changed, 178 insertions(+) create mode 100644 data_visualization/css/components.css diff --git a/data_visualization/css/components.css b/data_visualization/css/components.css new file mode 100644 index 0000000..3e64525 --- /dev/null +++ b/data_visualization/css/components.css @@ -0,0 +1,178 @@ +:root { + --primary-color: #22577a; + --accent-color: #38a3a5; + --background-color: #f7f9fa; + --text-color: #222; + --border-radius: 0.5rem; + --spacing-sm: 0.5rem; + --spacing-md: 1rem; + --spacing-lg: 2rem; + --font-base: 'Arial', sans-serif; + --font-size-base: 1rem; + --font-size-sm: 0.9rem; + --font-size-lg: 1.2rem; + --transition-fast: 0.3s ease; +} + +/* ===================== + Chart Panel + ===================== */ +.chart-panel { + background: var(--background-color); + border: 1px solid #ccc; + border-radius: var(--border-radius); + padding: var(--spacing-md); + margin-bottom: var(--spacing-lg); + display: flex; + flex-direction: column; + align-items: stretch; + justify-content: center; + box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); +} + +.chart-panel canvas { + width: 100%; + height: auto; +} + +/* ===================== + Gallery Panel + ===================== */ +.gallery-panel { + display: grid; + grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); + gap: var(--spacing-md); + padding: var(--spacing-md); + background: var(--background-color); + border-radius: var(--border-radius); +} + +.gallery-item { + position: relative; + overflow: hidden; + border-radius: var(--border-radius); + cursor: pointer; + transition: transform var(--transition-fast), box-shadow var(--transition-fast); +} + +.gallery-item img { + width: 100%; + height: 100%; + object-fit: cover; + display: block; +} + +.gallery-item:hover { + transform: scale(1.03); + box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2); +} + +/* ===================== + Filter Bar + ===================== */ +.filter-bar { + display: flex; + flex-wrap: wrap; + align-items: center; + gap: var(--spacing-sm); + padding: var(--spacing-md); + background-color: #eef2f3; + border-radius: var(--border-radius); + margin-bottom: var(--spacing-lg); +} + +.filter-bar .controls { + display: flex; + gap: var(--spacing-sm); + flex-wrap: wrap; +} + +.filter-bar input[type="text"], +.filter-bar input[type="number"], +.filter-bar select { + padding: var(--spacing-sm) var(--spacing-md); + border: 1px solid #ccc; + border-radius: var(--border-radius); + font-size: var(--font-size-sm); +} + +.filter-bar button { + padding: var(--spacing-sm) var(--spacing-md); + background-color: var(--accent-color); + border: none; + border-radius: var(--border-radius); + color: #fff; + cursor: pointer; + transition: background-color var(--transition-fast); +} + +.filter-bar button:hover { + background-color: var(--primary-color); +} + +/* ===================== + Stats Summary + ===================== */ +.stats-summary { + background-color: #fff; + border-radius: var(--border-radius); + padding: var(--spacing-md); + display: flex; + justify-content: space-around; + align-items: center; + flex-wrap: wrap; + gap: var(--spacing-lg); + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1); +} + +.stats-summary__item { + text-align: center; +} + +.stats-summary__value { + font-size: var(--font-size-lg); + color: var(--accent-color); + font-weight: bold; +} + +.stats-summary__label { + font-size: var(--font-size-sm); + color: var(--text-color); +} + +/* ===================== + Responsive Adjustments + ===================== */ +@media (min-width: 640px) { + .gallery-panel { + grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); + } +} + +@media (min-width: 1024px) { + .chart-panel { + padding: var(--spacing-lg); + } + .gallery-panel { + grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); + } + .stats-summary__value { + font-size: 1.5rem; + } +} + +/* ===================== + Footer (Copyright) + ===================== */ +footer { + text-align: center; + font-size: var(--font-size-sm); + color: #555; + padding: var(--spacing-md); +} + +footer::after { + content: "© 2026 Donau2Space.de"; + display: block; + margin-top: var(--spacing-sm); +} \ No newline at end of file