From 0913c6d73c96990c2399212b274ff2b1fd2dd838 Mon Sep 17 00:00:00 2001 From: Arkadiusz Fal Date: Sat, 22 Nov 2025 23:40:23 +0100 Subject: [PATCH] Fix tvOS controls overlay button text legibility Improved text contrast on overlay buttons by: - Applying foreground color directly to button labels to ensure proper override - Using semi-transparent gray background for unfocused buttons instead of Color.secondary - Removing accent color overrides from caption text to respect button styling This ensures readable text in both focused (black on white) and unfocused (white on gray) states. --- Shared/Player/Controls/ControlsOverlay.swift | 2 -- tvOS/ControlsOverlayButton.swift | 8 ++++---- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/Shared/Player/Controls/ControlsOverlay.swift b/Shared/Player/Controls/ControlsOverlay.swift index b5846fae..d24deb73 100644 --- a/Shared/Player/Controls/ControlsOverlay.swift +++ b/Shared/Player/Controls/ControlsOverlay.swift @@ -365,11 +365,9 @@ struct ControlsOverlay: View { let language = LanguageCodes(rawValue: captions.code) { Text("\(language.description.capitalized) (\(language.rawValue))") - .foregroundColor(.accentColor) } else { if player.currentVideo?.captions.isEmpty == false { Text("Disabled") - .foregroundColor(.accentColor) } else { Text("Not available") } diff --git a/tvOS/ControlsOverlayButton.swift b/tvOS/ControlsOverlayButton.swift index 3ce643bf..c107526f 100644 --- a/tvOS/ControlsOverlayButton.swift +++ b/tvOS/ControlsOverlayButton.swift @@ -24,6 +24,7 @@ struct ControlsOverlayButton: View { if let onSelect { Button(action: onSelect) { label + .foregroundColor(isFocused ? .black : .white) .padding() .frame(width: 400) } @@ -31,12 +32,12 @@ struct ControlsOverlayButton: View { .focused(focusedField, equals: field) } else { label + .foregroundColor(isFocused ? .black : .white) .padding() .frame(width: 400) .focusable() .focused(focusedField, equals: field) - .background(isFocused ? Color.white : Color.secondary) - .foregroundColor(isFocused ? Color.black : Color.white) + .background(isFocused ? Color.white : Color.gray.opacity(0.5)) .clipShape(RoundedRectangle(cornerRadius: 4)) } } @@ -47,8 +48,7 @@ struct TVButtonStyle: ButtonStyle { func makeBody(configuration: Configuration) -> some View { configuration.label - .background(isFocused ? Color.white : Color.secondary) - .foregroundColor(isFocused ? Color.black : Color.white) + .background(isFocused ? Color.white : Color.gray.opacity(0.5)) .clipShape(RoundedRectangle(cornerRadius: 4)) .scaleEffect(configuration.isPressed ? 0.95 : 1.0) }