From 95bc3b193165f50ce0eb3d067dbf781cd344e92a Mon Sep 17 00:00:00 2001 From: Guido Schmit Date: Mon, 10 Aug 2026 21:13:18 +0200 Subject: [PATCH] =?UTF-8?q?Men=C3=BCleistensymbol=20als=20Template-Bild?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 war 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 muss das SVG entsprechend gezeichnet sein — als Outline statt als Flächen. --- Onyx/OnyxApp.swift | 23 ++++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) 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() {