diff --git a/Onyx/OnyxApp.swift b/Onyx/OnyxApp.swift index fe8d009..0570660 100644 --- a/Onyx/OnyxApp.swift +++ b/Onyx/OnyxApp.swift @@ -174,9 +174,19 @@ final class AppDelegate: NSObject, NSApplicationDelegate { /// /// Geladen wird dieselbe SVG-Datei, aus der auch das App-Icon gebaut wird — /// NSImage liest sie als Vektor (`_NSSVGImageRep`), sie skaliert also - /// verlustfrei. Bewusst **kein** Template-Bild: als Schablone bliebe vom - /// Kristall eine schwarze Silhouette. Der Preis ist, dass er sich nicht - /// automatisch an helle und dunkle Menüleisten anpasst. + /// verlustfrei. + /// + /// **Als Template-Bild.** Das Glyph besteht aus zehn deckenden Pfaden in + /// sehr dunklen Tönen (#1c1f1f bis #000000). Im App-Icon liegt es auf + /// blauem Verlauf und liest sich als Kristall; allein auf einer dunklen + /// Menüleiste ist es schwarz auf schwarz. macOS färbt ausschließlich + /// Template-Bilder ein, und die benutzen nur den Alphakanal — die Facetten + /// verschmelzen dabei zu einer Silhouette. + /// + /// Das ist der bewusste Tausch: erkennbare Form in hellen wie dunklen + /// Menüleisten statt Facetten, die man in keiner von beiden sieht. Eine + /// Fassung mit durchsichtigen Facettenfugen behielte beides — dafür müsste + /// das SVG entsprechend gezeichnet sein. /// /// 18 pt ist die übliche Höhe; die Leiste ist 22 pt hoch und braucht oben /// und unten Luft. @@ -189,14 +199,17 @@ final class AppDelegate: NSObject, NSApplicationDelegate { glyph.draw(in: rect, from: .zero, operation: .sourceOver, fraction: 1) return true } + image.isTemplate = true image.accessibilityDescription = "Onyx" return image } // Ein Menüleisteneintrag ohne Bild wäre unsichtbar und die App darüber // unerreichbar — deshalb ein Rückfall statt eines leeren Knopfs. - return NSImage(systemSymbolName: "circle.hexagongrid.fill", - accessibilityDescription: "Onyx") ?? NSImage() + let fallback = NSImage(systemSymbolName: "circle.hexagongrid.fill", + accessibilityDescription: "Onyx") ?? NSImage() + fallback.isTemplate = true + return fallback } private func observeMenuBarPreference() {