public static Map<String, Object> parse( String style )
		throws IllegalArgumentException
	{
		if( style == null || StringUtils.isTrimmedEmpty( style ) )
			return null;

		Map<String, Object> map = null;

		// split style into parts and process them
		for( String part : StringUtils.split( style, ';', true, true ) ) {
			// find separator colon
			int sepIndex = part.indexOf( ':' );
			if( sepIndex < 0 )
				throw new IllegalArgumentException( "missing colon in '" + part + "'" );

			// split into key and value
			String key = StringUtils.substringTrimmed( part, 0, sepIndex );
			String value = StringUtils.substringTrimmed( part, sepIndex + 1 );
			if( key.isEmpty() )
				throw new IllegalArgumentException( "missing key in '" + part + "'" );
			if( value.isEmpty() )
				throw new IllegalArgumentException( "missing value in '" + part + "'" );

			// parse value string and convert it into binary value
			if( map == null )
				map = new LinkedHashMap<>();
			map.put( key, parseValue( key, value ) );
		}

		return map;
	}
Parses styles in CSS syntax ("key1: value1; key2: value2; ..."),
converts the value strings into binary and returns all key/value pairs as map.

@param style the style in CSS syntax, or {@code null}
@return map of parsed styles, or {@code null}
@throws IllegalArgumentException on syntax errors
flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatStylingSupport.java