Skip to content

Commit 66d2d9a

Browse files
committed
Merge pull request #112277 from passivestar/light-mode-icons
Fix icon colors in light color preset of modern theme
2 parents 60043b5 + 3b13bb1 commit 66d2d9a

File tree

3 files changed

+49
-45
lines changed

3 files changed

+49
-45
lines changed

editor/themes/editor_theme_manager.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,7 @@ class EditorThemeManager {
101101
int forced_even_separation = 0;
102102

103103
Color mono_color;
104-
Color mono_color_icon_and_font;
104+
Color mono_color_font;
105105
Color mono_color_inv;
106106
Color dark_color_1;
107107
Color dark_color_2;

editor/themes/theme_classic.cpp

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ void ThemeClassic::populate_shared_styles(const Ref<EditorTheme> &p_theme, Edito
5151

5252
// White (dark theme) or black (light theme), will be used to generate the rest of the colors
5353
p_config.mono_color = p_config.dark_theme ? Color(1, 1, 1) : Color(0, 0, 0);
54-
p_config.mono_color_icon_and_font = p_config.dark_icon_and_font ? Color(1, 1, 1) : Color(0, 0, 0);
54+
p_config.mono_color_font = p_config.dark_icon_and_font ? Color(1, 1, 1) : Color(0, 0, 0);
5555

5656
// Ensure base colors are in the 0..1 luminance range to avoid 8-bit integer overflow or text rendering issues.
5757
// Some places in the editor use 8-bit integer colors.
@@ -70,7 +70,7 @@ void ThemeClassic::populate_shared_styles(const Ref<EditorTheme> &p_theme, Edito
7070
p_config.error_color = Color(1, 0.47, 0.42);
7171
if (!p_config.dark_icon_and_font) {
7272
// Darken some colors to be readable on a light background.
73-
p_config.success_color = p_config.success_color.lerp(p_config.mono_color_icon_and_font, 0.35);
73+
p_config.success_color = p_config.success_color.lerp(p_config.mono_color_font, 0.35);
7474
p_config.warning_color = Color(0.82, 0.56, 0.1);
7575
p_config.error_color = Color(0.8, 0.22, 0.22);
7676
}
@@ -99,14 +99,14 @@ void ThemeClassic::populate_shared_styles(const Ref<EditorTheme> &p_theme, Edito
9999

100100
// Font colors.
101101

102-
p_config.font_color = p_config.mono_color_icon_and_font.lerp(p_config.base_color, 0.25);
103-
p_config.font_focus_color = p_config.mono_color_icon_and_font.lerp(p_config.base_color, 0.125);
104-
p_config.font_hover_color = p_config.mono_color_icon_and_font.lerp(p_config.base_color, 0.125);
102+
p_config.font_color = p_config.mono_color_font.lerp(p_config.base_color, 0.25);
103+
p_config.font_focus_color = p_config.mono_color_font.lerp(p_config.base_color, 0.125);
104+
p_config.font_hover_color = p_config.mono_color_font.lerp(p_config.base_color, 0.125);
105105
p_config.font_pressed_color = p_config.accent_color;
106106
p_config.font_hover_pressed_color = p_config.font_hover_color.lerp(p_config.accent_color, 0.74);
107-
p_config.font_disabled_color = Color(p_config.mono_color_icon_and_font.r, p_config.mono_color_icon_and_font.g, p_config.mono_color_icon_and_font.b, 0.35);
108-
p_config.font_readonly_color = Color(p_config.mono_color_icon_and_font.r, p_config.mono_color_icon_and_font.g, p_config.mono_color_icon_and_font.b, 0.65);
109-
p_config.font_placeholder_color = Color(p_config.mono_color_icon_and_font.r, p_config.mono_color_icon_and_font.g, p_config.mono_color_icon_and_font.b, 0.5);
107+
p_config.font_disabled_color = Color(p_config.mono_color_font.r, p_config.mono_color_font.g, p_config.mono_color_font.b, 0.35);
108+
p_config.font_readonly_color = Color(p_config.mono_color_font.r, p_config.mono_color_font.g, p_config.mono_color_font.b, 0.65);
109+
p_config.font_placeholder_color = Color(p_config.mono_color_font.r, p_config.mono_color_font.g, p_config.mono_color_font.b, 0.5);
110110
p_config.font_outline_color = Color(0, 0, 0, 0);
111111

112112
p_theme->set_color(SceneStringName(font_color), EditorStringName(Editor), p_config.font_color);
@@ -591,10 +591,10 @@ void ThemeClassic::populate_standard_styles(const Ref<EditorTheme> &p_theme, Edi
591591

592592
p_theme->set_color("custom_button_font_highlight", "Tree", p_config.font_hover_color);
593593
p_theme->set_color(SceneStringName(font_color), "Tree", p_config.font_color);
594-
p_theme->set_color("font_hovered_color", "Tree", p_config.mono_color_icon_and_font);
594+
p_theme->set_color("font_hovered_color", "Tree", p_config.mono_color_font);
595595
p_theme->set_color("font_hovered_dimmed_color", "Tree", p_config.font_color);
596-
p_theme->set_color("font_hovered_selected_color", "Tree", p_config.mono_color_icon_and_font);
597-
p_theme->set_color("font_selected_color", "Tree", p_config.mono_color_icon_and_font);
596+
p_theme->set_color("font_hovered_selected_color", "Tree", p_config.mono_color_font);
597+
p_theme->set_color("font_selected_color", "Tree", p_config.mono_color_font);
598598
p_theme->set_color("font_disabled_color", "Tree", p_config.font_disabled_color);
599599
p_theme->set_color("font_outline_color", "Tree", p_config.font_outline_color);
600600
p_theme->set_color("title_button_color", "Tree", p_config.font_color);
@@ -726,9 +726,9 @@ void ThemeClassic::populate_standard_styles(const Ref<EditorTheme> &p_theme, Edi
726726
p_theme->set_stylebox("hovered_selected", "ItemList", style_itemlist_hover_selected);
727727
p_theme->set_stylebox("hovered_selected_focus", "ItemList", style_itemlist_hover_selected);
728728
p_theme->set_color(SceneStringName(font_color), "ItemList", p_config.font_color);
729-
p_theme->set_color("font_hovered_color", "ItemList", p_config.mono_color_icon_and_font);
730-
p_theme->set_color("font_hovered_selected_color", "ItemList", p_config.mono_color_icon_and_font);
731-
p_theme->set_color("font_selected_color", "ItemList", p_config.mono_color_icon_and_font);
729+
p_theme->set_color("font_hovered_color", "ItemList", p_config.mono_color_font);
730+
p_theme->set_color("font_hovered_selected_color", "ItemList", p_config.mono_color_font);
731+
p_theme->set_color("font_selected_color", "ItemList", p_config.mono_color_font);
732732
p_theme->set_color("font_outline_color", "ItemList", p_config.font_outline_color);
733733
p_theme->set_color("guide_color", "ItemList", Color(1, 1, 1, 0));
734734
p_theme->set_constant("v_separation", "ItemList", p_config.forced_even_separation * EDSCALE);
@@ -880,7 +880,7 @@ void ThemeClassic::populate_standard_styles(const Ref<EditorTheme> &p_theme, Edi
880880
p_theme->set_icon("clear", "LineEdit", p_theme->get_icon(SNAME("GuiClose"), EditorStringName(EditorIcons)));
881881

882882
p_theme->set_color(SceneStringName(font_color), "LineEdit", p_config.font_color);
883-
p_theme->set_color("font_selected_color", "LineEdit", p_config.mono_color_icon_and_font);
883+
p_theme->set_color("font_selected_color", "LineEdit", p_config.mono_color_font);
884884
p_theme->set_color("font_uneditable_color", "LineEdit", p_config.font_readonly_color);
885885
p_theme->set_color("font_placeholder_color", "LineEdit", p_config.font_placeholder_color);
886886
p_theme->set_color("font_outline_color", "LineEdit", p_config.font_outline_color);
@@ -2135,7 +2135,7 @@ void ThemeClassic::populate_editor_styles(const Ref<EditorTheme> &p_theme, Edito
21352135
const Color kbd_color = p_config.font_color.lerp(Color(0.5, 0.5, 0.5), 0.5);
21362136

21372137
p_theme->set_color("title_color", "EditorHelp", p_config.accent_color);
2138-
p_theme->set_color("headline_color", "EditorHelp", p_config.mono_color_icon_and_font);
2138+
p_theme->set_color("headline_color", "EditorHelp", p_config.mono_color_font);
21392139
p_theme->set_color("text_color", "EditorHelp", p_config.font_color);
21402140
p_theme->set_color("comment_color", "EditorHelp", p_config.font_color * Color(1, 1, 1, 0.6));
21412141
p_theme->set_color("symbol_color", "EditorHelp", p_config.font_color * Color(1, 1, 1, 0.6));
@@ -2144,8 +2144,8 @@ void ThemeClassic::populate_editor_styles(const Ref<EditorTheme> &p_theme, Edito
21442144
p_theme->set_color("type_color", "EditorHelp", p_config.accent_color.lerp(p_config.font_color, 0.5));
21452145
p_theme->set_color("override_color", "EditorHelp", p_config.warning_color);
21462146
p_theme->set_color("selection_color", "EditorHelp", p_config.selection_color);
2147-
p_theme->set_color("link_color", "EditorHelp", p_config.accent_color.lerp(p_config.mono_color_icon_and_font, 0.8));
2148-
p_theme->set_color("code_color", "EditorHelp", p_config.accent_color.lerp(p_config.mono_color_icon_and_font, 0.6));
2147+
p_theme->set_color("link_color", "EditorHelp", p_config.accent_color.lerp(p_config.mono_color_font, 0.8));
2148+
p_theme->set_color("code_color", "EditorHelp", p_config.accent_color.lerp(p_config.mono_color_font, 0.6));
21492149
p_theme->set_color("kbd_color", "EditorHelp", p_config.accent_color.lerp(kbd_color, 0.6));
21502150
p_theme->set_color("code_bg_color", "EditorHelp", p_config.dark_color_3);
21512151
p_theme->set_color("kbd_bg_color", "EditorHelp", p_config.dark_color_1);

editor/themes/theme_modern.cpp

Lines changed: 30 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ void ThemeModern::populate_shared_styles(const Ref<EditorTheme> &p_theme, Editor
6161

6262
// White (dark theme) or black (light theme), will be used to generate the rest of the colors
6363
p_config.mono_color = p_config.dark_theme ? Color(1, 1, 1) : Color(0, 0, 0);
64-
p_config.mono_color_icon_and_font = p_config.dark_icon_and_font ? Color(1, 1, 1) : Color(0, 0, 0);
64+
p_config.mono_color_font = p_config.dark_icon_and_font ? Color(1, 1, 1) : Color(0, 0, 0);
6565
p_config.mono_color_inv = p_config.dark_theme ? Color(0, 0, 0) : Color(1, 1, 1);
6666

6767
// Ensure base colors are in the 0..1 luminance range to avoid 8-bit integer overflow or text rendering issues.
@@ -81,7 +81,7 @@ void ThemeModern::populate_shared_styles(const Ref<EditorTheme> &p_theme, Editor
8181
p_config.error_color = Color(1, 0.47, 0.42);
8282
if (!p_config.dark_icon_and_font) {
8383
// Darken some colors to be readable on a light background.
84-
p_config.success_color = p_config.success_color.lerp(p_config.mono_color_icon_and_font, 0.35);
84+
p_config.success_color = p_config.success_color.lerp(p_config.mono_color_font, 0.35);
8585
p_config.warning_color = Color(0.83, 0.49, 0.01);
8686
p_config.error_color = Color(0.8, 0.22, 0.22);
8787
}
@@ -110,14 +110,14 @@ void ThemeModern::populate_shared_styles(const Ref<EditorTheme> &p_theme, Editor
110110

111111
// Font colors.
112112

113-
p_config.font_color = p_config.mono_color_icon_and_font * Color(1, 1, 1, 0.7);
114-
p_config.font_secondary_color = p_config.mono_color_icon_and_font * Color(1, 1, 1, 0.45);
115-
p_config.font_focus_color = p_config.mono_color_icon_and_font;
116-
p_config.font_hover_color = p_config.mono_color_icon_and_font;
117-
p_config.font_pressed_color = p_config.mono_color_icon_and_font;
118-
p_config.font_hover_pressed_color = p_config.mono_color_icon_and_font;
119-
p_config.font_disabled_color = p_config.mono_color_icon_and_font * Color(1, 1, 1, p_config.dark_icon_and_font ? 0.35 : 0.5);
120-
p_config.font_readonly_color = Color(p_config.mono_color_icon_and_font.r, p_config.mono_color_icon_and_font.g, p_config.mono_color_icon_and_font.b, 0.65);
113+
p_config.font_color = p_config.mono_color_font * Color(1, 1, 1, 0.7);
114+
p_config.font_secondary_color = p_config.mono_color_font * Color(1, 1, 1, 0.45);
115+
p_config.font_focus_color = p_config.mono_color_font;
116+
p_config.font_hover_color = p_config.mono_color_font;
117+
p_config.font_pressed_color = p_config.mono_color_font;
118+
p_config.font_hover_pressed_color = p_config.mono_color_font;
119+
p_config.font_disabled_color = p_config.mono_color_font * Color(1, 1, 1, p_config.dark_icon_and_font ? 0.35 : 0.5);
120+
p_config.font_readonly_color = Color(p_config.mono_color_font.r, p_config.mono_color_font.g, p_config.mono_color_font.b, 0.65);
121121
p_config.font_placeholder_color = p_config.font_disabled_color;
122122
p_config.font_outline_color = Color(1, 1, 1, 0);
123123

@@ -139,12 +139,13 @@ void ThemeModern::populate_shared_styles(const Ref<EditorTheme> &p_theme, Editor
139139

140140
// Icon colors.
141141

142-
p_config.icon_normal_color = p_config.mono_color_icon_and_font * Color(1, 1, 1, 0.7);
143-
p_config.icon_secondary_color = p_config.mono_color_icon_and_font * Color(1, 1, 1, 0.45);
144-
p_config.icon_focus_color = p_config.mono_color_icon_and_font;
145-
p_config.icon_hover_color = p_config.mono_color_icon_and_font;
146-
p_config.icon_pressed_color = p_config.mono_color_icon_and_font;
147-
p_config.icon_disabled_color = p_config.mono_color_icon_and_font * Color(1, 1, 1, p_config.dark_icon_and_font ? 0.35 : 0.5);
142+
p_config.icon_normal_color = Color(1, 1, 1, p_config.dark_icon_and_font ? 0.7 : 0.95);
143+
p_config.icon_secondary_color = Color(1, 1, 1, p_config.dark_icon_and_font ? 0.45 : 0.6);
144+
p_config.icon_focus_color = Color(1, 1, 1);
145+
p_config.icon_hover_color = Color(1, 1, 1);
146+
p_config.icon_pressed_color = p_config.accent_color * (p_config.dark_icon_and_font ? 1.15 : 3.5);
147+
p_config.icon_pressed_color.a = 1.0;
148+
p_config.icon_disabled_color = Color(1, 1, 1, p_config.dark_icon_and_font ? 0.35 : 0.5);
148149

149150
p_theme->set_color("icon_normal_color", EditorStringName(Editor), p_config.icon_normal_color);
150151
p_theme->set_color("icon_focus_color", EditorStringName(Editor), p_config.icon_focus_color);
@@ -436,8 +437,8 @@ void ThemeModern::populate_standard_styles(const Ref<EditorTheme> &p_theme, Edit
436437
p_theme->set_color("icon_normal_color", "Button", p_config.icon_normal_color);
437438
p_theme->set_color("icon_hover_color", "Button", p_config.icon_hover_color);
438439
p_theme->set_color("icon_focus_color", "Button", p_config.icon_focus_color);
439-
p_theme->set_color("icon_hover_pressed_color", "Button", p_config.accent_color);
440-
p_theme->set_color("icon_pressed_color", "Button", p_config.accent_color);
440+
p_theme->set_color("icon_hover_pressed_color", "Button", p_config.icon_pressed_color);
441+
p_theme->set_color("icon_pressed_color", "Button", p_config.icon_pressed_color);
441442
p_theme->set_color("icon_disabled_color", "Button", p_config.icon_disabled_color);
442443

443444
p_theme->set_constant("h_separation", "Button", 4 * EDSCALE);
@@ -1745,11 +1746,14 @@ void ThemeModern::populate_editor_styles(const Ref<EditorTheme> &p_theme, Editor
17451746

17461747
p_theme->set_type_variation("EditorLogFilterButton", "Button");
17471748
// When pressed, don't tint the icons with the accent color, just leave them normal.
1748-
p_theme->set_color("icon_pressed_color", "EditorLogFilterButton", p_config.icon_pressed_color);
1749+
p_theme->set_color("icon_pressed_color", "EditorLogFilterButton", p_config.icon_normal_color);
17491750
// When unpressed, dim the icons.
1750-
p_theme->set_color("icon_normal_color", "EditorLogFilterButton", p_config.icon_disabled_color);
1751-
p_theme->set_color("icon_hover_color", "EditorLogFilterButton", p_config.icon_hover_color);
1752-
p_theme->set_color("icon_hover_pressed_color", "EditorLogFilterButton", p_config.icon_hover_color);
1751+
Color icon_normal_color = Color(p_config.icon_normal_color, (p_config.dark_icon_and_font ? 0.4 : 0.8));
1752+
p_theme->set_color("icon_normal_color", "EditorLogFilterButton", icon_normal_color);
1753+
Color icon_hover_color = p_config.icon_normal_color * (p_config.dark_icon_and_font ? 1.15 : 1.0);
1754+
icon_hover_color.a = 1.0;
1755+
p_theme->set_color("icon_hover_color", "EditorLogFilterButton", icon_hover_color);
1756+
p_theme->set_color("icon_hover_pressed_color", "EditorLogFilterButton", icon_hover_color);
17531757

17541758
// Hover and pressed styles are swapped for toggle buttons on purpose.
17551759
p_theme->set_stylebox(CoreStringName(normal), "EditorLogFilterButton", p_config.base_empty_style);
@@ -1921,7 +1925,7 @@ void ThemeModern::populate_editor_styles(const Ref<EditorTheme> &p_theme, Editor
19211925

19221926
p_theme->set_color("prop_subsection", EditorStringName(Editor), Color(1, 1, 1, 0));
19231927
#ifndef DISABLE_DEPRECATED // Used before 4.3.
1924-
p_theme->set_color("property_color", EditorStringName(Editor), p_config.dark_color_1.lerp(p_config.mono_color_icon_and_font, 0.12));
1928+
p_theme->set_color("property_color", EditorStringName(Editor), p_config.dark_color_1.lerp(p_config.mono_color_font, 0.12));
19251929
#endif
19261930

19271931
// EditorInspectorCategory.
@@ -2108,7 +2112,7 @@ void ThemeModern::populate_editor_styles(const Ref<EditorTheme> &p_theme, Editor
21082112
const Color kbd_color = p_config.font_color.lerp(Color(0.5, 0.5, 0.5), 0.5);
21092113

21102114
p_theme->set_color("title_color", "EditorHelp", p_config.accent_color);
2111-
p_theme->set_color("headline_color", "EditorHelp", p_config.mono_color_icon_and_font);
2115+
p_theme->set_color("headline_color", "EditorHelp", p_config.mono_color_font);
21122116
p_theme->set_color("text_color", "EditorHelp", p_config.font_color);
21132117
p_theme->set_color("comment_color", "EditorHelp", p_config.font_color * Color(1, 1, 1, 0.6));
21142118
p_theme->set_color("symbol_color", "EditorHelp", p_config.font_color * Color(1, 1, 1, 0.6));
@@ -2117,8 +2121,8 @@ void ThemeModern::populate_editor_styles(const Ref<EditorTheme> &p_theme, Editor
21172121
p_theme->set_color("type_color", "EditorHelp", p_config.accent_color.lerp(p_config.font_color, 0.5));
21182122
p_theme->set_color("override_color", "EditorHelp", p_config.warning_color);
21192123
p_theme->set_color("selection_color", "EditorHelp", p_config.selection_color);
2120-
p_theme->set_color("link_color", "EditorHelp", p_config.accent_color.lerp(p_config.mono_color_icon_and_font, 0.8));
2121-
p_theme->set_color("code_color", "EditorHelp", p_config.accent_color.lerp(p_config.mono_color_icon_and_font, 0.6));
2124+
p_theme->set_color("link_color", "EditorHelp", p_config.accent_color.lerp(p_config.mono_color_font, 0.8));
2125+
p_theme->set_color("code_color", "EditorHelp", p_config.accent_color.lerp(p_config.mono_color_font, 0.6));
21222126
p_theme->set_color("kbd_color", "EditorHelp", p_config.accent_color.lerp(kbd_color, 0.6));
21232127
p_theme->set_color("code_bg_color", "EditorHelp", p_config.dark_color_3);
21242128
p_theme->set_color("kbd_bg_color", "EditorHelp", p_config.dark_color_1);

0 commit comments

Comments
 (0)