# 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 8–11 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