Vollständige Design-Grundlage für die Erbstücke-Wannsee-App: Farb-Token, Typografie, Kernkomponenten. Warm-pastell Palette (Salbei & Amber) für einen würdevollen, familiären Kontext. Kein Dark Mode. Nur Deutsch. WCAG 2.1 AA als Mindeststandard.
Alle Farben werden als CSS Custom Properties definiert und via Tailwind-Erweiterung (theme.extend.colors) als semantische Klassen verfügbar gemacht.
Kein Inline-Hex, keine Tailwind-Standard-Farben direkt im Markup.
| CSS Token | Wert | Tailwind-Klasse | Primärer Einsatz |
|---|---|---|---|
| --color-canvas | #F2EDE4 | bg-canvas | body background, Galerie-Hintergrund |
| --color-surface | #FFFFFF | bg-surface | Karten, Modals, Inputs, Admin-Content |
| --color-line | #E0D8CC | border-line | Alle Rahmen und Trennlinien |
| --color-primary | #5B7A66 | bg-primary · text-primary | Navigationsleiste, Primär-Buttons, aktive Filter-Pills |
| --color-primary-dark | #4A6855 | hover:bg-primary-dark | Hover-Zustand auf Primary-Elementen |
| --color-accent | #C4874A | bg-accent · text-accent | Admin-Sidebar aktiver Bereich, Thumbnail-Badge, sparsame Highlights |
| --color-ink | #1C2820 | text-ink | Fließtext, Seiten-Titel, Artikel-Titel im Modal |
| --color-ink-muted | #6B6050 | text-ink-muted | Kategorie-Labels, Platzhaltertext, Hinweise |
| --color-status-free | #4A7C5C | text-status-free | Statustext „✓ Frei", Badge-Text „✓ Meine Reservierung" |
| --color-status-taken | #9B6060 | text-status-taken | Statustext „● [Name]", Danger-Buttons, Fehlertexte |
| --color-admin-bg | #2A3B30 | bg-admin | Admin-Sidebar, Admin-Login-Seite-Hintergrund |
bg-canvas, text-primary etc. einsetzen
Status immer mit Icon + Text kommunizieren, nie Farbe allein
Accent (Amber) sparsam einsetzen — maximal 1–2 Elemente pro Screen
style="color:#5B7A66" im Markup
Tailwind-Standard-Farben wie text-green-600 für Status
Decorative-Farben (#C4874A, #A8D5B8) als Body-Text auf weißem Hintergrund
Zwei Schriftarten. Lora (Google Fonts, Serif) für alles Emotionale und Identitätsstiftende — App-Name, Artikel-Titel, Seiten-Überschriften.
Inter (Google Fonts, Sans) für alle UI-Elemente — Labels, Buttons, Statustext, Fließtext.
Minimale Font-Größe: 12 px. Body-Text: 16 px. Beide Schriften via <link> im <head> laden.
| Rolle | Font / Gewicht | Größe | Tailwind-Klassen |
|---|---|---|---|
| App-Name (Nav) | Lora 700 | 14px | font-serif text-sm font-bold text-white |
| Gate Screen Titel | Lora 700 | 20px | font-serif text-xl font-bold text-ink |
| Admin Seiten-Titel | Lora 700 | 16px | font-serif text-base font-bold text-ink |
| Artikel-Titel (Modal) | Lora 700 | 20px | font-serif text-xl font-bold text-ink leading-snug |
| Karten-Titel (Liste) | Lora 600 | 13px | font-serif text-[13px] font-semibold text-ink leading-snug |
| Notiz / kursiv | Lora 400 italic | 14px | font-serif text-sm italic text-ink-muted leading-relaxed |
| Body / Fließtext | Inter 400 | 16px | font-sans text-base leading-relaxed |
| Kategorie-Label | Inter 800 caps | 10px | font-sans text-[10px] font-extrabold uppercase tracking-wide text-ink-muted |
| Status-Text | Inter 700 | 11–12px | font-sans text-[11px] font-bold |
| Button-Text | Inter 700 | 13–14px | font-sans text-sm font-bold |
| Admin-Label / Meta | Inter 800 caps | 9px | font-sans text-[9px] font-extrabold uppercase tracking-widest text-ink-muted |
| Code-String | Mono System 600 | 16px | font-mono text-base font-semibold tracking-[4px] uppercase |
Alle wiederverwendbaren UI-Bausteine. Jeder interaktive Bereich hat mindestens 44 px Höhe (WCAG 2.2 Touch Target). Fokus-Ringe immer sichtbar via focus-visible.
focus-visible statt focus — kein Ring bei Mausklick.aria-label auf allen Icon-only Buttons
Status immer mit Zeichen (✓, ●) + Text kommunizieren
disabled-Attribut setzen, nicht nur visuell dämpfen
outline: none ohne Ersatz-Fokus-Ring
Farbe als einziger Status-Indikator (Color-Blindness)
Buttons unter 44px Höhe, besonders im Admin auf Mobilgeräten
Placeholder-Text als Label-Ersatz für Formularfelder
theme.extend.colors: canvas: 'var(--color-canvas)', primary: 'var(--color-primary)' usw.src/app.css unter :root definierenfontFamily: { serif: ['Lora', 'Georgia', 'serif'], sans: ['Inter', 'system-ui', 'sans-serif'] }<link> in src/app.html: Lora (400, 400i, 600, 700) + Inter (400, 500, 600, 700, 800)