From 7d688a6480ff1863d99561192e6391ab3d538736 Mon Sep 17 00:00:00 2001 From: Mika Date: Sun, 5 Jul 2026 02:07:31 +0000 Subject: [PATCH] Add data_visualization/css/components.css --- data_visualization/css/components.css | 131 ++++++++++++++++++++++++++ 1 file changed, 131 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..7a28908 --- /dev/null +++ b/data_visualization/css/components.css @@ -0,0 +1,131 @@ +:root { + --color-bg: #f5f7fa; + --color-primary: #1c6dd0; + --color-secondary: #5e81ac; + --color-text: #1a1a1a; + --color-muted: #666; + --spacing-xs: 0.25rem; + --spacing-sm: 0.5rem; + --spacing-md: 1rem; + --spacing-lg: 2rem; + --radius-sm: 4px; + --radius-md: 8px; + --font-base: 'Segoe UI', sans-serif; + --max-width-content: 1200px; +} + +/* ======================== */ +/* Header and Toolbar */ +/* ======================== */ + +.app-header { + display: flex; + justify-content: space-between; + align-items: center; + background-color: var(--color-bg); + border-bottom: 1px solid #ddd; + padding: var(--spacing-md); + font-family: var(--font-base); +} + +.app-header h1 { + font-size: 1.25rem; + color: var(--color-primary); + margin: 0; +} + +.filter-controls { + display: flex; + align-items: center; + gap: var(--spacing-sm); +} + +.filter-controls label { + font-size: 0.9rem; + color: var(--color-text); +} + +.filter-controls select, +.filter-controls input[type="date"] { + border: 1px solid #ccc; + border-radius: var(--radius-sm); + padding: var(--spacing-xs) var(--spacing-sm); + background-color: #fff; + font-family: var(--font-base); +} + +/* ======================== */ +/* Dashboard and Charts */ +/* ======================== */ + +.app-main { + max-width: var(--max-width-content); + margin: 0 auto; + padding: var(--spacing-md); +} + +.dashboard { + display: grid; + grid-template-columns: 1fr; + gap: var(--spacing-lg); +} + +.chart-panel { + background-color: #fff; + border: 1px solid #e0e0e0; + border-radius: var(--radius-md); + box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05); + padding: var(--spacing-md); +} + +.chart-panel h2 { + font-size: 1rem; + color: var(--color-secondary); + margin-bottom: var(--spacing-sm); +} + +.temperature-chart, +.humidity-chart, +.light-chart { + width: 100%; + height: 240px; +} + +.chart-panel canvas { + width: 100% !important; + height: 100% !important; +} + +/* ======================== */ +/* Footer */ +/* ======================== */ + +.app-footer { + text-align: center; + font-size: 0.85rem; + color: var(--color-muted); + padding: var(--spacing-md); + border-top: 1px solid #ddd; + background-color: var(--color-bg); +} + +.app-footer small { + display: block; + margin-top: var(--spacing-xs); +} + +/* ======================== */ +/* Responsive Adjustments */ +/* ======================== */ + +@media (min-width: 640px) { + .dashboard { + grid-template-columns: repeat(2, 1fr); + } +} + +@media (min-width: 1024px) { + .dashboard { + grid-template-columns: repeat(3, 1fr); + } +}