Add data_visualization/css/layout.css

This commit is contained in:
Mika 2026-05-03 02:07:35 +00:00
parent a2802d7d36
commit a0132aa58d

View file

@ -0,0 +1,167 @@
:root {
--color-bg: #f9fafb;
--color-surface: #ffffff;
--color-border: #d1d5db;
--color-primary: #1e3a8a;
--color-text: #111827;
--spacing-xs: 0.25rem;
--spacing-sm: 0.5rem;
--spacing-md: 1rem;
--spacing-lg: 2rem;
--spacing-xl: 4rem;
--radius-sm: 0.25rem;
--radius-md: 0.5rem;
--radius-lg: 1rem;
--font-base: 'system-ui', sans-serif;
--font-size-base: 1rem;
--font-size-sm: 0.875rem;
--font-size-lg: 1.25rem;
--container-max-width: 1200px;
--breakpoint-md: 640px;
--breakpoint-lg: 1024px;
}
body {
margin: 0;
font-family: var(--font-base);
background-color: var(--color-bg);
color: var(--color-text);
line-height: 1.5;
}
/* =====================================
layout_shell
===================================== */
.app-shell {
display: flex;
flex-direction: column;
min-height: 100vh;
max-width: var(--container-max-width);
margin: 0 auto;
padding: var(--spacing-md);
box-sizing: border-box;
}
/* =====================================
filter_panel
===================================== */
.filter-panel {
display: flex;
flex-wrap: wrap;
gap: var(--spacing-sm);
justify-content: flex-start;
align-items: center;
background-color: var(--color-surface);
border: 1px solid var(--color-border);
border-radius: var(--radius-md);
padding: var(--spacing-md);
margin-bottom: var(--spacing-lg);
}
.filter-panel label {
font-size: var(--font-size-sm);
font-weight: 500;
margin-right: var(--spacing-xs);
}
.filter-panel select,
.filter-panel input {
padding: var(--spacing-xs) var(--spacing-sm);
border: 1px solid var(--color-border);
border-radius: var(--radius-sm);
font-size: var(--font-size-sm);
background-color: var(--color-surface);
}
/* =====================================
chart_container
===================================== */
.chart-container {
position: relative;
width: 100%;
background-color: var(--color-surface);
border: 1px solid var(--color-border);
border-radius: var(--radius-md);
padding: var(--spacing-md);
box-sizing: border-box;
margin-bottom: var(--spacing-lg);
}
.chart-container canvas {
width: 100%;
height: auto;
max-height: 400px;
}
/* =====================================
summary_cards
===================================== */
.summary-cards {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
gap: var(--spacing-md);
margin-bottom: var(--spacing-lg);
}
.summary-cards .card {
background-color: var(--color-surface);
border: 1px solid var(--color-border);
border-radius: var(--radius-md);
padding: var(--spacing-md);
text-align: center;
box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
}
.summary-cards .card__title {
font-size: var(--font-size-sm);
color: var(--color-primary);
margin-bottom: var(--spacing-xs);
}
.summary-cards .card__value {
font-size: var(--font-size-lg);
font-weight: bold;
}
/* =====================================
Responsiveness
===================================== */
@media (min-width: 640px) {
.filter-panel {
justify-content: space-between;
}
.chart-container canvas {
max-height: 500px;
}
}
@media (min-width: 1024px) {
.chart-container canvas {
max-height: 600px;
}
}
/* Footer */
footer {
text-align: center;
font-size: var(--font-size-sm);
color: var(--color-text);
margin-top: auto;
padding: var(--spacing-md);
border-top: 1px solid var(--color-border);
}
footer p {
margin: 0;
}
footer small {
font-size: var(--font-size-sm);
}
footer small::before {
content: '© 2026 Donau2Space.de';
display: block;
margin-bottom: var(--spacing-xs);
}