From ada3ab51f7d76d759bed654f30a01ad899f973e0 Mon Sep 17 00:00:00 2001 From: Mika Date: Wed, 18 Mar 2026 13:17:47 +0000 Subject: [PATCH] Add heatmap_visualization/css/components.css --- heatmap_visualization/css/components.css | 140 +++++++++++++++++++++++ 1 file changed, 140 insertions(+) create mode 100644 heatmap_visualization/css/components.css diff --git a/heatmap_visualization/css/components.css b/heatmap_visualization/css/components.css new file mode 100644 index 0000000..cfb7d53 --- /dev/null +++ b/heatmap_visualization/css/components.css @@ -0,0 +1,140 @@ +:root { + --primary: #1a73e8; + --secondary: #fbbc04; + --background: #ffffff; + --text-color: #222; + --grid-line: rgba(0, 0, 0, 0.1); + --tooltip-bg: rgba(0, 0, 0, 0.85); + --tooltip-text: #fff; + --legend-height: 12px; + --font-base: system-ui, sans-serif; + --spacing-sm: 0.5rem; + --spacing-md: 1rem; + --border-radius: 4px; + --transition-fast: 0.2s ease-in-out; +} + +/* ============================== + Heatmap Grid + ============================== */ +.heatmap-area { + display: grid; + grid-template-columns: repeat(auto-fill, minmax(8px, 1fr)); + gap: 1px; + background-color: var(--grid-line); + border: 1px solid var(--grid-line); + width: 100%; + height: auto; + aspect-ratio: 2 / 1; + position: relative; +} + +.heatmap-area div { + background: var(--secondary); + transition: background-color var(--transition-fast); +} + +.heatmap-area div:hover { + outline: 1px solid var(--primary); + cursor: pointer; +} + +/* ============================== + Heatmap Style + ============================== */ +.heatmap-style { + font-family: var(--font-base); + color: var(--text-color); + background: var(--background); + padding: var(--spacing-md); +} + +.heatmap-style .intensity-low { + background-color: #dceefb; +} + +.heatmap-style .intensity-medium { + background-color: #71c1f0; +} + +.heatmap-style .intensity-high { + background-color: #1a73e8; +} + +/* ============================== + Legend and Tooltip + ============================== */ +.heatmap-legend { + display: flex; + align-items: center; + justify-content: space-between; + margin-top: var(--spacing-md); + font-size: 0.875rem; +} + +.heatmap-legend__scale { + flex: 1; + height: var(--legend-height); + background: linear-gradient(to right, #dceefb, #71c1f0, #1a73e8); + border-radius: var(--border-radius); +} + +.heatmap-legend__labels { + display: flex; + justify-content: space-between; + width: 100%; + margin-top: var(--spacing-sm); + font-size: 0.75rem; +} + +.tooltip { + position: absolute; + background-color: var(--tooltip-bg); + color: var(--tooltip-text); + padding: var(--spacing-sm); + border-radius: var(--border-radius); + font-size: 0.75rem; + pointer-events: none; + opacity: 0; + transition: opacity var(--transition-fast); + z-index: 10; +} + +.tooltip[aria-hidden="false"] { + opacity: 1; +} + +/* ============================== + Responsive Adjustments + ============================== */ +@media (min-width: 640px) { + .heatmap-area { + grid-template-columns: repeat(auto-fill, minmax(10px, 1fr)); + } + .heatmap-legend { + font-size: 1rem; + } +} + +@media (min-width: 1024px) { + .heatmap-area { + grid-template-columns: repeat(auto-fill, minmax(12px, 1fr)); + } +} + +/* ============================== + Footer (falls vorhanden) + ============================== */ +footer { + text-align: center; + font-size: 0.75rem; + padding: var(--spacing-md); + color: var(--text-color); + border-top: 1px solid var(--grid-line); +} + +footer small { + display: block; + margin-top: var(--spacing-sm); + content: "© 2026 Donau2Space.de"; +} \ No newline at end of file