Design: warme Palette aus dem Entwurf (Beige/Gold/Tinte) statt iOS-Blau

Korrektur zur Rueckmeldung des Nutzers: der Lesbarkeits-Einwand galt nur der
duennen Serifenschrift, nicht den Farben. Die warmen Design-Farben sind gut
lesbar und vereinheitlichen App + Website.

- theme.ts: Papier-Beige-Grund, warme Karten, Gold-Akzent (#B68235) fuer
  Icons/Tabs/Rahmen, dunkles Bronze (#7D5411, neu: primaerFuellung) als
  Fuellung gefuellter Buttons (weisse Schrift kontrastreich), warme
  Ampel-Toene (Backstein/Bronze/Salbei), warme Trennlinien/Graustufen
- GrossButton: Fuellung + Sekundaer-Text auf primaerFuellung (Kontrast)
- FAB-Scan-Knopf auf Bronze
- FristenScreen: ueberfaellige Zeilen zeigen 'faellig' statt 'Tage'

Im Simulator geprueft: Fristen-Start + Scan-Screen in warmen Farben, gut
lesbar. Typecheck + 30 Tests gruen.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-07-25 21:29:19 +02:00
parent ed627bc10e
commit 779261fbad
4 changed files with 31 additions and 27 deletions

View File

@@ -30,7 +30,8 @@ export function GrossButton({
}: Props) {
const istPrimaer = variante === 'primaer';
const istGefahr = variante === 'gefahr';
const inhaltsFarbe = istPrimaer || istGefahr ? farben.primaerText : farben.primaer;
// Sekundär: dunkles Bronze statt hellem Gold — auf grauer Fläche gut lesbar
const inhaltsFarbe = istPrimaer || istGefahr ? farben.primaerText : farben.primaerFuellung;
return (
<Pressable
onPress={onPress}
@@ -68,7 +69,7 @@ const styles = StyleSheet.create({
paddingVertical: abstand.s,
},
zeile: { flexDirection: 'row', alignItems: 'center', gap: abstand.xs + 2 },
primaer: { backgroundColor: farben.primaer },
primaer: { backgroundColor: farben.primaerFuellung },
sekundaer: { backgroundColor: farben.flaecheSekundaer },
gefahr: { backgroundColor: farben.fehler },
deaktiviert: { opacity: 0.4 },

View File

@@ -177,7 +177,7 @@ export function FristenScreen() {
<Text style={[styles.zahlKlein, { color: f.farbe }]}>
{f.frist!.tage < 0 ? '!' : f.frist!.tage}
</Text>
<Text style={styles.zahlBoxLabel}>Tage</Text>
<Text style={styles.zahlBoxLabel}>{f.frist!.tage < 0 ? 'fällig' : 'Tage'}</Text>
</View>
<View style={{ flex: 1, minWidth: 0 }}>
<Text style={styles.zeileTyp} numberOfLines={1}>{f.brief.analyse.brieftyp}</Text>

View File

@@ -5,31 +5,34 @@
* - Große Touch-Targets (min. 56px Höhe)
*/
export const farben = {
// Grundfarben — natives iOS-Vorbild: gruppierter System-Hintergrund,
// Inhalte als weiße Karten ohne Rahmen und Schatten (wie Einstellungen/Health)
hintergrund: '#F2F2F7',
flaeche: '#FFFFFF',
flaecheSekundaer: '#E9E9EB', // "graue Taste" nach Apple-Art (statt Umrandung)
primaer: '#007AFF', // Apple-System-Blau (Tint für Buttons, Icons, Links)
primaerText: '#FFFFFF',
text: '#1A202C',
textSekundaer: '#4A5568',
textTertiaer: '#AEAEB2', // z. B. Chevrons (iOS systemGray2)
rand: '#E2E2E7',
// Dezente Hervorhebung für DIE Kernaussage (leichter Blau-Tint)
hervorhebung: '#EAF3FF',
hervorhebungRand: '#D4E6FB',
// Warme, ruhige Palette nach dem Claude-Design-Entwurf ("Postklar/Classical")
// und passend zur Website: Papier-Beige, Gold-Akzent, dunkle Tinte.
// Gut lesbar (hoher Kontrast bei Fließtext), nur die Schrift bleibt
// die klare System-Schrift statt der dünnen Serifenschrift.
hintergrund: '#F1EFE9', // warmes Off-White (Grund)
flaeche: '#FBFAF6', // warme, fast weiße Karten
flaecheSekundaer: '#EAE7E0', // gedämpfte Fläche (graue Taste)
primaer: '#B68235', // Gold-Akzent (Icons, aktive Tabs, Rahmen, Punkte)
primaerFuellung: '#7D5411', // dunkles Bronze — Hintergrund gefüllter Buttons (weiße Schrift lesbar)
primaerText: '#FBF7EF', // warmes Weiß (Text auf gefüllten Buttons)
text: '#201F1D', // dunkle Tinte
textSekundaer: '#6B675E', // warmes Grau (wie --grau der Website)
textTertiaer: '#A8A29A', // helles warmes Grau (Chevrons)
rand: '#E2DED6', // warme Trennlinie
// Dezente Gold-Hervorhebung (z. B. aktive Filter-Chips)
hervorhebung: '#F7EFE0',
hervorhebungRand: '#E9D8BC',
// Dringlichkeits-Ampel: frische Signalfarben in Apples "zugänglichen"
// Varianten — kräftig, aber als Text auf Weiß noch gut lesbar (WCAG)
ampelRot: '#D70015',
ampelGelb: '#C25400',
ampelGruen: '#1E7E34',
ampelRotHintergrund: '#FFEAE8',
ampelGelbHintergrund: '#FFF1E0',
ampelGruenHintergrund: '#E7F6EB',
// Dringlichkeits-Ampel in den warmen Design-Tönen — als Text auf hellem
// Tint gut lesbar (WCAG): Backstein-Rot, Bronze-Gold, Salbei-Grün.
ampelRot: '#A23B2B',
ampelGelb: '#8A5E14',
ampelGruen: '#3F5A4C',
ampelRotHintergrund: '#F5E9E5',
ampelGelbHintergrund: '#F5EEDF',
ampelGruenHintergrund: '#E8EFEA',
fehler: '#D70015',
fehler: '#A23B2B',
};
export const schrift = {