Add dark mode support with appearance picker and fix hardcoded colors

Add user-facing appearance setting (System/Light/Dark) wired via
preferredColorScheme at the app root. Replace hardcoded .black tints
and foreground styles with .primary so toolbar buttons and text remain
visible in dark mode. Remove profile picture from settings and
SwiftSoup from acknowledgements.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
2026-02-15 06:31:14 +01:00
parent c38d4075be
commit 02118e3d7a
12 changed files with 177 additions and 53 deletions

View File

@@ -694,6 +694,7 @@
}
},
"An HTML parsing and web scraping library for Swift. Used for importing schema.org recipes from websites." : {
"extractionState" : "stale",
"localizations" : {
"de" : {
"stringUnit" : {
@@ -782,6 +783,28 @@
}
}
},
"Appearance" : {
"localizations" : {
"de" : {
"stringUnit" : {
"state" : "translated",
"value" : "Erscheinungsbild"
}
},
"es" : {
"stringUnit" : {
"state" : "translated",
"value" : "Apariencia"
}
},
"fr" : {
"stringUnit" : {
"state" : "translated",
"value" : "Apparence"
}
}
}
},
"Apple Reminders" : {
"localizations" : {
"de" : {
@@ -995,6 +1018,28 @@
}
}
},
"Choose whether the app follows the system appearance or always uses light or dark mode." : {
"localizations" : {
"de" : {
"stringUnit" : {
"state" : "translated",
"value" : "Wähle, ob die App dem Erscheinungsbild des Systems folgt oder immer den hellen oder dunklen Modus verwendet."
}
},
"es" : {
"stringUnit" : {
"state" : "translated",
"value" : "Elige si la app sigue la apariencia del sistema o siempre usa el modo claro u oscuro."
}
},
"fr" : {
"stringUnit" : {
"state" : "translated",
"value" : "Choisissez si l'app suit l'apparence du système ou utilise toujours le mode clair ou sombre."
}
}
}
},
"Clear" : {
"localizations" : {
"de" : {
@@ -1293,6 +1338,28 @@
}
}
},
"Dark" : {
"localizations" : {
"de" : {
"stringUnit" : {
"state" : "translated",
"value" : "Dunkel"
}
},
"es" : {
"stringUnit" : {
"state" : "translated",
"value" : "Oscuro"
}
},
"fr" : {
"stringUnit" : {
"state" : "translated",
"value" : "Sombre"
}
}
}
},
"Decimal number format" : {
"localizations" : {
"de" : {
@@ -2536,6 +2603,28 @@
}
}
},
"Light" : {
"localizations" : {
"de" : {
"stringUnit" : {
"state" : "translated",
"value" : "Hell"
}
},
"es" : {
"stringUnit" : {
"state" : "translated",
"value" : "Claro"
}
},
"fr" : {
"stringUnit" : {
"state" : "translated",
"value" : "Clair"
}
}
}
},
"List your tools here. 🍴" : {
"extractionState" : "stale",
"localizations" : {
@@ -4460,6 +4549,7 @@
}
},
"SwiftSoup" : {
"extractionState" : "stale",
"localizations" : {
"de" : {
"stringUnit" : {
@@ -4483,6 +4573,28 @@
},
"Sync grocery list across devices" : {
},
"System" : {
"localizations" : {
"de" : {
"stringUnit" : {
"state" : "translated",
"value" : "System"
}
},
"es" : {
"stringUnit" : {
"state" : "translated",
"value" : "Sistema"
}
},
"fr" : {
"stringUnit" : {
"state" : "translated",
"value" : "Système"
}
}
}
},
"Thank you for downloading" : {
"localizations" : {
@@ -5170,6 +5282,7 @@
}
},
"Username: %@" : {
"extractionState" : "stale",
"localizations" : {
"de" : {
"stringUnit" : {