From 08e462fee93f8af28a01cf9d74c88c9699c1187d Mon Sep 17 00:00:00 2001 From: enricobuehler Date: Mon, 10 Aug 2026 07:41:43 +0200 Subject: [PATCH] fix(apple): Graphite's selected settings tab was white on light grey MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The tab strip's selected pill is FILLED with the palette accent, and `ink.onAccent` — chosen by that accent's own luminance, and documented for "a filled pill's label" — has existed for exactly this since the palettes landed. The strip was using the plain foreground instead, which is white on every dark palette and therefore looked fine on all but one: Graphite's accent is a light grey (luma ≈ 0.80), so its selected tab read white on white. --- .../PunktfunkClient/Settings/GamepadSettingsView.swift | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/clients/apple/Sources/PunktfunkClient/Settings/GamepadSettingsView.swift b/clients/apple/Sources/PunktfunkClient/Settings/GamepadSettingsView.swift index 1d879a60..e6eb24d3 100644 --- a/clients/apple/Sources/PunktfunkClient/Settings/GamepadSettingsView.swift +++ b/clients/apple/Sources/PunktfunkClient/Settings/GamepadSettingsView.swift @@ -253,7 +253,12 @@ struct GamepadSettingsView: View { let selected = t == tab return Text(t.rawValue) .font(.geist(compact ? 12 : 13, .semibold, relativeTo: .footnote)) - .foregroundStyle(selected ? ink.fg : ink.fg(0.55)) + // `onAccent`, not `fg` — the selected pill is FILLED with the palette accent, and + // `onAccent` is the colour picked (by the accent's own luminance) to read on top of + // it; its doc calls out "a filled pill's label" for exactly this surface. Using the + // foreground meant white-on-white wherever a palette's accent is pale: Graphite's is + // a light grey (luma ≈ 0.80), so its selected tab was unreadable. + .foregroundStyle(selected ? ink.onAccent : ink.fg(0.55)) .padding(.horizontal, 13) .padding(.vertical, 7) .background {