@Override
	protected ArrayList<Class<?>> getLafClassesForDefaultsLoading() {
		ArrayList<Class<?>> lafClasses = new ArrayList<>();
		lafClasses.add( FlatLaf.class );
		switch( baseTheme.toLowerCase( Locale.ENGLISH ) ) {
			default:
			case "light":
				lafClasses.add( FlatLightLaf.class );
				break;

			case "dark":
				lafClasses.add( FlatDarkLaf.class );
				break;

			case "intellij":
				lafClasses.add( FlatLightLaf.class );
				lafClasses.add( FlatIntelliJLaf.class );
				break;

			case "darcula":
				lafClasses.add( FlatDarkLaf.class );
				lafClasses.add( FlatDarculaLaf.class );
				break;

			case "maclight":
				lafClasses.add( FlatLightLaf.class );
				lafClasses.add( FlatMacLightLaf.class );
				break;

			case "macdark":
				lafClasses.add( FlatDarkLaf.class );
				lafClasses.add( FlatMacDarkLaf.class );
				break;
		}
		return lafClasses;
	}
A Flat LaF that is able to load UI defaults from properties passed to the constructor.
<p>
Specify the base theme in the properties with {@code @baseTheme=<baseTheme>}.
Allowed values for {@code <baseTheme>} are {@code light} (the default), {@code dark},
{@code intellij}, {@code darcula}, {@code maclight} or {@code macdark}.
<p>
The properties are applied after loading the base theme and may overwrite base properties.
All features of FlatLaf properties files are available.

@author Karl Tauber
flatlaf-core/src/main/java/com/formdev/flatlaf/FlatPropertiesLaf.java