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 d9612e89..52368c27 100644 --- a/flatlaf-core/src/main/java/com/formdev/flatlaf/IntelliJTheme.java +++ b/flatlaf-core/src/main/java/com/formdev/flatlaf/IntelliJTheme.java @@ -230,7 +230,9 @@ public class IntelliJTheme if( uiValue == null ) { // fix errors (missing '#' for colors) if( !valueStr.startsWith( "#" ) && (key.endsWith( "ground" ) || key.endsWith( "Color" )) ) - valueStr = "#" + valueStr; + valueStr = fixColorIfValid( "#" + valueStr, valueStr ); + else if( valueStr.startsWith( "##" ) ) + valueStr = fixColorIfValid( valueStr.substring( 1 ), valueStr ); else if( key.endsWith( ".border" ) || key.endsWith( "Border" ) ) { List parts = StringUtils.split( valueStr, ',' ); if( parts.size() == 5 && !parts.get( 4 ).startsWith( "#" ) ) { @@ -277,6 +279,17 @@ public class IntelliJTheme } } + private String fixColorIfValid( String newColorStr, String colorStr ) { + try { + // check whether it is valid + UIDefaultsLoader.parseColorRGBA( newColorStr ); + + return newColorStr; + } catch( IllegalArgumentException ex ) { + return colorStr; + } + } + private void applyColorPalette( UIDefaults defaults ) { if( icons == null ) return;