Symbole folgen der Akzentfarbe, nicht der des Systems
SwiftUI zeichnet Symbole in Listen und Formularen auf macOS in der Akzentfarbe des Systems — nicht in der des Fensters. `.tint` an der Wurzel half deshalb nur der Reiterleiste; die Widget-Liste blieb systemgrün neben einer blauen Leiste, obwohl beides derselben Einstellung folgen soll. Ein eigener Label-Stil setzt die Farbe am Symbol. Er vererbt sich über die Umgebung, also genügt eine Zeile an denselben vier Wurzeln, an denen auch der Farbton gesetzt wird: Panel, Popovers, Einstellungen, Einrichtung. Ein Symbol, das seine Farbe selbst mitbringt, behält sie — die innere Angabe schlägt die äußere. Der grüne Haken für „erteilt" bringt sie jetzt am Symbol mit statt am ganzen Label: Grün heißt dort „erteilt" und ist keine Geschmacksfrage. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -231,9 +231,17 @@ private struct PermissionRow: View {
|
||||
Spacer()
|
||||
switch state {
|
||||
case .granted:
|
||||
Label("settings.permissions.granted", systemImage: "checkmark.circle.fill")
|
||||
.foregroundStyle(Onyx.Color.positive)
|
||||
.labelStyle(.titleAndIcon)
|
||||
// Die Farbe sitzt am Symbol, nicht am ganzen Label: der
|
||||
// Akzentstil färbt sonst darüber. Grün heißt hier „erteilt"
|
||||
// und ist keine Geschmacksfrage.
|
||||
Label {
|
||||
Text("settings.permissions.granted")
|
||||
} icon: {
|
||||
Image(systemName: "checkmark.circle.fill")
|
||||
.foregroundStyle(Onyx.Color.positive)
|
||||
}
|
||||
.foregroundStyle(Onyx.Color.positive)
|
||||
.labelStyle(.titleAndIcon)
|
||||
case .undetermined:
|
||||
Button("settings.permissions.request") { Task { await request() } }
|
||||
case .denied:
|
||||
|
||||
Reference in New Issue
Block a user