From 85bf4d91ab4d3dd80f9b1b9b2eb7ea72ed57eede Mon Sep 17 00:00:00 2001 From: l0ng-ai <24760907+l0ng-ai@users.noreply.github.com> Date: Sat, 8 Aug 2026 10:42:25 +0700 Subject: [PATCH] fix(theme): write button labels and panel headings in the preset's ink MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit button_foreground and secondary_foreground both resolve from gpui-component's stock foreground, and apply_theme never overrode them — so a button's label and the detail panel's section headings were the only text in the window not written in the theme's own colour. On Rose Pine Dawn that is near-black next to the preset's #575279 everywhere else. --- src/ui/theme.rs | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/ui/theme.rs b/src/ui/theme.rs index 5bc1a1e2..bdc4ec78 100644 --- a/src/ui/theme.rs +++ b/src/ui/theme.rs @@ -305,6 +305,11 @@ pub(crate) fn apply_theme(mut window: Option<&mut Window>, cx: &mut App) { t.foreground = rgb(m.foreground).into(); t.border = rgb(m.border).into(); t.secondary = rgb(m.secondary).into(); + // Ink, not fill. gpui-component resolves both of these from its *stock* + // foreground, so a button's label and the detail panel's section headings + // were the only text in the window not written in the preset's own colour. + t.button_foreground = rgb(m.foreground).into(); + t.secondary_foreground = rgb(m.foreground).into(); t.muted = rgb(m.muted).into(); t.muted_foreground = rgb(m.muted_foreground).into(); t.popover = rgb(m.popover).into();