private Color resolveDerivedColor( String key, Color color, Color[] retBaseColor ) {
		if( !(color instanceof DerivedColor) )
			return color;

		if( key == null )
			throw new NullPointerException( "Key must not null." );

		Object baseKey = derivedColorKeys.get( key );

		if( baseKey == null )
			throw new IllegalStateException( "Key '" + key + "' not found in DerivedColorKeys.properties." );

		// this is for keys that may be defined as derived colors, but do not derive them at runtime
		if( "null".equals( baseKey ) )
			return color;

		Color baseColor = defaults.getColor( baseKey );
		if( baseColor == null )
			throw new IllegalStateException( "Missing base color '" + baseKey + "' for key '" + key + "'." );

		if( baseColor instanceof DerivedColor )
			baseColor = resolveDerivedColor( (String) baseKey, baseColor, retBaseColor );

		retBaseColor[0] = baseColor;

		Color newColor = FlatUIUtils.deriveColor( color, baseColor );

		// creating a new color instance to drop Color.frgbvalue from newColor
		// and avoid rounding issues/differences
		return new Color( newColor.getRGB(), true );
	}
Dumps look and feel UI defaults to files.

@author Karl Tauber
flatlaf-testing/src/main/java/com/formdev/flatlaf/testing/uidefaults/UIDefaultsDump.java