diff --git a/max_outlier_visualization/css/base.css b/max_outlier_visualization/css/base.css new file mode 100644 index 0000000..7d61abc --- /dev/null +++ b/max_outlier_visualization/css/base.css @@ -0,0 +1,148 @@ +/* ====================================== + CSS Reset & Variables + ====================================== */ + +:root { + /* Color Palette */ + --color-bg: #f9fafb; + --color-surface: #ffffff; + --color-border: #d1d5db; + --color-text: #111827; + --color-accent: #2563eb; + --color-accent-hover: #1e40af; + + /* Spacing */ + --spacing-xs: 0.25rem; + --spacing-sm: 0.5rem; + --spacing-md: 1rem; + --spacing-lg: 2rem; + --spacing-xl: 4rem; + + /* Typography */ + --font-family-base: 'Segoe UI', Roboto, Helvetica, Arial, sans-serif; + --font-size-base: 16px; + --line-height-base: 1.5; + + /* Layout */ + --max-width-content: 1200px; + --transition-base: 0.2s ease-in-out; + + /* Breakpoints */ + --bp-sm: 640px; + --bp-md: 768px; + --bp-lg: 1024px; + --bp-xl: 1280px; +} + +/* Reset Styles */ +* { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +html, body { + width: 100%; + height: 100%; +} + +body { + font-family: var(--font-family-base); + font-size: var(--font-size-base); + line-height: var(--line-height-base); + background-color: var(--color-bg); + color: var(--color-text); + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +h1, h2, h3, h4, h5, h6 { + font-weight: 600; + line-height: 1.25; + color: var(--color-text); +} + +a { + color: var(--color-accent); + text-decoration: none; + transition: color var(--transition-base); +} + +a:hover, a:focus { + color: var(--color-accent-hover); +} + +ul, ol { + list-style: none; +} + +button { + background: none; + border: none; + cursor: pointer; + font: inherit; + color: inherit; +} + +/* ====================================== + Application Shell Layout + ====================================== */ + +.app-shell { + display: flex; + flex-direction: column; + min-height: 100vh; +} + +.app-header { + background-color: var(--color-surface); + border-bottom: 1px solid var(--color-border); + padding: var(--spacing-md); + text-align: center; +} + +.app-header h1 { + font-size: 1.5rem; + margin-bottom: var(--spacing-sm); +} + +main { + flex: 1; + max-width: var(--max-width-content); + margin: 0 auto; + padding: var(--spacing-lg) var(--spacing-md); + width: 100%; +} + +.app-footer { + background-color: var(--color-surface); + border-top: 1px solid var(--color-border); + text-align: center; + padding: var(--spacing-sm); + font-size: 0.875rem; +} + +.app-footer p { + color: var(--color-text); + opacity: 0.8; +} + +/* Responsive typography and spacing */ +@media (min-width: 640px) { + .app-header h1 { + font-size: 2rem; + } + main { + padding: var(--spacing-xl) var(--spacing-lg); + } +} + +/* Footer copyright */ +.app-footer::after { + content: "© 2026 Donau2Space.de"; + display: block; + margin-top: var(--spacing-xs); + font-size: 0.75rem; + color: var(--color-text); + opacity: 0.6; +} \ No newline at end of file