Akku wird gezeichnet wie der von macOS
Der Blitz stand neben dem Akku statt darin, und das sah nach zwei Dingen aus statt nach einem. Mit SF Symbols ging es nicht anders: fünf feste Füllstufen, und Blitz-Varianten gibt es nur bei hundert Prozent. Also selbst gezeichnet — ein Rahmen, ein Knubbel, eine Füllung, ein Blitz. Das ist am Ende die kleinere Lösung als die Symbolakrobatik und gibt obendrein, was vorher fehlte: die Füllung läuft stufenlos, 60 % sieht aus wie 60 % und nicht wie 50 %. Der Blitz wird ausgestanzt, nicht daraufgelegt. `destinationOut` nimmt weg, was vorher gezeichnet wurde; übrig bleibt ein Loch in Blitzform, durch das die Menüleiste scheint. Das funktioniert auf hellem wie dunklem Grund, ohne die Hintergrundfarbe zu kennen — und genau so sieht der von macOS aus. Unter zwanzig Prozent wird die Füllung rot, beim Laden nie: eine Warnung vor etwas, das sich schon erledigt, ist keine. Dieselbe Form auch in der Akku-Kachel. Zwei verschiedene Akkus in einer App wären schlechter als gar keiner. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -339,18 +339,15 @@ private struct BatteryTile: View {
|
||||
HStack(alignment: .firstTextBaseline, spacing: 7) {
|
||||
// Das Symbol folgt dem Ladestand — sonst zeigt es bei 5 %
|
||||
// dasselbe wie bei 95 % und trägt nichts bei.
|
||||
Image(systemName: battery.map { BatterySymbol.name(charge: $0.charge) }
|
||||
?? BatterySymbol.unavailable)
|
||||
.font(.system(size: 13))
|
||||
.foregroundStyle(tint(battery))
|
||||
.overlay(alignment: .topTrailing) {
|
||||
if battery?.isCharging == true {
|
||||
Image(systemName: BatterySymbol.chargingBolt)
|
||||
.font(.system(size: 7))
|
||||
.foregroundStyle(Onyx.Color.positive)
|
||||
.offset(x: 3, y: -3)
|
||||
}
|
||||
}
|
||||
if let battery {
|
||||
BatteryGlyphView(charge: battery.charge,
|
||||
isCharging: battery.isCharging, height: 15)
|
||||
.foregroundStyle(tint(battery))
|
||||
} else {
|
||||
Image(systemName: BatterySymbol.unavailable)
|
||||
.font(.system(size: 13))
|
||||
.foregroundStyle(Onyx.Color.textTertiary)
|
||||
}
|
||||
Text(MetricFormat.percent(battery?.charge ?? 0))
|
||||
.font(Onyx.Font.metric).monospacedDigit()
|
||||
.foregroundStyle(tint(battery))
|
||||
|
||||
Reference in New Issue
Block a user