mirror of
https://github.com/JFormDesigner/FlatLaf.git
synced 2025-12-06 22:10:54 +03:00
increased contrast of separator lines in dark themes (issue #762)
Some checks failed
CI / build (11) (push) Has been cancelled
CI / build-on (17, ) (push) Has been cancelled
CI / build-on (21, ) (push) Has been cancelled
CI / build-on (23, ) (push) Has been cancelled
CI / build-on (8, ) (push) Has been cancelled
CI / snapshot (push) Has been cancelled
CI / release (push) Has been cancelled
Some checks failed
CI / build (11) (push) Has been cancelled
CI / build-on (17, ) (push) Has been cancelled
CI / build-on (21, ) (push) Has been cancelled
CI / build-on (23, ) (push) Has been cancelled
CI / build-on (8, ) (push) Has been cancelled
CI / snapshot (push) Has been cancelled
CI / release (push) Has been cancelled
This commit is contained in:
10
CHANGELOG.md
10
CHANGELOG.md
@@ -7,13 +7,13 @@ FlatLaf Change Log
|
||||
|
||||
- macOS: Re-enabled rounded popup border (see PR #772) on macOS 14.4+ (was
|
||||
disabled in 3.5.x).
|
||||
- Increased contrast of text for better readability: (issue #762)
|
||||
- In **FlatLaf Dark**, **FlatLaf Darcula** and many dark IntelliJ themes made
|
||||
- Increased contrast of text for better readability: (PR #972; issue #762)
|
||||
- In **FlatLaf Dark**, **FlatLaf Darcula** and many dark IntelliJ themes, made
|
||||
all text colors brighter.
|
||||
- In **FlatLaf Light**, **FlatLaf IntelliJ** and many light IntelliJ themes
|
||||
- In **FlatLaf Light**, **FlatLaf IntelliJ** and many light IntelliJ themes,
|
||||
made disabled text colors slightly darker.
|
||||
- In **FlatLaf macOS Light** made disabled text colors darker.
|
||||
- In **FlatLaf macOS Dark** made text colors of "default" button and selected
|
||||
- In **FlatLaf macOS Light**, made disabled text colors darker.
|
||||
- In **FlatLaf macOS Dark**, made text colors of "default" button and selected
|
||||
ToggleButton lighter.
|
||||
- CheckBox: Support styling indeterminate state of
|
||||
[tri-state check boxes](https://www.javadoc.io/doc/com.formdev/flatlaf-extras/latest/com/formdev/flatlaf/extras/components/FlatTriStateCheckBox.html).
|
||||
|
||||
@@ -284,7 +284,7 @@ ScrollBar.pressedButtonBackground = lighten(@background,10%,derived noAutoInvers
|
||||
|
||||
#---- Separator ----
|
||||
|
||||
Separator.foreground = tint(@background,10%)
|
||||
Separator.foreground = tint(@background,15%)
|
||||
|
||||
|
||||
#---- Slider ----
|
||||
|
||||
@@ -117,5 +117,8 @@
|
||||
|
||||
#---- contrast ratio: ProgressBar ----
|
||||
|
||||
- contrast ratio: ProgressBar.foreground #4c87c8 #3c3f41 2.8 !!!!!
|
||||
+ contrast ratio: ProgressBar.foreground #c4c4c4 #3c3f41 6.1 !
|
||||
|
||||
- contrast ratio: ProgressBar.selectionForeground #eeeeee #4c87c8 3.2 !!!!
|
||||
+ contrast ratio: ProgressBar.selectionForeground #3c3f41 #c4c4c4 6.1 !
|
||||
|
||||
@@ -598,7 +598,7 @@ Menu.submenuPopupOffsetY [active] -4
|
||||
|
||||
MenuBar.background #303234 HSL 210 4 20 javax.swing.plaf.ColorUIResource [UI]
|
||||
MenuBar.border [lazy] 0,0,1,0 false com.formdev.flatlaf.ui.FlatMenuBarBorder [UI]
|
||||
MenuBar.borderColor #505254 HSL 210 2 32 javax.swing.plaf.ColorUIResource [UI]
|
||||
MenuBar.borderColor #595c5e HSL 204 3 36 javax.swing.plaf.ColorUIResource [UI]
|
||||
MenuBar.font [active] $defaultFont [UI]
|
||||
MenuBar.foreground #dddddd HSL 0 0 87 javax.swing.plaf.ColorUIResource [UI]
|
||||
MenuBar.highlight #232324 HSL 240 1 14 javax.swing.plaf.ColorUIResource [UI]
|
||||
@@ -938,7 +938,7 @@ SearchField.searchIconPressedColor [lazy] #7f8b9180 50% HSLA 200 8 53 50
|
||||
#---- Separator ----
|
||||
|
||||
Separator.background #3c3f41 HSL 204 4 25 javax.swing.plaf.ColorUIResource [UI]
|
||||
Separator.foreground #505254 HSL 210 2 32 javax.swing.plaf.ColorUIResource [UI]
|
||||
Separator.foreground #595c5e HSL 204 3 36 javax.swing.plaf.ColorUIResource [UI]
|
||||
Separator.height 3
|
||||
Separator.highlight #232324 HSL 240 1 14 javax.swing.plaf.ColorUIResource [UI]
|
||||
Separator.shadow #616365 HSL 210 2 39 javax.swing.plaf.ColorUIResource [UI]
|
||||
@@ -1289,7 +1289,7 @@ TitlePane.useWindowDecorations true
|
||||
|
||||
#---- TitledBorder ----
|
||||
|
||||
TitledBorder.border [lazy] 1,1,1,1 false com.formdev.flatlaf.ui.FlatLineBorder [UI] lineColor=#505254 HSL 210 2 32 javax.swing.plaf.ColorUIResource [UI] lineThickness=1.000000
|
||||
TitledBorder.border [lazy] 1,1,1,1 false com.formdev.flatlaf.ui.FlatLineBorder [UI] lineColor=#595c5e HSL 204 3 36 javax.swing.plaf.ColorUIResource [UI] lineThickness=1.000000
|
||||
TitledBorder.font [active] $defaultFont [UI]
|
||||
TitledBorder.titleColor #dddddd HSL 0 0 87 javax.swing.plaf.ColorUIResource [UI]
|
||||
|
||||
@@ -1352,7 +1352,7 @@ ToolBar.hoverButtonGroupArc 8
|
||||
ToolBar.hoverButtonGroupBackground #434749 HSL 200 4 27 com.formdev.flatlaf.util.DerivedColor [UI] lighten(3% autoInverse)
|
||||
ToolBar.isRollover true
|
||||
ToolBar.light #2f3031 HSL 210 2 19 javax.swing.plaf.ColorUIResource [UI]
|
||||
ToolBar.separatorColor #505254 HSL 210 2 32 javax.swing.plaf.ColorUIResource [UI]
|
||||
ToolBar.separatorColor #595c5e HSL 204 3 36 javax.swing.plaf.ColorUIResource [UI]
|
||||
ToolBar.separatorWidth 7
|
||||
ToolBar.shadow #616365 HSL 210 2 39 javax.swing.plaf.ColorUIResource [UI]
|
||||
ToolBar.spacingBorder [lazy] 1,2,1,2 false com.formdev.flatlaf.ui.FlatEmptyBorder [UI]
|
||||
@@ -1750,3 +1750,17 @@ Tree.textForeground #dddddd #46494b 6.7 !
|
||||
|
||||
#-- titleForeground --
|
||||
JXTitledPanel.titleForeground #dddddd #4c5052 6.0 !
|
||||
|
||||
#-- non-text --
|
||||
CheckBoxMenuItem.icon.checkmarkColor #b7b7b7 #3c3f41 5.3 !!
|
||||
CheckBoxMenuItem.icon.disabledCheckmarkColor #777777 #3c3f41 2.4 !!!!!
|
||||
Menu.icon.arrowColor #b7b7b7 #3c3f41 5.3 !!
|
||||
Menu.icon.disabledArrowColor #777777 #3c3f41 2.4 !!!!!
|
||||
ProgressBar.background #505456 #3c3f41 1.4 !!!!!!
|
||||
ProgressBar.foreground #4c87c8 #3c3f41 2.8 !!!!!
|
||||
Separator.foreground #595c5e #3c3f41 1.6 !!!!!!
|
||||
Slider.disabledTrackColor #54595c #3c3f41 1.5 !!!!!!
|
||||
Slider.trackColor #616669 #3c3f41 1.8 !!!!!!
|
||||
Slider.trackValueColor #4c87c8 #3c3f41 2.8 !!!!!
|
||||
TabbedPane.contentAreaColor #616365 #3c3f41 1.8 !!!!!!
|
||||
ToolBar.separatorColor #595c5e #3c3f41 1.6 !!!!!!
|
||||
|
||||
@@ -1755,3 +1755,17 @@ Tree.textForeground #000000 #ffffff 21.0
|
||||
|
||||
#-- titleForeground --
|
||||
JXTitledPanel.titleForeground #222222 #dfdfdf 11.9
|
||||
|
||||
#-- non-text --
|
||||
CheckBoxMenuItem.icon.checkmarkColor #4e9de7 #f2f2f2 2.6 !!!!!
|
||||
CheckBoxMenuItem.icon.disabledCheckmarkColor #a6a6a6 #f2f2f2 2.2 !!!!!
|
||||
Menu.icon.arrowColor #666666 #f2f2f2 5.1 !!
|
||||
Menu.icon.disabledArrowColor #a6a6a6 #f2f2f2 2.2 !!!!!
|
||||
ProgressBar.background #d1d1d1 #f2f2f2 1.4 !!!!!!
|
||||
ProgressBar.foreground #2285e1 #f2f2f2 3.4 !!!!
|
||||
Separator.foreground #cecece #f2f2f2 1.4 !!!!!!
|
||||
Slider.disabledTrackColor #d1d1d1 #f2f2f2 1.4 !!!!!!
|
||||
Slider.trackColor #c4c4c4 #f2f2f2 1.6 !!!!!!
|
||||
Slider.trackValueColor #2285e1 #f2f2f2 3.4 !!!!
|
||||
TabbedPane.contentAreaColor #c2c2c2 #f2f2f2 1.6 !!!!!!
|
||||
ToolBar.separatorColor #cecece #f2f2f2 1.4 !!!!!!
|
||||
|
||||
@@ -1761,3 +1761,17 @@ Tree.textForeground #dddddd #282828 10.9
|
||||
|
||||
#-- titleForeground --
|
||||
JXTitledPanel.titleForeground #dddddd #4c5052 6.0 !
|
||||
|
||||
#-- non-text --
|
||||
CheckBoxMenuItem.icon.checkmarkColor #b7b7b7 #1e1e1e 8.3
|
||||
CheckBoxMenuItem.icon.disabledCheckmarkColor #777777 #1e1e1e 3.7 !!!!
|
||||
Menu.icon.arrowColor #b7b7b7 #1e1e1e 8.3
|
||||
Menu.icon.disabledArrowColor #777777 #1e1e1e 3.7 !!!!
|
||||
ProgressBar.background #323232 #1e1e1e 1.3 !!!!!!
|
||||
ProgressBar.foreground #007aff #1e1e1e 4.2 !!!
|
||||
Separator.foreground #343434 #1e1e1e 1.3 !!!!!! #ffffff19 10%
|
||||
Slider.disabledTrackColor #282828 #1e1e1e 1.1 !!!!!!
|
||||
Slider.trackColor #323232 #1e1e1e 1.3 !!!!!!
|
||||
Slider.trackValueColor #007aff #1e1e1e 4.2 !!!
|
||||
TabbedPane.contentAreaColor #343434 #1e1e1e 1.3 !!!!!! #ffffff19 10%
|
||||
ToolBar.separatorColor #343434 #1e1e1e 1.3 !!!!!! #ffffff19 10%
|
||||
|
||||
@@ -1765,3 +1765,17 @@ Tree.textForeground #262626 #ffffff 15.1
|
||||
|
||||
#-- titleForeground --
|
||||
JXTitledPanel.titleForeground #222222 #dfdfdf 11.9
|
||||
|
||||
#-- non-text --
|
||||
CheckBoxMenuItem.icon.checkmarkColor #007aff #f6f6f6 3.7 !!!!
|
||||
CheckBoxMenuItem.icon.disabledCheckmarkColor #bdbdbd #f6f6f6 1.7 !!!!!!
|
||||
Menu.icon.arrowColor #7d7d7d #f6f6f6 3.8 !!!!
|
||||
Menu.icon.disabledArrowColor #bdbdbd #f6f6f6 1.7 !!!!!!
|
||||
ProgressBar.background #e9e9e9 #f6f6f6 1.1 !!!!!!
|
||||
ProgressBar.foreground #007aff #f6f6f6 3.7 !!!!
|
||||
Separator.foreground #dedede #f6f6f6 1.2 !!!!!! #00000019 10%
|
||||
Slider.disabledTrackColor #ececec #f6f6f6 1.1 !!!!!!
|
||||
Slider.trackColor #e4e4e4 #f6f6f6 1.2 !!!!!!
|
||||
Slider.trackValueColor #007aff #f6f6f6 3.7 !!!!
|
||||
TabbedPane.contentAreaColor #d1d1d1 #f6f6f6 1.4 !!!!!! #00000026 15%
|
||||
ToolBar.separatorColor #dedede #f6f6f6 1.2 !!!!!! #00000019 10%
|
||||
|
||||
@@ -1844,3 +1844,16 @@ Tree.textForeground #ff0000 #fff0ff 3.6 !!
|
||||
|
||||
#-- titleForeground --
|
||||
JXTitledPanel.titleForeground #ff00ff #ffff00 2.9 !!!!!
|
||||
|
||||
#-- non-text --
|
||||
CheckBoxMenuItem.icon.checkmarkColor #4d89c9 #ccffcc 3.3 !!!!
|
||||
CheckBoxMenuItem.icon.disabledCheckmarkColor #ababab #ccffcc 2.0 !!!!!
|
||||
Menu.icon.arrowColor #4d89c9 #ccffcc 3.3 !!!!
|
||||
Menu.icon.disabledArrowColor #ababab #ccffcc 2.0 !!!!!
|
||||
ProgressBar.background #88ff88 #ccffcc 1.1 !!!!!!
|
||||
ProgressBar.foreground #bae3ba #ccffcc 1.3 !!!!!! #73737333 20%
|
||||
Separator.foreground #00bb00 #ccffcc 2.3 !!!!!
|
||||
Slider.disabledTrackColor #ffff88 #ccffcc 1.1 !!!!!!
|
||||
Slider.trackColor #88ff88 #ccffcc 1.1 !!!!!!
|
||||
TabbedPane.contentAreaColor #ff0000 #ccffcc 3.6 !!!!
|
||||
ToolBar.separatorColor #00bb00 #ccffcc 2.3 !!!!!
|
||||
|
||||
@@ -901,6 +901,22 @@ public class UIDefaultsDump
|
||||
fg2bgMap.remove( "TitlePane.closeHoverForeground" );
|
||||
fg2bgMap.remove( "TitlePane.closePressedForeground" );
|
||||
|
||||
// non-text
|
||||
HashMap<String, String> nonTextMap = new HashMap<>();
|
||||
nonTextMap.put( "Menu.icon.arrowColor", "Panel.background" );
|
||||
nonTextMap.put( "Menu.icon.disabledArrowColor", "Panel.background" );
|
||||
nonTextMap.put( "CheckBoxMenuItem.icon.checkmarkColor", "Panel.background" );
|
||||
nonTextMap.put( "CheckBoxMenuItem.icon.disabledCheckmarkColor", "Panel.background" );
|
||||
nonTextMap.put( "ProgressBar.foreground", "Panel.background" );
|
||||
nonTextMap.put( "ProgressBar.background", "Panel.background" );
|
||||
nonTextMap.put( "Separator.foreground", "Separator.background" );
|
||||
nonTextMap.put( "Slider.trackColor", "Panel.background" );
|
||||
nonTextMap.put( "Slider.trackValueColor", "Panel.background" );
|
||||
nonTextMap.put( "Slider.disabledTrackColor", "Panel.background" );
|
||||
nonTextMap.put( "TabbedPane.contentAreaColor", "Panel.background" );
|
||||
nonTextMap.put( "ToolBar.separatorColor", "ToolBar.background" );
|
||||
|
||||
|
||||
// out.println();
|
||||
// fg2bgMap.entrySet().stream()
|
||||
// .sorted( (e1, e2) -> e1.getKey().compareTo( e2.getKey() ) )
|
||||
@@ -925,11 +941,40 @@ public class UIDefaultsDump
|
||||
return key1.substring( 0, dot1 ).compareTo( key2.substring( 0, dot2 ) );
|
||||
} )
|
||||
.forEach( e -> {
|
||||
String fgKey = e.getKey();
|
||||
String bgKey = e.getValue();
|
||||
dumpContrastRatio( out, e.getKey(), e.getValue(), lastSubkey );
|
||||
} );
|
||||
|
||||
out.println();
|
||||
out.println( "#-- non-text --" );
|
||||
nonTextMap.entrySet().stream()
|
||||
.sorted( (e1, e2) -> {
|
||||
return e1.getKey().compareTo( e2.getKey() );
|
||||
} )
|
||||
.forEach( e -> {
|
||||
dumpContrastRatio( out, e.getKey(), e.getValue(), null );
|
||||
} );
|
||||
}
|
||||
|
||||
private void dumpContrastRatio( PrintWriter out, String fgKey, String bgKey, AtomicReference<String> lastSubkey ) {
|
||||
Color background = defaults.getColor( bgKey );
|
||||
Color foreground = defaults.getColor( fgKey );
|
||||
if( background != null && foreground != null ) {
|
||||
if( background == null || foreground == null )
|
||||
return;
|
||||
|
||||
String subkey = fgKey.substring( fgKey.lastIndexOf( '.' ) + 1 );
|
||||
if( lastSubkey != null && !subkey.equals( lastSubkey.get() ) ) {
|
||||
lastSubkey.set( subkey );
|
||||
out.println();
|
||||
out.println( "#-- " + subkey + " --" );
|
||||
}
|
||||
|
||||
Color translucentForeground = null;
|
||||
if( foreground.getAlpha() != 255 ) {
|
||||
translucentForeground = foreground;
|
||||
float weight = foreground.getAlpha() / 255f;
|
||||
foreground = ColorFunctions.mix( new Color( foreground.getRGB() ), background, weight );
|
||||
}
|
||||
|
||||
float luma1 = ColorFunctions.luma( background );
|
||||
float luma2 = ColorFunctions.luma( foreground );
|
||||
float contrastRatio = (luma1 > luma2)
|
||||
@@ -944,18 +989,10 @@ public class UIDefaultsDump
|
||||
contrastRatio < 6.95f ? " !" :
|
||||
"";
|
||||
|
||||
String subkey = fgKey.substring( fgKey.lastIndexOf( '.' ) + 1 );
|
||||
if( !subkey.equals( lastSubkey.get() ) ) {
|
||||
lastSubkey.set( subkey );
|
||||
out.println();
|
||||
out.println( "#-- " + subkey + " --" );
|
||||
}
|
||||
|
||||
out.printf( "%-50s #%06x #%06x %4.1f%s%n", fgKey,
|
||||
out.printf( "%-50s #%06x #%06x %4.1f%s%s%n", fgKey,
|
||||
foreground.getRGB() & 0xffffff, background.getRGB() & 0xffffff,
|
||||
contrastRatio, rateing );
|
||||
}
|
||||
} );
|
||||
contrastRatio, rateing,
|
||||
translucentForeground != null ? " " + dumpColorHex( translucentForeground ) : "" );
|
||||
}
|
||||
|
||||
//---- class MyBasicLookAndFeel -------------------------------------------
|
||||
|
||||
Reference in New Issue
Block a user