diff --git a/CHANGELOG.md b/CHANGELOG.md index 43526f81..a6ffeb72 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -54,6 +54,8 @@ FlatLaf Change Log "Xcode-Dark", "GitHub", and "Light Owl". (issue #528) - Fixed wrong disabled text colors in "Dark Flat", "Hiberbee Dark", "Light Flat", "Nord", "Solarized Dark" and "Solarized Light" themes. + - Fixed colors for selection background/foreground, Separator, Slider track + and ProgressBar background in various themes. - Native Windows libraries: Fixed crash when running in Java 8 and newer Java version is installed in `PATH` environment variable and using class `SystemInfo` before AWT initialization. (issue #673) diff --git a/flatlaf-core/src/main/java/com/formdev/flatlaf/IntelliJTheme.java b/flatlaf-core/src/main/java/com/formdev/flatlaf/IntelliJTheme.java index d087f861..58cf32af 100644 --- a/flatlaf-core/src/main/java/com/formdev/flatlaf/IntelliJTheme.java +++ b/flatlaf-core/src/main/java/com/formdev/flatlaf/IntelliJTheme.java @@ -200,7 +200,7 @@ public class IntelliJTheme defaults.put( "HelpButton.focusedBackground", defaults.get( "Button.focusedBackground" ) ); // IDEA uses TextField.background for editable ComboBox and Spinner - Object textFieldBackground = themeSpecificDefaults.getOrDefault( "TextField.background", defaults.get( "TextField.background" ) ); + Object textFieldBackground = get( defaults, themeSpecificDefaults, "TextField.background" ); defaults.put( "ComboBox.editableBackground", textFieldBackground ); defaults.put( "Spinner.background", textFieldBackground ); @@ -215,10 +215,23 @@ public class IntelliJTheme "EditorPane.background", "FormattedTextField.background", "PasswordField.background", - "Spinner.background", "TextArea.background", "TextPane.background" ); + putAll( defaults, get( defaults, themeSpecificDefaults, "TextField.selectionBackground" ), + "EditorPane.selectionBackground", + "FormattedTextField.selectionBackground", + "PasswordField.selectionBackground", + "TextArea.selectionBackground", + "TextPane.selectionBackground" + ); + putAll( defaults, get( defaults, themeSpecificDefaults, "TextField.selectionForeground" ), + "EditorPane.selectionForeground", + "FormattedTextField.selectionForeground", + "PasswordField.selectionForeground", + "TextArea.selectionForeground", + "TextPane.selectionForeground" + ); // fix disabled and not-editable backgrounds for text components, combobox and spinner // (IntelliJ IDEA does not use those colors; instead it used background color of parent) @@ -306,6 +319,10 @@ public class IntelliJTheme icons = null; } + private Object get( UIDefaults defaults, Map themeSpecificDefaults, String key ) { + return themeSpecificDefaults.getOrDefault( key, defaults.get( key ) ); + } + private void putAll( UIDefaults defaults, Object value, String... keys ) { for( String key : keys ) defaults.put( key, value ); diff --git a/flatlaf-core/src/main/resources/com/formdev/flatlaf/IntelliJTheme$ThemeLaf.properties b/flatlaf-core/src/main/resources/com/formdev/flatlaf/IntelliJTheme$ThemeLaf.properties index 81776cae..d2fc1b8e 100644 --- a/flatlaf-core/src/main/resources/com/formdev/flatlaf/IntelliJTheme$ThemeLaf.properties +++ b/flatlaf-core/src/main/resources/com/formdev/flatlaf/IntelliJTheme$ThemeLaf.properties @@ -138,13 +138,17 @@ ToggleButton.endBackground = $ToggleButton.background [Arc_Theme_Dark]RadioButtonMenuItem.foreground = lazy(MenuItem.foreground) [Arc_Theme_Dark]ProgressBar.selectionBackground = #ddd [Arc_Theme_Dark]ProgressBar.selectionForeground = #ddd +[Arc_Theme_Dark]ToolBar.separatorColor = lazy(Separator.foreground) [Arc_Theme_Dark_-_Orange]CheckBoxMenuItem.foreground = lazy(MenuItem.foreground) [Arc_Theme_Dark_-_Orange]PopupMenu.foreground = lazy(MenuItem.foreground) [Arc_Theme_Dark_-_Orange]RadioButtonMenuItem.foreground = lazy(MenuItem.foreground) [Arc_Theme_Dark_-_Orange]ProgressBar.selectionBackground = #ddd [Arc_Theme_Dark_-_Orange]ProgressBar.selectionForeground = #fff +[Arc_Theme_Dark_-_Orange]ToolBar.separatorColor = lazy(Separator.foreground) +[Carbon]Table.selectionBackground = lazy(List.selectionBackground) +[Carbon]Table.selectionInactiveForeground = lazy(List.selectionInactiveForeground) [Carbon]TextField.background = @ijTextBackgroundL4 [Cobalt_2]Component.accentColor = lazy(Component.focusColor) @@ -155,6 +159,8 @@ ToggleButton.endBackground = $ToggleButton.background [Cobalt_2]ComboBox.background = @ijTextBackgroundL3 [Cobalt_2]ComboBox.buttonBackground = @ijTextBackgroundL3 [Cobalt_2]TextField.background = @ijTextBackgroundL3 +[Cobalt_2]Table.background = lazy(List.background) +[Cobalt_2]Tree.background = lazy(List.background) [Cyan_light]MenuItem.checkBackground = @ijMenuCheckBackgroundL20 [Cyan_light]MenuItem.underlineSelectionCheckBackground = @ijMenuCheckBackgroundL20 @@ -163,24 +169,43 @@ ToggleButton.endBackground = $ToggleButton.background [Dark_Flat_Theme]Component.accentColor = lazy(List.selectionBackground) [Dark_Flat_Theme]TableHeader.background = #3B3B3B [Dark_Flat_Theme]TextPane.foreground = lazy(TextField.foreground) +[Dark_Flat_Theme]CheckBoxMenuItem.selectionForeground = lazy(MenuItem.selectionForeground) +[Dark_Flat_Theme]List.selectionForeground = lazy(Tree.selectionForeground) +[Dark_Flat_Theme]RadioButtonMenuItem.selectionForeground = lazy(MenuItem.selectionForeground) +[Dark_Flat_Theme]Separator.foreground = lazy(ToolBar.separatorColor) [Dark_purple]Slider.focusedColor = fade($Component.focusColor,70%,derived) [Dracula---Zihan_Ma]Component.accentColor = lazy(Component.focusColor) +[Dracula---Zihan_Ma]ComboBox.selectionBackground = lazy(List.selectionBackground) [Dracula---Zihan_Ma]ProgressBar.selectionBackground = #fff [Dracula---Zihan_Ma]ProgressBar.selectionForeground = #fff +[Gradianto_Dark_Fuchsia]*.selectionBackground = #8452a7 +[Gradianto_Dark_Fuchsia]*.selectionInactiveBackground = #562C6A [Gradianto_Dark_Fuchsia]MenuItem.checkBackground = @ijMenuCheckBackgroundL10 [Gradianto_Dark_Fuchsia]MenuItem.underlineSelectionCheckBackground = @ijMenuCheckBackgroundL10 [Gradianto_Dark_Fuchsia]TextField.background = @ijTextBackgroundL4 +[Gradianto_Dark_Fuchsia]Tree.background = lazy(List.background) +[Gradianto_Dark_Fuchsia]Separator.foreground = lazy(ScrollBar.track) +[Gradianto_Dark_Fuchsia]ToolBar.separatorColor = lazy(ScrollBar.track) +[Gradianto_Dark_Fuchsia]ProgressBar.background = lazy(ScrollBar.track) +[Gradianto_Dark_Fuchsia]Slider.trackColor = lazy(ScrollBar.track) -[Gradianto_Deep_Ocean]TextField.background = @ijTextBackgroundL4 +[Gradianto_Deep_Ocean]TextField.background = @ijTextBackgroundL3 +[Gradianto_Deep_Ocean]Tree.background = lazy(List.background) [Gradianto_Midnight_Blue]ScrollBar.thumb = #533B6B +[Gradianto_Midnight_Blue]Table.selectionForeground = lazy(List.selectionForeground) [Gradianto_Midnight_Blue]TextField.background = @ijTextBackgroundL4 +[Gradianto_Midnight_Blue]Tree.background = lazy(List.background) +[Gradianto_Nature_Green]Table.selectionForeground = lazy(List.selectionForeground) [Gradianto_Nature_Green]TextField.background = @ijTextBackgroundL4 +[Gray]Separator.foreground = lazy(Slider.trackColor) +[Gray]ToolBar.separatorColor = lazy(Slider.trackColor) + [Gruvbox_Dark_Hard]Component.accentColor = lazy(TabbedPane.underlineColor) [Gruvbox_Dark_Hard]ToggleButton.selectedBackground = $ToggleButton.selectedBackground [Gruvbox_Dark_Hard]ToggleButton.toolbar.selectedBackground = $ToggleButton.toolbar.selectedBackground @@ -207,11 +232,16 @@ ToggleButton.endBackground = $ToggleButton.background [Hiberbee_Dark]*.disabledForeground = #7F7E7D [Hiberbee_Dark]*.disabledText = #7F7E7D [Hiberbee_Dark]*.inactiveForeground = #7F7E7D +[Hiberbee_Dark]ProgressBar.background = lazy(Separator.foreground) +[Hiberbee_Dark]Slider.trackColor = lazy(Separator.foreground) [Hiberbee_Dark]TabbedPane.focusColor = #5A5A5A [Hiberbee_Dark]TabbedPane.selectedBackground = #434241 [Hiberbee_Dark]TabbedPane.selectedForeground = #70D7FF [Hiberbee_Dark]ToggleButton.selectedBackground = $ToggleButton.selectedBackground [Hiberbee_Dark]ToggleButton.toolbar.selectedBackground = $ToggleButton.toolbar.selectedBackground +[Hiberbee_Dark]Table.selectionInactiveBackground = lazy(List.selectionInactiveBackground) +[Hiberbee_Dark]Tree.selectionBackground = lazy(List.selectionBackground) +[Hiberbee_Dark]Tree.selectionInactiveBackground = lazy(List.selectionInactiveBackground) [High_contrast]Component.accentColor = lazy(Component.focusColor) [High_contrast]ToggleButton.selectedBackground = #fff @@ -231,8 +261,11 @@ ToggleButton.endBackground = $ToggleButton.background [Light_Flat]Component.accentColor = lazy(TabbedPane.underlineColor) [Light_Flat]ComboBox.background = lazy(ComboBox.editableBackground) [Light_Flat]ComboBox.buttonBackground = lazy(ComboBox.editableBackground) +[Light_Flat]Separator.foreground = lazy(ToolBar.separatorColor) [Light_Flat]TableHeader.background = #E5E5E9 [Light_Flat]TextPane.foreground = lazy(TextField.foreground) +[Light_Flat]CheckBoxMenuItem.selectionForeground = lazy(MenuItem.selectionForeground) +[Light_Flat]RadioButtonMenuItem.selectionForeground = lazy(MenuItem.selectionForeground) [Monocai]Button.default.foreground = #2D2A2F [Monocai]MenuItem.checkBackground = @ijMenuCheckBackgroundL10 @@ -248,20 +281,51 @@ ToggleButton.endBackground = $ToggleButton.background [Monocai]RadioButtonMenuItem.acceleratorForeground = @Monocai.acceleratorForeground [Monocai]RadioButtonMenuItem.acceleratorSelectionForeground = @Monocai.acceleratorSelectionForeground [Monocai]TextField.background = @ijTextBackgroundL4 +@Monocai.selectionBackground = lazy(TextField.selectionBackground) +[Monocai]ComboBox.selectionBackground = @Monocai.selectionBackground +[Monocai]List.selectionBackground = @Monocai.selectionBackground +[Monocai]Table.selectionBackground = @Monocai.selectionBackground +[Monocai]Tree.selectionBackground = @Monocai.selectionBackground +@Monocai.selectionInactiveBackground = lazy(MenuItem.selectionBackground) +[Monocai]List.selectionInactiveBackground = @Monocai.selectionInactiveBackground +[Monocai]Table.selectionInactiveBackground = @Monocai.selectionInactiveBackground +[Monocai]Tree.selectionInactiveBackground = @Monocai.selectionInactiveBackground + +[Monokai_Pro---Subtheme]Table.selectionInactiveForeground = lazy(List.selectionInactiveForeground) +[Monokai_Pro---Subtheme]Tree.selectionBackground = lazy(List.selectionBackground) +[Monokai_Pro---Subtheme]Separator.foreground = lazy(Slider.trackColor) +[Monokai_Pro---Subtheme]ToolBar.separatorColor = lazy(Slider.trackColor) [Nord]*.inactiveForeground = #616E88 [Nord]MenuItem.checkBackground = @ijMenuCheckBackgroundL10 [Nord]MenuItem.underlineSelectionCheckBackground = @ijMenuCheckBackgroundL10 +[Nord]List.selectionBackground = lazy(Tree.selectionBackground) +[Nord]List.selectionForeground = lazy(Tree.selectionForeground) +[Nord]Table.selectionBackground = lazy(Tree.selectionBackground) +[Nord]Table.selectionForeground = lazy(Tree.selectionForeground) +[Nord]TextField.selectionBackground = lazy(Tree.selectionBackground) +[Nord]TextField.selectionForeground = lazy(Tree.selectionForeground) +[Nord]Tree.selectionInactiveForeground = lazy(List.selectionInactiveForeground) +[NotReallyMDTheme]*.selectionInactiveBackground = #21384E +[NotReallyMDTheme]ToolBar.separatorColor = lazy(Separator.foreground) + +[One_Dark]List.selectionInactiveForeground = lazy(Tree.selectionInactiveForeground) [One_Dark]MenuItem.checkBackground = @ijMenuCheckBackgroundL10 [One_Dark]MenuItem.underlineSelectionCheckBackground = @ijMenuCheckBackgroundL10 +[One_Dark]ProgressBar.background = lazy(Separator.foreground) +[One_Dark]Slider.trackColor = lazy(Separator.foreground) [One_Dark]Slider.focusedColor = fade(#568af2,40%) +[One_Dark]Table.selectionBackground = lazy(Tree.selectionBackground) +[One_Dark]TextField.selectionBackground = lazy(List.selectionBackground) +[One_Dark]Tree.selectionForeground = lazy(List.selectionForeground) [Solarized_Dark---4lex4]*.inactiveForeground = #657B83 [Solarized_Dark---4lex4]Component.accentColor = lazy(TabbedPane.underlineColor) [Solarized_Dark---4lex4]ComboBox.background = lazy(ComboBox.editableBackground) [Solarized_Dark---4lex4]ComboBox.buttonBackground = lazy(ComboBox.editableBackground) [Solarized_Dark---4lex4]Slider.focusedColor = fade($Component.focusColor,80%,derived) +[Solarized_Dark---4lex4]ToolBar.separatorColor = lazy(Separator.foreground) [Solarized_Light---4lex4]*.inactiveForeground = #839496 [Solarized_Light---4lex4]Button.default.hoverBackground = darken($Button.default.background,3%,derived) @@ -270,6 +334,8 @@ ToggleButton.endBackground = $ToggleButton.background [Spacegray]ComboBox.background = @ijTextBackgroundL4 [Spacegray]ComboBox.buttonBackground = @ijTextBackgroundL4 [Spacegray]TextField.background = @ijTextBackgroundL4 +[Spacegray]TextField.selectionBackground = lazy(Tree.selectionBackground) +[Spacegray]TextField.selectionForeground = lazy(Tree.selectionForeground) [vuesion-theme]*.disabledForeground = #8C8C8C [vuesion-theme]*.disabledText = #8C8C8C @@ -284,6 +350,7 @@ ToggleButton.endBackground = $ToggleButton.background [vuesion-theme]ComboBox.background = @ijTextBackgroundL4 [vuesion-theme]ComboBox.buttonBackground = @ijTextBackgroundL4 [vuesion-theme]TextField.background = @ijTextBackgroundL4 +[vuesion-theme]TextField.selectionBackground = lighten(#303A45,15%) [Xcode-Dark]TextField.background = @ijTextBackgroundL4 @@ -295,45 +362,106 @@ ToggleButton.endBackground = $ToggleButton.background [dark][author-Mallowigi]MenuItem.checkBackground = @ijMenuCheckBackgroundL20 [dark][author-Mallowigi]MenuItem.underlineSelectionCheckBackground = @ijMenuCheckBackgroundL20 +[author-Mallowigi]Tree.selectionInactiveBackground = lazy(List.selectionInactiveBackground) + +[Arc_Dark]ComboBox.selectionBackground = lazy(List.selectionBackground) +[Arc_Dark]Table.selectionBackground = lazy(List.selectionBackground) + +[Atom_One_Dark]Separator.foreground = lazy(Slider.trackColor) +[Atom_One_Dark]ToolBar.separatorColor = lazy(Slider.trackColor) + +[Atom_One_Light]List.selectionBackground = lazy(Table.selectionBackground) +[Atom_One_Light]Tree.selectionBackground = lazy(Table.selectionBackground) +[Atom_One_Light]TabbedPane.contentAreaColor = lazy(Separator.foreground) + +[Dracula---Mallowigi]*.selectionBackground = #44475A +[Dracula---Mallowigi]List.selectionInactiveForeground = lazy(Tree.selectionInactiveForeground) [Dracula---Mallowigi]ProgressBar.selectionBackground = #fff [Dracula---Mallowigi]ProgressBar.selectionForeground = #fff +[Dracula---Mallowigi]RadioButtonMenuItem.selectionForeground = lazy(CheckBoxMenuItem.selectionForeground) +[Dracula---Mallowigi]Table.selectionForeground = lazy(List.selectionForeground) +[Dracula---Mallowigi]Separator.foreground = lazy(Slider.trackColor) +[Dracula---Mallowigi]ToolBar.separatorColor = lazy(Slider.trackColor) [GitHub]ProgressBar.selectionBackground = #222 [GitHub]ProgressBar.selectionForeground = #222 [GitHub]TextField.background = @ijTextBackgroundL3 +[GitHub]List.selectionBackground = lazy(Table.selectionBackground) +[GitHub]Tree.selectionBackground = lazy(Table.selectionBackground) + +[GitHub_Dark]ComboBox.selectionBackground = lazy(Tree.selectionBackground) +[GitHub_Dark]Table.selectionBackground = lazy(Tree.selectionBackground) +[GitHub_Dark]Separator.foreground = lazy(Slider.trackColor) +[GitHub_Dark]ToolBar.separatorColor = lazy(Slider.trackColor) [Light_Owl]CheckBoxMenuItem.selectionForeground = lazy(CheckBoxMenuItem.foreground) [Light_Owl]ComboBox.selectionForeground = lazy(ComboBox.foreground) -[Light_Owl]EditorPane.selectionForeground = lazy(EditorPane.foreground) -[Light_Owl]FormattedTextField.selectionForeground = lazy(FormattedTextField.foreground) [Light_Owl]List.selectionInactiveForeground = lazy(List.foreground) [Light_Owl]Menu.selectionForeground = lazy(Menu.foreground) [Light_Owl]MenuBar.selectionForeground = lazy(MenuBar.foreground) [Light_Owl]MenuItem.selectionForeground = lazy(MenuItem.foreground) -[Light_Owl]PasswordField.selectionForeground = lazy(PasswordField.foreground) [Light_Owl]ProgressBar.selectionBackground = #111 [Light_Owl]ProgressBar.selectionForeground = #fff [Light_Owl]Spinner.selectionForeground = lazy(Spinner.foreground) [Light_Owl]Table.selectionForeground = lazy(Table.foreground) -[Light_Owl]TextArea.selectionForeground = lazy(TextArea.foreground) [Light_Owl]TextField.selectionForeground = lazy(TextField.foreground) -[Light_Owl]TextPane.selectionForeground = lazy(TextPane.foreground) [Light_Owl]TextField.background = @ijTextBackgroundL3 +[Light_Owl]List.selectionBackground = lazy(Table.selectionBackground) +[Light_Owl]Tree.selectionBackground = lazy(Table.selectionBackground) +[Material_Darker]*.selectionBackground = lighten(#2D2D2D,15%) +[Material_Darker]Separator.foreground = lazy(Slider.trackColor) +[Material_Darker]ToolBar.separatorColor = lazy(Slider.trackColor) + +[Material_Deep_Ocean]*.selectionBackground = lighten(#222533,15%) +[Material_Deep_Ocean]Separator.foreground = lazy(Slider.trackColor) +[Material_Deep_Ocean]ToolBar.separatorColor = lazy(Slider.trackColor) + +[Material_Lighter]List.selectionInactiveForeground = lazy(Tree.selectionInactiveForeground) [Material_Lighter]ProgressBar.selectionBackground = #222 [Material_Lighter]ProgressBar.selectionForeground = #fff +[Material_Lighter]ComboBox.selectionBackground = lazy(List.selectionBackground) +[Material_Lighter]Table.selectionBackground = lazy(List.selectionBackground) +[Material_Lighter]List.selectionForeground = lazy(Table.selectionForeground) +[Material_Lighter]RadioButtonMenuItem.selectionForeground = lazy(Table.selectionForeground) +[Material_Lighter]Tree.selectionForeground = lazy(Table.selectionForeground) [Material_Oceanic]ProgressBar.selectionBackground = #ddd [Material_Oceanic]ProgressBar.selectionForeground = #ddd +[Material_Oceanic]Separator.foreground = lazy(Slider.trackColor) +[Material_Oceanic]ToolBar.separatorColor = lazy(Slider.trackColor) [Material_Palenight]ProgressBar.selectionBackground = #ddd [Material_Palenight]ProgressBar.selectionForeground = #ddd +[Material_Palenight]List.selectionBackground = lazy(Table.selectionBackground) +[Material_Palenight]Tree.selectionBackground = lazy(Table.selectionBackground) +[Material_Palenight]Separator.foreground = lazy(Slider.trackColor) +[Material_Palenight]ToolBar.separatorColor = lazy(Slider.trackColor) + +[Monokai_Pro---Mallowigi]List.selectionForeground = lazy(Table.selectionForeground) +[Monokai_Pro---Mallowigi]RadioButtonMenuItem.selectionForeground = lazy(Table.selectionForeground) +[Monokai_Pro---Mallowigi]Table.selectionInactiveForeground = lazy(List.selectionInactiveForeground) +[Monokai_Pro---Mallowigi]Tree.selectionForeground = lazy(Table.selectionForeground) +[Monokai_Pro---Mallowigi]Tree.selectionInactiveForeground = lazy(List.selectionInactiveForeground) +[Monokai_Pro---Mallowigi]Separator.foreground = lazy(Slider.trackColor) +[Monokai_Pro---Mallowigi]ToolBar.separatorColor = lazy(Slider.trackColor) + +[Moonlight]ComboBox.selectionBackground = lazy(List.selectionBackground) +[Moonlight]Table.selectionBackground = lazy(List.selectionBackground) +[Moonlight]Separator.foreground = lazy(Slider.trackColor) +[Moonlight]ToolBar.separatorColor = lazy(Slider.trackColor) [Night_Owl]ProgressBar.selectionBackground = #ddd [Night_Owl]ProgressBar.selectionForeground = #ddd [Solarized_Dark---Mallowigi]ProgressBar.selectionBackground = #ccc [Solarized_Dark---Mallowigi]ProgressBar.selectionForeground = #ccc +[Solarized_Dark---Mallowigi]Separator.foreground = lazy(Slider.trackColor) +[Solarized_Dark---Mallowigi]ToolBar.separatorColor = lazy(Slider.trackColor) [Solarized_Light---Mallowigi]ProgressBar.selectionBackground = #222 [Solarized_Light---Mallowigi]ProgressBar.selectionForeground = #fff +[Solarized_Light---Mallowigi]ComboBox.selectionBackground = lazy(List.selectionBackground) +[Solarized_Light---Mallowigi]Table.selectionBackground = lazy(List.selectionBackground) +[Solarized_Light---Mallowigi]Separator.foreground = lazy(Slider.trackColor) +[Solarized_Light---Mallowigi]ToolBar.separatorColor = lazy(Slider.trackColor)