bollwerk/Anforderungen/design/requirements.md
Jens Reinemann a5f89e6a69 rename: Krisenvorrat -> Bollwerk
- Package: de.krisenvorrat.* -> de.bollwerk.*
- Klassen: KrisenvorratApp/Database/Theme -> Bollwerk*
- ApplicationId: de.bollwerk.app
- Server: BOLLWERK_* Env-Vars, bollwerk HOCON-Config
- Docker: bollwerk-server/db/backup Container-Namen
- Room DB: bollwerk.db, SharedPrefs: bollwerk_secure_prefs
- Export-Dateien: bollwerk_export/inventar
- UI-Strings, HTML, Admin-UI: alle auf Bollwerk
- Docs, Skills, README angepasst
- Alle Tests gruen, Build erfolgreich
2026-05-17 17:44:02 +02:00

117 lines
3.7 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Technology Requirements UI/Design-Entscheidungen
Date: 2026-05-13
Issue: #3
Author: Tech-Decision Workflow
---
## Kontext
Vor der Implementierung der ersten UI-Screens müssen vier visuelle Designentscheidungen getroffen werden, die direkt in die Compose-Theme-Datei einfließen. Die App ist eine native Android-App (Kotlin + Jetpack Compose + Material 3).
Übergeordnetes Design-Ziel laut Anforderungen (anforderungen-v1.md, Abschnitt 6):
- **Stil:** Klar, funktional, industriell
- **UI-Framework:** Material 3 Komponenten
- **Farbschema:** Dark Theme, Dunkelgrün / Anthrazit "Bollwerk-Ästhetik", gut lesbar
---
## Entscheidung A Konkrete Farbwerte (Seed Color für Dark Theme)
### Must-Have (Eliminatoren)
- Dark Theme als primäres Theme (nicht optional)
- Farbe vermittelt Seriosität und Funktionalität (kein grelles Grün, kein Hellblau)
- Kontrastverhältnis ≥ 4.5:1 auf dunklen Hintergründen (WCAG AA)
- Material 3 kompatibel (Seed-Color-basiertes Color Scheme)
### Should-Have
- "Waldgrün / Olivgrün / Militärgrün"-Anmutung (passt zum Thema Bollwerk)
- Anthrazit-Töne für Oberflächen (nicht reines Schwarz, nicht Hellgrau)
- Erkennbarer visueller Charakter App soll eigenständig aussehen
### Nice-to-Have
- Leichte grüne Tönung der neutralen Flächen (M3 erzeugt das automatisch aus dem Seed)
- Guter Look auch im Light Theme (falls später aktiviert)
### Constraints
- Platform: Android, Jetpack Compose, Material 3
- Tooling: Material Theme Builder (https://m3.material.io/theme-builder)
- Keine externen Design-Bibliotheken nur Compose-eigene Theme-Mechanismen
---
## Entscheidung B Material 3 Dynamic Color (Wallpaper-basiert) oder feste Palette?
### Must-Have
- Theme muss zuverlässig auf Android 8+ funktionieren (Projekt-minSdk ist noch nicht festgelegt, aber breite Kompatibilität erwünscht)
- Grün/Anthrazit-Ästhetik muss erkennbar bleiben nicht durch Wallpaper überschrieben
### Should-Have
- Kein Mehraufwand in der Wartung / Pflege
### Nice-to-Have
- Optionales Dynamic Color auf Android 12+ als "Bonus"
### Constraints
- Dynamic Color (Monet) erfordert API 31 (Android 12+) schließt Android 811 aus, wenn nicht separat gehandhabt
---
## Entscheidung C Typography-Stil
### Must-Have
- Exzellente Lesbarkeit auf kleinen Smartphone-Displays
- Gut geeignet für zahlenreiche Daten (Lagermengen, Preise, Datumsangaben)
- Material 3 TypeScale kompatibel (Display / Headline / Title / Body / Label)
### Should-Have
- Klare, sachliche Anmutung (nicht verspielt oder gerundet)
- Kein separates Google-Fonts-Netzwerkaufruf beim ersten Start (oder Fallback)
### Nice-to-Have
- Leichte typografische Eigenständigkeit gegenüber Standard-Android-Apps
- Variable-Font-Unterstützung (Roboto Flex o.ä.)
### Constraints
- Jetpack Compose / Material 3 TypeScale
- Kein unnötiger APK-Overhead durch komplexe Schriftarten
- Offline-First (Font darf nicht ausschließlich per Netzwerk geladen werden)
---
## Entscheidung D Icon-Set
### Must-Have
- Native Jetpack Compose Integration (kein SVG-Wrapping-Overhead)
- Alle benötigten Icons vorhanden: Inventar (Kiste/Box), Kategorie, Lagerort, Warnung, Ablaufdatum, Bearbeiten, Löschen, Import, Export, Einstellungen, Suche, Navigation
- Frei / Open Source (kein kommerzielles Lizenz-Risiko)
### Should-Have
- Konsistent mit Material 3 visueller Sprache
- Breite Icon-Auswahl (>500 Icons) für spätere Erweiterungen
### Nice-to-Have
- Mehrere Icon-Styles (Outlined, Filled, Rounded) für Variationsmöglichkeit
- Minimalistische, "industrielle" Icon-Ästhetik
### Constraints
- APK-Größe: bei Sideloading kein hartes Limit, aber ProGuard sollte unbenutzte Icons entfernen können
- Keine Abhängigkeit von externer Netzwerkressource zur Laufzeit