Compare commits

..

13 Commits
0.31 ... 0.32

Author SHA1 Message Date
Karl Tauber
9026efeb26 release 0.32 2020-04-23 16:04:31 +02:00
Karl Tauber
2ab023beb0 UIDefaultsDump: used FlatAllIJThemes instead of IJThemesManager to get list of IJ themes 2020-04-23 14:02:25 +02:00
Karl Tauber
8e471fd720 IntelliJ Themes: generated Java classes for all themes (used IJThemesClassGenerator) 2020-04-23 13:59:59 +02:00
Karl Tauber
13cbbd8bc1 IntelliJ Themes: moved themes into own sub-project and build a JAR that contains all themes 2020-04-23 11:06:12 +02:00
Karl Tauber
b08ccc9767 UIDefaultsLoader: no longer support/use derived colors without base colors 2020-04-22 11:49:44 +02:00
Karl Tauber
801a7023a4 IntelliJ Themes: fixed toggle button selected backgrounds (issue #86) 2020-04-22 10:30:14 +02:00
Karl Tauber
dd06b554da ToggleButton: compute selected background color based on current component background (issue #32) 2020-04-22 09:48:58 +02:00
Karl Tauber
23f0504b30 IntelliJ Themes: fixed toggle button unselected background in most themes and foreground in Darcula and One Dark themes (issue #86) 2020-04-21 14:39:11 +02:00
Karl Tauber
262d172cde IntelliJ Themes: removed code that is obsolete since supporting gradient button background/border colors in commit de82dac8
make sure that gradient colors are predefined for improved compatibility
this fixes button background in Arc themes and toggle button background in Dark Flat and Light Flat themes
2020-04-21 10:02:11 +02:00
Karl Tauber
be81cb7876 IntelliJ Themes Demo: removed IntelliJ Light Preview theme because Flat light already uses colors from this theme since commit 78d5e03a 2020-04-21 09:41:53 +02:00
Karl Tauber
aaf9bd33cb UIDefaultsDump: support dumping IntelliJ themes (disabled)
can be used to check changes to UI defaults when modifying the IntelliJ theme converter
2020-04-21 09:37:24 +02:00
Karl Tauber
7381e2141f IntelliJ Themes Demo: updated Dracula, Gruvbox and Hiberbee themes (used IJThemesUpdater) 2020-04-21 00:10:18 +02:00
Karl Tauber
3923d941c1 IntelliJ Themes Demo: updated Material UI Lite themes (used IJThemesUpdater)
List.selectionInactiveBackground and Tree.selectionInactiveBackground now have better visible colors; other changes seem to be not used in FlatLaf
2020-04-20 23:28:39 +02:00
157 changed files with 4888 additions and 702 deletions

View File

@@ -1,6 +1,14 @@
FlatLaf Change Log FlatLaf Change Log
================== ==================
## 0.32
- ToggleButton: Compute selected background color based on current component
background. (issue #32)
- IntelliJ Themes: Fixed button and toggle button colors. (issue #86)
- Updated IntelliJ Themes in demo to the latest versions.
## 0.31 ## 0.31
- Focus indication border (or background) no longer hidden when temporary - Focus indication border (or background) no longer hidden when temporary

View File

@@ -14,8 +14,8 @@
* limitations under the License. * limitations under the License.
*/ */
val releaseVersion = "0.31" val releaseVersion = "0.32"
val developmentVersion = "0.32-SNAPSHOT" val developmentVersion = "0.33-SNAPSHOT"
version = if( java.lang.Boolean.getBoolean( "release" ) ) releaseVersion else developmentVersion version = if( java.lang.Boolean.getBoolean( "release" ) ) releaseVersion else developmentVersion

View File

@@ -282,9 +282,9 @@ public abstract class FlatLaf
// load defaults from properties // load defaults from properties
List<Class<?>> lafClassesForDefaultsLoading = getLafClassesForDefaultsLoading(); List<Class<?>> lafClassesForDefaultsLoading = getLafClassesForDefaultsLoading();
if( lafClassesForDefaultsLoading != null ) if( lafClassesForDefaultsLoading != null )
UIDefaultsLoader.loadDefaultsFromProperties( lafClassesForDefaultsLoading, addons, getAdditionalDefaults(), defaults ); UIDefaultsLoader.loadDefaultsFromProperties( lafClassesForDefaultsLoading, addons, getAdditionalDefaults(), isDark(), defaults );
else else
UIDefaultsLoader.loadDefaultsFromProperties( getClass(), addons, getAdditionalDefaults(), defaults ); UIDefaultsLoader.loadDefaultsFromProperties( getClass(), addons, getAdditionalDefaults(), isDark(), defaults );
// use Aqua MenuBarUI if Mac screen menubar is enabled // use Aqua MenuBarUI if Mac screen menubar is enabled
if( SystemInfo.IS_MAC && Boolean.getBoolean( "apple.laf.useScreenMenuBar" ) ) if( SystemInfo.IS_MAC && Boolean.getBoolean( "apple.laf.useScreenMenuBar" ) )

View File

@@ -132,6 +132,8 @@ public class IntelliJTheme
defaults.put( "Button.paintShadow", true ); defaults.put( "Button.paintShadow", true );
defaults.put( "Button.shadowWidth", dark ? 2 : 1 ); defaults.put( "Button.shadowWidth", dark ? 2 : 1 );
Map<Object, Object> themeSpecificDefaults = removeThemeSpecificDefaults( defaults );
loadNamedColors( defaults ); loadNamedColors( defaults );
// convert Json "ui" structure to UI defaults // convert Json "ui" structure to UI defaults
@@ -183,6 +185,37 @@ public class IntelliJTheme
if( !uiKeys.contains( "Spinner.background" ) ) if( !uiKeys.contains( "Spinner.background" ) )
defaults.put( "Spinner.background", textFieldBackground ); defaults.put( "Spinner.background", textFieldBackground );
} }
// fix ToggleButton
if( !uiKeys.contains( "ToggleButton.startBackground" ) && !uiKeys.contains( "*.startBackground" ) )
defaults.put( "ToggleButton.startBackground", defaults.get( "Button.startBackground" ) );
if( !uiKeys.contains( "ToggleButton.endBackground" ) && !uiKeys.contains( "*.endBackground" ) )
defaults.put( "ToggleButton.endBackground", defaults.get( "Button.endBackground" ) );
if( !uiKeys.contains( "ToggleButton.foreground" ) && uiKeys.contains( "Button.foreground" ) )
defaults.put( "ToggleButton.foreground", defaults.get( "Button.foreground" ) );
// apply theme specific UI defaults at the end to allow overwriting
defaults.putAll( themeSpecificDefaults );
}
private Map<Object, Object> removeThemeSpecificDefaults( UIDefaults defaults ) {
// search for theme specific UI defaults keys
ArrayList<String> themeSpecificKeys = new ArrayList<>();
for( Object key : defaults.keySet() ) {
if( key instanceof String && ((String)key).startsWith( "[" ) )
themeSpecificKeys.add( (String) key );
}
// remove theme specific UI defaults and remember only those for current theme
Map<Object, Object> themeSpecificDefaults = new HashMap<>();
String currentThemePrefix = '[' + name.replace( ' ', '_' ) + ']';
for( String key : themeSpecificKeys ) {
Object value = defaults.remove( key );
if( key.startsWith( currentThemePrefix ) )
themeSpecificDefaults.put( key.substring( currentThemePrefix.length() ), value );
}
return themeSpecificDefaults;
} }
/** /**
@@ -270,7 +303,7 @@ public class IntelliJTheme
// (e.g. set ComboBox.buttonEditableBackground to *.background // (e.g. set ComboBox.buttonEditableBackground to *.background
// because it is mapped from ComboBox.ArrowButton.background) // because it is mapped from ComboBox.ArrowButton.background)
String km = uiKeyInverseMapping.getOrDefault( k, (String) k ); String km = uiKeyInverseMapping.getOrDefault( k, (String) k );
if( km.endsWith( tail ) && !noWildcardReplace.contains( k ) && !((String)k).startsWith( "CheckBox.icon." ) ) if( km.endsWith( tail ) && !((String)k).startsWith( "CheckBox.icon." ) )
defaults.put( k, uiValue ); defaults.put( k, uiValue );
} }
} }
@@ -412,7 +445,6 @@ public class IntelliJTheme
private static Map<String, String> uiKeyInverseMapping = new HashMap<>(); private static Map<String, String> uiKeyInverseMapping = new HashMap<>();
private static Map<String, String> checkboxKeyMapping = new HashMap<>(); private static Map<String, String> checkboxKeyMapping = new HashMap<>();
private static Map<String, String> checkboxDuplicateColors = new HashMap<>(); private static Map<String, String> checkboxDuplicateColors = new HashMap<>();
private static Set<String> noWildcardReplace = new HashSet<>();
static { static {
// ComboBox // ComboBox
@@ -470,16 +502,6 @@ public class IntelliJTheme
Map.Entry<String, String>[] entries = checkboxDuplicateColors.entrySet().toArray( new Map.Entry[checkboxDuplicateColors.size()] ); Map.Entry<String, String>[] entries = checkboxDuplicateColors.entrySet().toArray( new Map.Entry[checkboxDuplicateColors.size()] );
for( Map.Entry<String, String> e : entries ) for( Map.Entry<String, String> e : entries )
checkboxDuplicateColors.put( e.getValue(), e.getKey() ); checkboxDuplicateColors.put( e.getValue(), e.getKey() );
// because FlatLaf uses Button.background and Button.borderColor,
// but IDEA uses Button.startBackground and Button.startBorderColor,
// our default button background and border colors may be replaced by
// wildcard *.background and *.borderColor colors
noWildcardReplace.add( "Button.background" );
noWildcardReplace.add( "Button.borderColor" );
noWildcardReplace.add( "Button.default.background" );
noWildcardReplace.add( "Button.default.borderColor" );
noWildcardReplace.add( "ToggleButton.background" );
} }
//---- class ThemeLaf ----------------------------------------------------- //---- class ThemeLaf -----------------------------------------------------

View File

@@ -69,7 +69,7 @@ class UIDefaultsLoader
private static final String GLOBAL_PREFIX = "*."; private static final String GLOBAL_PREFIX = "*.";
static void loadDefaultsFromProperties( Class<?> lookAndFeelClass, List<FlatDefaultsAddon> addons, static void loadDefaultsFromProperties( Class<?> lookAndFeelClass, List<FlatDefaultsAddon> addons,
Properties additionalDefaults, UIDefaults defaults ) Properties additionalDefaults, boolean dark, UIDefaults defaults )
{ {
// determine classes in class hierarchy in reverse order // determine classes in class hierarchy in reverse order
ArrayList<Class<?>> lafClasses = new ArrayList<>(); ArrayList<Class<?>> lafClasses = new ArrayList<>();
@@ -80,11 +80,11 @@ class UIDefaultsLoader
lafClasses.add( 0, lafClass ); lafClasses.add( 0, lafClass );
} }
loadDefaultsFromProperties( lafClasses, addons, additionalDefaults, defaults ); loadDefaultsFromProperties( lafClasses, addons, additionalDefaults, dark, defaults );
} }
static void loadDefaultsFromProperties( List<Class<?>> lafClasses, List<FlatDefaultsAddon> addons, static void loadDefaultsFromProperties( List<Class<?>> lafClasses, List<FlatDefaultsAddon> addons,
Properties additionalDefaults, UIDefaults defaults ) Properties additionalDefaults, boolean dark, UIDefaults defaults )
{ {
try { try {
// load core properties files // load core properties files
@@ -121,14 +121,28 @@ class UIDefaultsLoader
// collect all platform specific keys (but do not modify properties) // collect all platform specific keys (but do not modify properties)
ArrayList<String> platformSpecificKeys = new ArrayList<>(); ArrayList<String> platformSpecificKeys = new ArrayList<>();
for( Object key : properties.keySet() ) { for( Object okey : properties.keySet() ) {
if( ((String)key).startsWith( "[" ) ) String key = (String) okey;
platformSpecificKeys.add( (String) key ); if( key.startsWith( "[" ) &&
(key.startsWith( "[win]" ) ||
key.startsWith( "[mac]" ) ||
key.startsWith( "[linux]" ) ||
key.startsWith( "[light]" ) ||
key.startsWith( "[dark]" )) )
platformSpecificKeys.add( key );
} }
// remove platform specific properties and re-add only properties // remove platform specific properties and re-add only properties
// for current platform, but with platform prefix removed // for current platform, but with platform prefix removed
if( !platformSpecificKeys.isEmpty() ) { if( !platformSpecificKeys.isEmpty() ) {
// handle light/dark specific properties
String lightOrDarkPrefix = dark ? "[dark]" : "[light]";
for( String key : platformSpecificKeys ) {
if( key.startsWith( lightOrDarkPrefix ) )
properties.put( key.substring( lightOrDarkPrefix.length() ), properties.remove( key ) );
}
// handle platform specific properties
String platformPrefix = String platformPrefix =
SystemInfo.IS_WINDOWS ? "[win]" : SystemInfo.IS_WINDOWS ? "[win]" :
SystemInfo.IS_MAC ? "[mac]" : SystemInfo.IS_MAC ? "[mac]" :
@@ -544,35 +558,37 @@ class UIDefaultsLoader
} }
/** /**
* Syntax: lighten([color,]amount[,options]) or darken([color,]amount[,options]) * Syntax: lighten(color,amount[,options]) or darken(color,amount[,options])
* - color: a color (e.g. #f00) or a color function * - color: a color (e.g. #f00) or a color function
* - amount: percentage 0-100% * - amount: percentage 0-100%
* - options: [relative] [autoInverse] [lazy] * - options: [relative] [autoInverse] [lazy] [derived]
*/ */
private static Object parseColorLightenOrDarken( boolean lighten, List<String> params, private static Object parseColorLightenOrDarken( boolean lighten, List<String> params,
Function<String, String> resolver, boolean reportError ) Function<String, String> resolver, boolean reportError )
{ {
boolean isDerived = params.get( 0 ).endsWith( "%" ); String colorStr = params.get( 0 );
String colorStr = isDerived ? null : params.get( 0 ); int amount = parsePercentage( params.get( 1 ) );
int nextParam = isDerived ? 0 : 1;
int amount = parsePercentage( params.get( nextParam++ ) );
boolean relative = false; boolean relative = false;
boolean autoInverse = false; boolean autoInverse = false;
boolean lazy = false; boolean lazy = false;
boolean derived = false;
if( params.size() > nextParam ) { if( params.size() > 2 ) {
String options = params.get( nextParam++ ); String options = params.get( 2 );
relative = options.contains( "relative" ); relative = options.contains( "relative" );
autoInverse = options.contains( "autoInverse" ); autoInverse = options.contains( "autoInverse" );
lazy = options.contains( "lazy" ); lazy = options.contains( "lazy" );
derived = options.contains( "derived" );
} }
ColorFunctions.ColorFunction function = lighten ColorFunctions.ColorFunction function = lighten
? new ColorFunctions.Lighten( amount, relative, autoInverse ) ? new ColorFunctions.Lighten( amount, relative, autoInverse )
: new ColorFunctions.Darken( amount, relative, autoInverse ); : new ColorFunctions.Darken( amount, relative, autoInverse );
if( isDerived ) if( derived ) {
return new DerivedColor( function ); ColorUIResource color = (ColorUIResource) parseColorOrFunction( resolver.apply( colorStr ), resolver, reportError );
return new DerivedColor( ColorFunctions.applyFunctions( color, function ), function );
}
if( lazy ) { if( lazy ) {
return (LazyValue) t -> { return (LazyValue) t -> {

View File

@@ -32,8 +32,8 @@ public class DerivedColor
{ {
private final ColorFunction[] functions; private final ColorFunction[] functions;
public DerivedColor( ColorFunction... functions ) { public DerivedColor( Color defaultColor, ColorFunction... functions ) {
super( Color.red ); super( (defaultColor != null) ? defaultColor : Color.red );
this.functions = functions; this.functions = functions;
} }

View File

@@ -32,10 +32,6 @@
@cellFocusColor=#000000 @cellFocusColor=#000000
@icon=#adadad @icon=#adadad
# Button
@buttonHoverBackground=lighten(3%,autoInverse)
@buttonPressedBackground=lighten(6%,autoInverse)
# Drop (use lazy colors for IntelliJ platform themes, which usually do not specify these colors) # Drop (use lazy colors for IntelliJ platform themes, which usually do not specify these colors)
@dropCellBackground=darken(List.selectionBackground,10%,lazy) @dropCellBackground=darken(List.selectionBackground,10%,lazy)
@dropCellForeground=lazy(List.selectionForeground) @dropCellForeground=lazy(List.selectionForeground)
@@ -73,8 +69,8 @@ controlDkShadow=lighten($controlShadow,10%)
#---- Button ---- #---- Button ----
Button.background=#4c5052 Button.background=#4c5052
Button.hoverBackground=@buttonHoverBackground Button.hoverBackground=lighten($Button.background,3%,derived autoInverse)
Button.pressedBackground=@buttonPressedBackground Button.pressedBackground=lighten($Button.background,6%,derived autoInverse)
Button.borderColor=#5e6060 Button.borderColor=#5e6060
Button.disabledBorderColor=#5e6060 Button.disabledBorderColor=#5e6060
@@ -83,16 +79,16 @@ Button.hoverBorderColor=$Button.focusedBorderColor
Button.default.background=#365880 Button.default.background=#365880
Button.default.foreground=#bbbbbb Button.default.foreground=#bbbbbb
Button.default.hoverBackground=@buttonHoverBackground Button.default.hoverBackground=lighten($Button.default.background,3%,derived autoInverse)
Button.default.pressedBackground=@buttonPressedBackground Button.default.pressedBackground=lighten($Button.default.background,6%,derived autoInverse)
Button.default.borderColor=#4c708c Button.default.borderColor=#4c708c
Button.default.hoverBorderColor=#537699 Button.default.hoverBorderColor=#537699
Button.default.focusedBorderColor=#537699 Button.default.focusedBorderColor=#537699
Button.default.focusColor=#43688c Button.default.focusColor=#43688c
Button.default.boldText=true Button.default.boldText=true
Button.toolbar.hoverBackground=#4c5052 Button.toolbar.hoverBackground=lighten($Button.background,1%,derived autoInverse)
Button.toolbar.pressedBackground=#555a5d Button.toolbar.pressedBackground=lighten($Button.background,4%,derived autoInverse)
#---- CheckBox ---- #---- CheckBox ----
@@ -105,8 +101,8 @@ CheckBox.icon.hoverBorderColor=$CheckBox.icon.focusedBorderColor
CheckBox.icon.selectedFocusedBorderColor=#466D94 CheckBox.icon.selectedFocusedBorderColor=#466D94
CheckBox.icon.background=#43494A CheckBox.icon.background=#43494A
CheckBox.icon.disabledBackground=@background CheckBox.icon.disabledBackground=@background
CheckBox.icon.hoverBackground=@buttonHoverBackground CheckBox.icon.hoverBackground=lighten($CheckBox.icon.background,3%,derived autoInverse)
CheckBox.icon.pressedBackground=@buttonPressedBackground CheckBox.icon.pressedBackground=lighten($CheckBox.icon.background,6%,derived autoInverse)
CheckBox.icon.selectedBackground=#43494A CheckBox.icon.selectedBackground=#43494A
CheckBox.icon.checkmarkColor=#A7A7A7 CheckBox.icon.checkmarkColor=#A7A7A7
CheckBox.icon.disabledCheckmarkColor=#606060 CheckBox.icon.disabledCheckmarkColor=#606060
@@ -151,8 +147,8 @@ InternalFrame.inactiveTitleForeground=@disabledText
InternalFrame.activeBorderColor=lighten($Component.borderColor,10%) InternalFrame.activeBorderColor=lighten($Component.borderColor,10%)
InternalFrame.inactiveBorderColor=$Component.borderColor InternalFrame.inactiveBorderColor=$Component.borderColor
InternalFrame.buttonHoverBackground=lighten(10%,autoInverse) InternalFrame.buttonHoverBackground=lighten($InternalFrame.activeTitleBackground,10%,derived autoInverse)
InternalFrame.buttonPressedBackground=lighten(20%,autoInverse) InternalFrame.buttonPressedBackground=lighten($InternalFrame.activeTitleBackground,20%,derived autoInverse)
InternalFrame.closeHoverBackground=lazy(Actions.Red) InternalFrame.closeHoverBackground=lazy(Actions.Red)
InternalFrame.closePressedBackground=darken(Actions.Red,10%,lazy) InternalFrame.closePressedBackground=darken(Actions.Red,10%,lazy)
InternalFrame.closeHoverForeground=#fff InternalFrame.closeHoverForeground=#fff
@@ -218,7 +214,7 @@ Separator.foreground=#515151
Slider.trackColor=#646464 Slider.trackColor=#646464
Slider.thumbColor=#A6A6A6 Slider.thumbColor=#A6A6A6
Slider.tickColor=#888888 Slider.tickColor=#888888
Slider.hoverColor=darken(15%,autoInverse) Slider.hoverColor=darken($Slider.thumbColor,15%,derived autoInverse)
Slider.disabledForeground=#4c5052 Slider.disabledForeground=#4c5052
@@ -253,11 +249,11 @@ TableHeader.bottomSeparatorColor=$TableHeader.separatorColor
#---- ToggleButton ---- #---- ToggleButton ----
ToggleButton.selectedBackground=#64696C ToggleButton.selectedBackground=lighten($ToggleButton.background,10%,derived autoInverse)
ToggleButton.selectedForeground=@foreground ToggleButton.selectedForeground=@foreground
ToggleButton.disabledSelectedBackground=#525658 ToggleButton.disabledSelectedBackground=lighten($ToggleButton.background,3%,derived autoInverse)
ToggleButton.toolbar.selectedBackground=#5c6164 ToggleButton.toolbar.selectedBackground=lighten($ToggleButton.background,7%,derived autoInverse)
#---- ToolTip ---- #---- ToolTip ----

View File

@@ -32,10 +32,6 @@
@cellFocusColor=#000000 @cellFocusColor=#000000
@icon=#afafaf @icon=#afafaf
# Button
@buttonHoverBackground=darken(3%,autoInverse)
@buttonPressedBackground=darken(10%,autoInverse)
# Drop (use lazy colors for IntelliJ platform themes, which usually do not specify these colors) # Drop (use lazy colors for IntelliJ platform themes, which usually do not specify these colors)
@dropCellBackground=lighten(List.selectionBackground,10%,lazy) @dropCellBackground=lighten(List.selectionBackground,10%,lazy)
@dropCellForeground=lazy(List.selectionForeground) @dropCellForeground=lazy(List.selectionForeground)
@@ -74,8 +70,8 @@ controlDkShadow=darken($controlShadow,15%)
Button.background=#ffffff Button.background=#ffffff
Button.focusedBackground=#e3f1fa Button.focusedBackground=#e3f1fa
Button.hoverBackground=@buttonHoverBackground Button.hoverBackground=darken($Button.background,3%,derived autoInverse)
Button.pressedBackground=@buttonPressedBackground Button.pressedBackground=darken($Button.background,10%,derived autoInverse)
Button.borderColor=$Component.borderColor Button.borderColor=$Component.borderColor
Button.disabledBorderColor=$Component.disabledBorderColor Button.disabledBorderColor=$Component.disabledBorderColor
@@ -85,16 +81,16 @@ Button.hoverBorderColor=$Button.focusedBorderColor
Button.default.background=$Button.background Button.default.background=$Button.background
Button.default.foreground=@foreground Button.default.foreground=@foreground
Button.default.focusedBackground=$Button.focusedBackground Button.default.focusedBackground=$Button.focusedBackground
Button.default.hoverBackground=@buttonHoverBackground Button.default.hoverBackground=$Button.hoverBackground
Button.default.pressedBackground=@buttonPressedBackground Button.default.pressedBackground=$Button.pressedBackground
Button.default.borderColor=#4F9EE3 Button.default.borderColor=#4F9EE3
Button.default.hoverBorderColor=$Button.hoverBorderColor Button.default.hoverBorderColor=$Button.hoverBorderColor
Button.default.focusedBorderColor=$Button.focusedBorderColor Button.default.focusedBorderColor=$Button.focusedBorderColor
Button.default.focusColor=$Component.focusColor Button.default.focusColor=$Component.focusColor
Button.default.borderWidth=2 Button.default.borderWidth=2
Button.toolbar.hoverBackground=#dfdfdf Button.toolbar.hoverBackground=darken($Button.background,12%,derived autoInverse)
Button.toolbar.pressedBackground=#d8d8d8 Button.toolbar.pressedBackground=darken($Button.background,15%,derived autoInverse)
#---- CheckBox ---- #---- CheckBox ----
@@ -107,8 +103,8 @@ CheckBox.icon.hoverBorderColor=$CheckBox.icon.focusedBorderColor
CheckBox.icon.background=#FFFFFF CheckBox.icon.background=#FFFFFF
CheckBox.icon.disabledBackground=@background CheckBox.icon.disabledBackground=@background
CheckBox.icon.focusedBackground=$Button.focusedBackground CheckBox.icon.focusedBackground=$Button.focusedBackground
CheckBox.icon.hoverBackground=@buttonHoverBackground CheckBox.icon.hoverBackground=$Button.hoverBackground
CheckBox.icon.pressedBackground=@buttonPressedBackground CheckBox.icon.pressedBackground=$Button.pressedBackground
CheckBox.icon.selectedBackground=#FFFFFF CheckBox.icon.selectedBackground=#FFFFFF
CheckBox.icon.checkmarkColor=#4F9EE3 CheckBox.icon.checkmarkColor=#4F9EE3
CheckBox.icon.disabledCheckmarkColor=#ABABAB CheckBox.icon.disabledCheckmarkColor=#ABABAB
@@ -158,8 +154,8 @@ InternalFrame.inactiveTitleForeground=@disabledText
InternalFrame.activeBorderColor=darken($Component.borderColor,20%) InternalFrame.activeBorderColor=darken($Component.borderColor,20%)
InternalFrame.inactiveBorderColor=$Component.borderColor InternalFrame.inactiveBorderColor=$Component.borderColor
InternalFrame.buttonHoverBackground=darken(10%,autoInverse) InternalFrame.buttonHoverBackground=darken($InternalFrame.activeTitleBackground,10%,derived autoInverse)
InternalFrame.buttonPressedBackground=darken(20%,autoInverse) InternalFrame.buttonPressedBackground=darken($InternalFrame.activeTitleBackground,20%,derived autoInverse)
InternalFrame.closeHoverBackground=lazy(Actions.Red) InternalFrame.closeHoverBackground=lazy(Actions.Red)
InternalFrame.closePressedBackground=darken(Actions.Red,10%,lazy) InternalFrame.closePressedBackground=darken(Actions.Red,10%,lazy)
InternalFrame.closeHoverForeground=#fff InternalFrame.closeHoverForeground=#fff
@@ -225,7 +221,7 @@ Separator.foreground=#d1d1d1
Slider.trackColor=#c4c4c4 Slider.trackColor=#c4c4c4
Slider.thumbColor=#6e6e6e Slider.thumbColor=#6e6e6e
Slider.tickColor=#888888 Slider.tickColor=#888888
Slider.hoverColor=lighten(15%,autoInverse) Slider.hoverColor=lighten($Slider.thumbColor,15%,derived autoInverse)
Slider.disabledForeground=#c0c0c0 Slider.disabledForeground=#c0c0c0
@@ -260,11 +256,11 @@ TableHeader.bottomSeparatorColor=$TableHeader.separatorColor
#---- ToggleButton ---- #---- ToggleButton ----
ToggleButton.selectedBackground=#cfcfcf ToggleButton.selectedBackground=darken($ToggleButton.background,20%,derived autoInverse)
ToggleButton.selectedForeground=@foreground ToggleButton.selectedForeground=@foreground
ToggleButton.disabledSelectedBackground=#dfdfdf ToggleButton.disabledSelectedBackground=darken($ToggleButton.background,13%,derived autoInverse)
ToggleButton.toolbar.selectedBackground=#cfcfcf ToggleButton.toolbar.selectedBackground=$ToggleButton.selectedBackground
#---- ToolTip ---- #---- ToolTip ----

View File

@@ -16,6 +16,16 @@
#---- Button ---- #---- Button ----
Button.startBackground=$Button.background
Button.endBackground=$Button.background
Button.startBorderColor=$Button.borderColor
Button.endBorderColor=$Button.borderColor
Button.default.startBackground=$Button.default.background
Button.default.endBackground=$Button.default.background
Button.default.startBorderColor=$Button.default.borderColor
Button.default.endBorderColor=$Button.default.borderColor
Button.hoverBorderColor=null Button.hoverBorderColor=null
Button.default.hoverBorderColor=null Button.default.hoverBorderColor=null
@@ -23,3 +33,32 @@ Button.default.hoverBorderColor=null
#---- HelpButton ---- #---- HelpButton ----
HelpButton.hoverBorderColor=null HelpButton.hoverBorderColor=null
#---- ToggleButton ----
ToggleButton.startBackground=$ToggleButton.background
ToggleButton.endBackground=$ToggleButton.background
[dark]ToggleButton.selectedBackground=lighten($ToggleButton.background,15%,derived autoInverse)
[dark]ToggleButton.disabledSelectedBackground=lighten($ToggleButton.background,5%,derived autoInverse)
#---- theme specific ----
[Gruvbox_Dark_Hard]ToggleButton.selectedBackground=$ToggleButton.selectedBackground
[Gruvbox_Dark_Hard]ToggleButton.toolbar.selectedBackground=$ToggleButton.toolbar.selectedBackground
[Gruvbox_Dark_Medium]ToggleButton.selectedBackground=$ToggleButton.selectedBackground
[Gruvbox_Dark_Medium]ToggleButton.toolbar.selectedBackground=$ToggleButton.toolbar.selectedBackground
[Gruvbox_Dark_Soft]ToggleButton.selectedBackground=$ToggleButton.selectedBackground
[Gruvbox_Dark_Soft]ToggleButton.toolbar.selectedBackground=$ToggleButton.toolbar.selectedBackground
[Hiberbee_Dark]ToggleButton.selectedBackground=$ToggleButton.selectedBackground
[Hiberbee_Dark]ToggleButton.selectedBackground=$ToggleButton.selectedBackground
[Hiberbee_Dark]ToggleButton.toolbar.selectedBackground=$ToggleButton.toolbar.selectedBackground
[High_contrast]ToggleButton.selectedBackground=#fff
[High_contrast]ToggleButton.selectedForeground=#000
[High_contrast]ToggleButton.disabledSelectedBackground=#444
[High_contrast]ToggleButton.toolbar.selectedBackground=#fff

View File

@@ -30,6 +30,7 @@ plugins {
dependencies { dependencies {
implementation( project( ":flatlaf-core" ) ) implementation( project( ":flatlaf-core" ) )
implementation( project( ":flatlaf-extras" ) ) implementation( project( ":flatlaf-extras" ) )
implementation( project( ":flatlaf-intellij-themes" ) )
implementation( "com.miglayout:miglayout-swing:5.2" ) implementation( "com.miglayout:miglayout-swing:5.2" )
implementation( "com.jgoodies:jgoodies-forms:1.9.0" ) implementation( "com.jgoodies:jgoodies-forms:1.9.0" )
} }
@@ -38,6 +39,7 @@ tasks {
jar { jar {
dependsOn( ":flatlaf-core:jar" ) dependsOn( ":flatlaf-core:jar" )
dependsOn( ":flatlaf-extras:jar" ) dependsOn( ":flatlaf-extras:jar" )
dependsOn( ":flatlaf-intellij-themes:jar" )
manifest { manifest {
attributes( "Main-Class" to "com.formdev.flatlaf.demo.FlatLafDemo" ) attributes( "Main-Class" to "com.formdev.flatlaf.demo.FlatLafDemo" )

View File

@@ -60,7 +60,7 @@ public class DemoPrefs
if( IntelliJTheme.ThemeLaf.class.getName().equals( lafClassName ) ) { if( IntelliJTheme.ThemeLaf.class.getName().equals( lafClassName ) ) {
String theme = state.get( KEY_LAF_THEME, "" ); String theme = state.get( KEY_LAF_THEME, "" );
if( theme.startsWith( RESOURCE_PREFIX ) ) if( theme.startsWith( RESOURCE_PREFIX ) )
IntelliJTheme.install( IJThemesPanel.class.getResourceAsStream( theme.substring( RESOURCE_PREFIX.length() ) ) ); IntelliJTheme.install( IJThemesPanel.class.getResourceAsStream( IJThemesPanel.THEMES_PACKAGE + theme.substring( RESOURCE_PREFIX.length() ) ) );
else if( theme.startsWith( FILE_PREFIX ) ) else if( theme.startsWith( FILE_PREFIX ) )
FlatLaf.install( IntelliJTheme.createLaf( new FileInputStream( theme.substring( FILE_PREFIX.length() ) ) ) ); FlatLaf.install( IntelliJTheme.createLaf( new FileInputStream( theme.substring( FILE_PREFIX.length() ) ) ) );
else else

View File

@@ -0,0 +1,170 @@
/*
* Copyright 2020 FormDev Software GmbH
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.formdev.flatlaf.demo.intellijthemes;
import java.io.File;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.StandardOpenOption;
/**
* This tool creates look and feel classes for all themes listed in themes.json.
*
* @author Karl Tauber
*/
public class IJThemesClassGenerator
{
public static void main( String[] args ) {
IJThemesManager themesManager = new IJThemesManager();
themesManager.loadBundledThemes();
String toPath = "../flatlaf-intellij-themes/src/main/java" + IJThemesPanel.THEMES_PACKAGE + "..";
StringBuilder allInfos = new StringBuilder();
for( IJThemeInfo ti : themesManager.bundledThemes ) {
if( ti.sourceCodeUrl == null || ti.sourceCodePath == null )
continue;
generateClass( ti, toPath, allInfos );
}
Path out = new File( toPath, "FlatAllIJThemes.java" ).toPath();
String allThemes = CLASS_HEADER + ALL_THEMES_TEMPLATE.replace( "${allInfos}", allInfos );
writeFile( out, allThemes );
}
private static void generateClass( IJThemeInfo ti, String toPath, StringBuilder allInfos ) {
String resourceName = ti.resourceName;
String resourcePath = null;
int resSep = resourceName.indexOf( '/' );
if( resSep >= 0 ) {
resourcePath = resourceName.substring( 0, resSep );
resourceName = resourceName.substring( resSep + 1 );
}
String name = ti.name;
int nameSep = name.indexOf( '/' );
if( nameSep >= 0 )
name = name.substring( nameSep + 1 ).trim();
StringBuilder buf = new StringBuilder();
for( String n : name.split( " " ) ) {
if( n.length() == 0 || n.equals( "-" ) )
continue;
if( Character.isUpperCase( n.charAt( 0 ) ) )
buf.append( n );
else
buf.append( Character.toUpperCase( n.charAt( 0 ) ) ).append( n.substring( 1 ) );
}
String subPackage = (resourcePath != null) ? '.' + resourcePath.replace( "-", "" ) : "";
String themeClass = "Flat" + buf + "IJTheme";
String themeFile = resourceName;
String classBody = CLASS_HEADER + CLASS_TEMPLATE
.replace( "${subPackage}", subPackage )
.replace( "${themeClass}", themeClass )
.replace( "${themeFile}", themeFile );
File toDir = new File( toPath );
if( resourcePath != null )
toDir = new File( toDir, resourcePath.replace( "-", "" ) );
Path out = new File( toDir, themeClass + ".java" ).toPath();
writeFile( out, classBody );
if( allInfos.length() > 0 )
allInfos.append( '\n' );
allInfos.append( THEME_TEMPLATE
.replace( "${subPackage}", subPackage )
.replace( "${themeClass}", themeClass )
.replace( "${themeName}", name ) );
}
private static void writeFile( Path out, String content ) {
try {
Files.write( out, content.getBytes( StandardCharsets.ISO_8859_1 ),
StandardOpenOption.CREATE, StandardOpenOption.TRUNCATE_EXISTING );
} catch( IOException ex ) {
ex.printStackTrace();
}
}
private static final String CLASS_HEADER =
"/*\n" +
" * Copyright 2020 FormDev Software GmbH\n" +
" *\n" +
" * Licensed under the Apache License, Version 2.0 (the \"License\");\n" +
" * you may not use this file except in compliance with the License.\n" +
" * You may obtain a copy of the License at\n" +
" *\n" +
" * https://www.apache.org/licenses/LICENSE-2.0\n" +
" *\n" +
" * Unless required by applicable law or agreed to in writing, software\n" +
" * distributed under the License is distributed on an \"AS IS\" BASIS,\n" +
" * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n" +
" * See the License for the specific language governing permissions and\n" +
" * limitations under the License.\n" +
" */\n" +
"\n";
private static final String CLASS_TEMPLATE =
"package com.formdev.flatlaf.intellijthemes${subPackage};\n" +
"\n" +
"import com.formdev.flatlaf.IntelliJTheme;\n" +
"\n" +
"/**\n" +
" * @author Karl Tauber\n" +
" */\n" +
"public class ${themeClass}\n" +
" extends IntelliJTheme.ThemeLaf\n" +
"{\n" +
" public static boolean install( ) {\n" +
" try {\n" +
" return install( new ${themeClass}() );\n" +
" } catch( RuntimeException ex ) {\n" +
" return false;\n" +
" }\n" +
" }\n" +
"\n" +
" public ${themeClass}() {\n" +
" super( Utils.loadTheme( \"${themeFile}\" ) );\n" +
" }\n" +
"}\n";
private static final String ALL_THEMES_TEMPLATE =
"package com.formdev.flatlaf.intellijthemes;\n" +
"\n" +
"import javax.swing.UIManager.LookAndFeelInfo;\n" +
"\n" +
"/**\n" +
" * @author Karl Tauber\n" +
" */\n" +
"public class FlatAllIJThemes\n" +
"{\n" +
" public static final LookAndFeelInfo[] INFOS = {\n" +
"${allInfos}\n" +
" };\n" +
"}\n";
private static final String THEME_TEMPLATE =
" new LookAndFeelInfo( \"${themeName}\", \"com.formdev.flatlaf.intellijthemes${subPackage}.${themeClass}\" ),";
}

View File

@@ -60,6 +60,8 @@ import net.miginfocom.swing.*;
public class IJThemesPanel public class IJThemesPanel
extends JPanel extends JPanel
{ {
public static final String THEMES_PACKAGE = "/com/formdev/flatlaf/intellijthemes/themes/";
private final IJThemesManager themesManager = new IJThemesManager(); private final IJThemesManager themesManager = new IJThemesManager();
private final List<IJThemeInfo> themes = new ArrayList<>(); private final List<IJThemeInfo> themes = new ArrayList<>();
private final HashMap<Integer, String> categories = new HashMap<>(); private final HashMap<Integer, String> categories = new HashMap<>();
@@ -237,7 +239,7 @@ public class IJThemesPanel
showInformationDialog( "Failed to load '" + themeInfo.themeFile + "'.", ex ); showInformationDialog( "Failed to load '" + themeInfo.themeFile + "'.", ex );
} }
} else { } else {
IntelliJTheme.install( getClass().getResourceAsStream( themeInfo.resourceName ) ); IntelliJTheme.install( getClass().getResourceAsStream( THEMES_PACKAGE + themeInfo.resourceName ) );
DemoPrefs.getState().put( DemoPrefs.KEY_LAF_THEME, DemoPrefs.RESOURCE_PREFIX + themeInfo.resourceName ); DemoPrefs.getState().put( DemoPrefs.KEY_LAF_THEME, DemoPrefs.RESOURCE_PREFIX + themeInfo.resourceName );
} }
@@ -260,7 +262,7 @@ public class IJThemesPanel
// save theme // save theme
try { try {
Files.copy( getClass().getResourceAsStream( themeInfo.resourceName ), Files.copy( getClass().getResourceAsStream( THEMES_PACKAGE + themeInfo.resourceName ),
file.toPath(), StandardCopyOption.REPLACE_EXISTING ); file.toPath(), StandardCopyOption.REPLACE_EXISTING );
} catch( IOException ex ) { } catch( IOException ex ) {
showInformationDialog( "Failed to save theme to '" + file + "'.", ex ); showInformationDialog( "Failed to save theme to '" + file + "'.", ex );
@@ -273,7 +275,7 @@ public class IJThemesPanel
File licenseFile = new File( file.getParentFile(), File licenseFile = new File( file.getParentFile(),
StringUtils.removeTrailing( file.getName(), ".theme.json" ) + StringUtils.removeTrailing( file.getName(), ".theme.json" ) +
themeInfo.licenseFile.substring( themeInfo.licenseFile.indexOf( '.' ) ) ); themeInfo.licenseFile.substring( themeInfo.licenseFile.indexOf( '.' ) ) );
Files.copy( getClass().getResourceAsStream( themeInfo.licenseFile ), Files.copy( getClass().getResourceAsStream( THEMES_PACKAGE + themeInfo.licenseFile ),
licenseFile.toPath(), StandardCopyOption.REPLACE_EXISTING ); licenseFile.toPath(), StandardCopyOption.REPLACE_EXISTING );
} catch( IOException ex ) { } catch( IOException ex ) {
showInformationDialog( "Failed to save theme license to '" + file + "'.", ex ); showInformationDialog( "Failed to save theme license to '" + file + "'.", ex );

View File

@@ -46,7 +46,7 @@ public class IJThemesUpdater
else if( fromUrl.contains( "gitlab.com" ) ) else if( fromUrl.contains( "gitlab.com" ) )
fromUrl = fromUrl.replace( "/blob/", "/raw/" ); fromUrl = fromUrl.replace( "/blob/", "/raw/" );
String toPath = "src/main/resources/com/formdev/flatlaf/demo/intellijthemes/" + ti.resourceName; String toPath = "../flatlaf-intellij-themes/src/main/resources" + IJThemesPanel.THEMES_PACKAGE + ti.resourceName;
download( fromUrl, toPath ); download( fromUrl, toPath );
} }

View File

@@ -1,21 +0,0 @@
The MIT License (MIT)
Copyright (c) 2016 CloudCannon
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

View File

@@ -1,119 +0,0 @@
{
"name": "IntelliJ Light Preview",
"dark": false,
"author": "",
"editorScheme": "/Light.xml",
"ui": {
"*": {
"selectionBackground": "#2675BF",
"selectionBackgroundInactive": "#D5D5D5",
"selectionInactiveBackground": "#D5D5D5",
"disabledForeground": "#8C8C8C",
"disabledText": "#8C8C8C",
"inactiveForeground": "#8C8C8C",
"infoForeground": "#808080",
"modifiedItemForeground": "#005ad9",
"acceleratorSelectionForeground": "#FFFFFF",
"separatorColor": "#d1d1d1",
"separatorForeground": "#999999"
},
"Borders": {
"color": "#D1D1D1",
"ContrastBorderColor": "#D1D1D1"
},
"Button": {
"shadowColor": "#A6A6A620",
"startBorderColor": "#C4C4C4",
"endBorderColor": "#C4C4C4",
"default": {
"foreground": "#FFFFFF",
"startBackground": "#528CC7",
"endBackground": "#4989CC",
"startBorderColor": "#487EB8",
"endBorderColor": "#346DAD",
"shadowColor": "#A6A6A650",
"focusedBorderColor": "#A9C9F5"
}
},
"ComboBox": {
"background": "#FFFFFF",
"nonEditableBackground": "#FFFFFF",
"ArrowButton.background": "#fafafa"
},
"ComboBoxButton.background": "#FFFFFF",
"CompletionPopup": {
"selectionBackground": "#c5dffc",
"selectionInactiveBackground": "#e0e0e0"
},
"Component.borderColor": "#C4C4C4",
"DefaultTabs.background": "#F2F2F2",
"EditorTabs.underlinedTabBackground": "#ffffff",
"Editor": {
"background": "#cccccc",
"foreground": "#737373",
"shortcutForeground": "#4274A6"
},
"Label.errorForeground": "#C7222D",
"Link": {
"activeForeground": "#2470B3",
"hoverForeground": "#2470B3",
"pressedForeground": "#2470B3",
"visitedForeground": "#2470B3",
"secondaryForeground": "#77a8d9"
},
"Notification": {
"borderColor": "#D1D1D1"
},
"Menu.borderColor": "#d9d9d9",
"Panel.background": "#F2F2F2",
"PasswordField.background": "#FFFFFF",
"Popup": {
"separatorColor": "#d9d9d9",
"Advertiser.borderColor": "#D1D1D1",
"borderColor": "#adadad"
},
"ProgressBar": {
"trackColor": "#D1D1D1",
"progressColor": "#1E82E6",
"indeterminateStartColor": "#91C5F2",
"indeterminateEndColor": "#1E82E6"
},
"StatusBar.borderColor": "#D1D1D1",
"ToolWindow.Header.inactiveBackground": "#F2F2F2",
"Tree.rowHeight": 20
},
"icons": {
"ColorPalette": {
"Checkbox.Border.Default": "#b0b0b0",
"Checkbox.Background.Selected": "#4F9EE3",
"Checkbox.Border.Selected": "#4B97D9"
}
}
}

View File

@@ -1,127 +0,0 @@
{
"name": "gruvbox-theme",
"dark": true,
"author": "Vincent Parizet",
"editorScheme": "/gruvbox_theme.xml",
"ui": {
"*": {
"background": "#282828",
"foreground": "#fbf1c7",
"infoForeground": "#ebdbb2",
"lightSelectionBackground": "#3c3836",
"selectionBackground": "#4F4945",
"selectionForeground": "#fbf1c7",
"selectionBackgroundInactive": "#3c3836",
"selectedBackground": "#1d2021",
"selectedForeground": "#fbf1c7",
"selectedInactiveBackground": "#3c3836",
"selectedBackgroundInactive": "#3c3836",
"hoverBackground": "#28282866",
"borderColor": "#3c3836",
"disabledBorderColor": "#1d2021",
"separatorColor": "#3c3836"
},
"ActionButton": {
"hoverBackground": "#504945"
},
"Button": {
"startBackground": "#282828",
"endBackground": "#282828",
"startBorderColor": "#504945",
"endBorderColor": "#504945",
"default": {
"foreground": "#fbf1c7",
"startBackground": "#32302F",
"endBackground": "#32302F",
"startBorderColor": "#4F4945",
"endBorderColor": "#4F4945",
"focusedBorderColor": "#282828"
}
},
"ComboBox": {
"nonEditableBackground": "#282828",
"ArrowButton": {
"iconColor": "#fbf1c7",
"disabledIconColor": "#fbf1c7",
"nonEditableBackground": "#282828"
}
},
"EditorTabs": {
"selectedBackground": "#3c3836",
"underlineColor": "#83a598",
"inactiveMaskColor": "#28282866"
},
"ToolWindow": {
"Header": {
"background": "#3c3836",
"inactiveBackground": "#282828"
},
"HeaderTab": {
"selectedInactiveBackground": "#1d2021",
"hoverInactiveBackground": "#1d2021"
}
},
"Table": {
"stripeColor": "#3c3836",
"lightSelectionForeground": "#fbf1c7",
"lightSelectionInactiveForeground":"#a89984",
"lightSelectionBackground": "#504945",
"lightSelectionInactiveBackground":"#282828"
},
"FileColor": {
"Yellow": "#fabd2f22",
"Green": "#b8bb2622",
"Blue": "#83a59822",
"Violet": "#d3869b22",
"Orange": "#fe801922",
"Rose": "#cc241d22"
},
"Link": {
"activeForeground": "#83a598",
"hoverForeground": "#83a598",
"pressedForeground": "#83a598",
"visitedForeground": "#83a598"
}
},
"icons": {
"ColorPalette": {
"Actions.Grey": "#928374",
"Actions.Red": "#fb4934",
"Actions.Yellow": "#fabd2f",
"Actions.Green": "#98971a",
"Actions.Blue": "#458588",
"Actions.GreyInline.Dark": "#fbf1c7",
"Objects.Grey": "#928374FF",
"Objects.RedStatus": "#fb4934FF",
"Objects.Red": "#fb4934FF",
"Objects.Pink": "#d3869bFF",
"Objects.Yellow": "#fabd2fFF",
"Objects.Green": "#98971aFF",
"Objects.Blue": "#458588FF",
"Objects.Purple": "#b16286FF",
"Objects.BlackText": "#000000FF",
"Objects.YellowDark": "#d79921FF",
"Objects.GreenAndroid": "#b8bb26FF",
"Checkbox.Background.Default.Dark": "#282828",
"Checkbox.Border.Default.Dark": "#fbf1c7",
"Checkbox.Foreground.Selected.Dark": "#fbf1c7",
"Checkbox.Focus.Wide.Dark": "#458588",
"Checkbox.Focus.Thin.Default.Dark": "#458588",
"Checkbox.Focus.Thin.Selected.Dark": "#458588",
"Checkbox.Background.Disabled.Dark": "#282828",
"Checkbox.Border.Disabled.Dark": "#a89984",
"Checkbox.Foreground.Disabled.Dark": "#a89984"
}
}
}

View File

@@ -69,19 +69,33 @@
"sourceCodeUrl": "https://github.com/OlyaB/GreyTheme", "sourceCodeUrl": "https://github.com/OlyaB/GreyTheme",
"sourceCodePath": "blob/master/src/Gray.theme.json" "sourceCodePath": "blob/master/src/Gray.theme.json"
}, },
"gruvbox_theme.theme.json": { "gruvbox_dark_hard.theme.json": {
"name": "Gruvbox", "name": "Gruvbox Dark Hard",
"license": "MIT", "license": "MIT",
"licenseFile": "gruvbox_theme.LICENSE.txt", "licenseFile": "gruvbox_theme.LICENSE.txt",
"sourceCodeUrl": "https://github.com/Vincent-P/gruvbox-intellij-theme", "sourceCodeUrl": "https://github.com/Vincent-P/gruvbox-intellij-theme",
"sourceCodePath": "blob/master/src/main/resources/gruvbox_theme.theme.json" "sourceCodePath": "blob/master/src/main/resources/gruvbox_dark_hard.theme.json"
}, },
"Hiberbee.theme.json": { "gruvbox_dark_medium.theme.json": {
"name": "Hiberbee", "name": "Gruvbox Dark Medium",
"license": "MIT",
"licenseFile": "gruvbox_theme.LICENSE.txt",
"sourceCodeUrl": "https://github.com/Vincent-P/gruvbox-intellij-theme",
"sourceCodePath": "blob/master/src/main/resources/gruvbox_dark_medium.theme.json"
},
"gruvbox_dark_soft.theme.json": {
"name": "Gruvbox Dark Soft",
"license": "MIT",
"licenseFile": "gruvbox_theme.LICENSE.txt",
"sourceCodeUrl": "https://github.com/Vincent-P/gruvbox-intellij-theme",
"sourceCodePath": "blob/master/src/main/resources/gruvbox_dark_soft.theme.json"
},
"HiberbeeDark.theme.json": {
"name": "Hiberbee Dark",
"license": "MIT", "license": "MIT",
"licenseFile": "Hiberbee.LICENSE.txt", "licenseFile": "Hiberbee.LICENSE.txt",
"sourceCodeUrl": "https://github.com/Hiberbee/code-highlight-themes", "sourceCodeUrl": "https://github.com/Hiberbee/code-highlight-themes",
"sourceCodePath": "blob/master/src/main/resources/Hiberbee.theme.json" "sourceCodePath": "blob/master/src/main/resources/HiberbeeDark.theme.json"
}, },
"HighContrast.theme.json": { "HighContrast.theme.json": {
"name": "High contrast", "name": "High contrast",
@@ -90,13 +104,6 @@
"sourceCodeUrl": "https://github.com/OlyaB/HighContrastTheme", "sourceCodeUrl": "https://github.com/OlyaB/HighContrastTheme",
"sourceCodePath": "blob/master/src/HighContrast.theme.json" "sourceCodePath": "blob/master/src/HighContrast.theme.json"
}, },
"Light.theme.json": {
"name": "IntelliJ Light Preview",
"license": "MIT",
"licenseFile": "Light.LICENSE.txt",
"sourceCodeUrl": "https://github.com/OlyaB/IntelliJLightTheme",
"sourceCodePath": "blob/master/src/Light.theme.json"
},
"LightFlatTheme.theme.json": { "LightFlatTheme.theme.json": {
"name": "Light Flat", "name": "Light Flat",
"license": "MIT", "license": "MIT",

View File

@@ -0,0 +1,137 @@
/*
* Copyright 2020 FormDev Software GmbH
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
plugins {
`java-library`
`maven-publish`
id( "com.jfrog.bintray" )
id( "com.jfrog.artifactory" )
}
dependencies {
implementation( project( ":flatlaf-core" ) )
}
tasks {
assemble {
dependsOn(
"sourcesJar",
"javadocJar"
)
}
javadoc {
options {
this as StandardJavadocDocletOptions
tags = listOf( "uiDefault", "clientProperty" )
}
isFailOnError = false
}
register( "sourcesJar", Jar::class ) {
archiveClassifier.set( "sources" )
from( sourceSets.main.get().allJava )
}
register( "javadocJar", Jar::class ) {
archiveClassifier.set( "javadoc" )
from( javadoc )
}
}
publishing {
publications {
create<MavenPublication>( "maven" ) {
artifactId = "flatlaf-intellij-themes"
groupId = "com.formdev"
from( components["java"] )
artifact( tasks["sourcesJar"] )
artifact( tasks["javadocJar"] )
pom {
name.set( "FlatLaf IntelliJ Themes Pack" )
description.set( "Flat Look and Feel IntelliJ Themes Pack" )
url.set( "https://github.com/JFormDesigner/FlatLaf" )
licenses {
license {
name.set( "The Apache License, Version 2.0" )
url.set( "https://www.apache.org/licenses/LICENSE-2.0.txt" )
}
}
developers {
developer {
name.set( "Karl Tauber" )
organization.set( "FormDev Software GmbH" )
organizationUrl.set( "https://www.formdev.com/" )
}
}
scm {
url.set( "https://github.com/JFormDesigner/FlatLaf" )
}
}
}
}
}
bintray {
user = rootProject.extra["bintray.user"] as String?
key = rootProject.extra["bintray.key"] as String?
setPublications( "maven" )
with( pkg ) {
repo = "flatlaf"
name = "flatlaf-intellij-themes"
setLicenses( "Apache-2.0" )
vcsUrl = "https://github.com/JFormDesigner/FlatLaf"
with( version ) {
name = project.version.toString()
}
publish = rootProject.extra["bintray.publish"] as Boolean
dryRun = rootProject.extra["bintray.dryRun"] as Boolean
}
}
artifactory {
setContextUrl( "https://oss.jfrog.org" )
publish( closureOf<org.jfrog.gradle.plugin.artifactory.dsl.PublisherConfig> {
repository( delegateClosureOf<groovy.lang.GroovyObject> {
setProperty( "repoKey", "oss-snapshot-local" )
setProperty( "username", rootProject.extra["bintray.user"] as String? )
setProperty( "password", rootProject.extra["bintray.key"] as String? )
} )
defaults( delegateClosureOf<groovy.lang.GroovyObject> {
invokeMethod( "publications", "maven" )
setProperty( "publishArtifacts", true )
setProperty( "publishPom", true )
} )
} )
resolve( delegateClosureOf<org.jfrog.gradle.plugin.artifactory.dsl.ResolverConfig> {
setProperty( "repoKey", "jcenter" )
} )
}

View File

@@ -0,0 +1,82 @@
/*
* Copyright 2020 FormDev Software GmbH
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.formdev.flatlaf.intellijthemes;
import javax.swing.UIManager.LookAndFeelInfo;
/**
* @author Karl Tauber
*/
public class FlatAllIJThemes
{
public static final LookAndFeelInfo[] INFOS = {
new LookAndFeelInfo( "Arc", "com.formdev.flatlaf.intellijthemes.FlatArcIJTheme" ),
new LookAndFeelInfo( "Arc - Orange", "com.formdev.flatlaf.intellijthemes.FlatArcOrangeIJTheme" ),
new LookAndFeelInfo( "Cyan light", "com.formdev.flatlaf.intellijthemes.FlatCyanLightIJTheme" ),
new LookAndFeelInfo( "Dark Flat", "com.formdev.flatlaf.intellijthemes.FlatDarkFlatIJTheme" ),
new LookAndFeelInfo( "Dark purple", "com.formdev.flatlaf.intellijthemes.FlatDarkPurpleIJTheme" ),
new LookAndFeelInfo( "Dracula", "com.formdev.flatlaf.intellijthemes.FlatDraculaIJTheme" ),
new LookAndFeelInfo( "Gradianto Dark Fuchsia", "com.formdev.flatlaf.intellijthemes.FlatGradiantoDarkFuchsiaIJTheme" ),
new LookAndFeelInfo( "Gradianto Deep Ocean", "com.formdev.flatlaf.intellijthemes.FlatGradiantoDeepOceanIJTheme" ),
new LookAndFeelInfo( "Gradianto Midnight Blue", "com.formdev.flatlaf.intellijthemes.FlatGradiantoMidnightBlueIJTheme" ),
new LookAndFeelInfo( "Gray", "com.formdev.flatlaf.intellijthemes.FlatGrayIJTheme" ),
new LookAndFeelInfo( "Gruvbox Dark Hard", "com.formdev.flatlaf.intellijthemes.FlatGruvboxDarkHardIJTheme" ),
new LookAndFeelInfo( "Gruvbox Dark Medium", "com.formdev.flatlaf.intellijthemes.FlatGruvboxDarkMediumIJTheme" ),
new LookAndFeelInfo( "Gruvbox Dark Soft", "com.formdev.flatlaf.intellijthemes.FlatGruvboxDarkSoftIJTheme" ),
new LookAndFeelInfo( "Hiberbee Dark", "com.formdev.flatlaf.intellijthemes.FlatHiberbeeDarkIJTheme" ),
new LookAndFeelInfo( "High contrast", "com.formdev.flatlaf.intellijthemes.FlatHighContrastIJTheme" ),
new LookAndFeelInfo( "Light Flat", "com.formdev.flatlaf.intellijthemes.FlatLightFlatIJTheme" ),
new LookAndFeelInfo( "Material Design Dark", "com.formdev.flatlaf.intellijthemes.FlatMaterialDesignDarkIJTheme" ),
new LookAndFeelInfo( "Monocai", "com.formdev.flatlaf.intellijthemes.FlatMonocaiIJTheme" ),
new LookAndFeelInfo( "Nord", "com.formdev.flatlaf.intellijthemes.FlatNordIJTheme" ),
new LookAndFeelInfo( "One Dark", "com.formdev.flatlaf.intellijthemes.FlatOneDarkIJTheme" ),
new LookAndFeelInfo( "Solarized Dark", "com.formdev.flatlaf.intellijthemes.FlatSolarizedDarkIJTheme" ),
new LookAndFeelInfo( "Solarized Light", "com.formdev.flatlaf.intellijthemes.FlatSolarizedLightIJTheme" ),
new LookAndFeelInfo( "Spacegray", "com.formdev.flatlaf.intellijthemes.FlatSpacegrayIJTheme" ),
new LookAndFeelInfo( "Vuesion", "com.formdev.flatlaf.intellijthemes.FlatVuesionIJTheme" ),
new LookAndFeelInfo( "Arc Dark", "com.formdev.flatlaf.intellijthemes.materialthemeuilite.FlatArcDarkIJTheme" ),
new LookAndFeelInfo( "Arc Dark Contrast", "com.formdev.flatlaf.intellijthemes.materialthemeuilite.FlatArcDarkContrastIJTheme" ),
new LookAndFeelInfo( "Atom One Dark", "com.formdev.flatlaf.intellijthemes.materialthemeuilite.FlatAtomOneDarkIJTheme" ),
new LookAndFeelInfo( "Atom One Dark Contrast", "com.formdev.flatlaf.intellijthemes.materialthemeuilite.FlatAtomOneDarkContrastIJTheme" ),
new LookAndFeelInfo( "Atom One Light", "com.formdev.flatlaf.intellijthemes.materialthemeuilite.FlatAtomOneLightIJTheme" ),
new LookAndFeelInfo( "Atom One Light Contrast", "com.formdev.flatlaf.intellijthemes.materialthemeuilite.FlatAtomOneLightContrastIJTheme" ),
new LookAndFeelInfo( "Dracula", "com.formdev.flatlaf.intellijthemes.materialthemeuilite.FlatDraculaIJTheme" ),
new LookAndFeelInfo( "Dracula Contrast", "com.formdev.flatlaf.intellijthemes.materialthemeuilite.FlatDraculaContrastIJTheme" ),
new LookAndFeelInfo( "GitHub", "com.formdev.flatlaf.intellijthemes.materialthemeuilite.FlatGitHubIJTheme" ),
new LookAndFeelInfo( "GitHub Contrast", "com.formdev.flatlaf.intellijthemes.materialthemeuilite.FlatGitHubContrastIJTheme" ),
new LookAndFeelInfo( "Light Owl", "com.formdev.flatlaf.intellijthemes.materialthemeuilite.FlatLightOwlIJTheme" ),
new LookAndFeelInfo( "Light Owl Contrast", "com.formdev.flatlaf.intellijthemes.materialthemeuilite.FlatLightOwlContrastIJTheme" ),
new LookAndFeelInfo( "Material Darker", "com.formdev.flatlaf.intellijthemes.materialthemeuilite.FlatMaterialDarkerIJTheme" ),
new LookAndFeelInfo( "Material Darker Contrast", "com.formdev.flatlaf.intellijthemes.materialthemeuilite.FlatMaterialDarkerContrastIJTheme" ),
new LookAndFeelInfo( "Material Deep Ocean", "com.formdev.flatlaf.intellijthemes.materialthemeuilite.FlatMaterialDeepOceanIJTheme" ),
new LookAndFeelInfo( "Material Deep Ocean Contrast", "com.formdev.flatlaf.intellijthemes.materialthemeuilite.FlatMaterialDeepOceanContrastIJTheme" ),
new LookAndFeelInfo( "Material Lighter", "com.formdev.flatlaf.intellijthemes.materialthemeuilite.FlatMaterialLighterIJTheme" ),
new LookAndFeelInfo( "Material Lighter Contrast", "com.formdev.flatlaf.intellijthemes.materialthemeuilite.FlatMaterialLighterContrastIJTheme" ),
new LookAndFeelInfo( "Material Oceanic", "com.formdev.flatlaf.intellijthemes.materialthemeuilite.FlatMaterialOceanicIJTheme" ),
new LookAndFeelInfo( "Material Oceanic Contrast", "com.formdev.flatlaf.intellijthemes.materialthemeuilite.FlatMaterialOceanicContrastIJTheme" ),
new LookAndFeelInfo( "Material Palenight", "com.formdev.flatlaf.intellijthemes.materialthemeuilite.FlatMaterialPalenightIJTheme" ),
new LookAndFeelInfo( "Material Palenight Contrast", "com.formdev.flatlaf.intellijthemes.materialthemeuilite.FlatMaterialPalenightContrastIJTheme" ),
new LookAndFeelInfo( "Monokai Pro", "com.formdev.flatlaf.intellijthemes.materialthemeuilite.FlatMonokaiProIJTheme" ),
new LookAndFeelInfo( "Monokai Pro Contrast", "com.formdev.flatlaf.intellijthemes.materialthemeuilite.FlatMonokaiProContrastIJTheme" ),
new LookAndFeelInfo( "Night Owl", "com.formdev.flatlaf.intellijthemes.materialthemeuilite.FlatNightOwlIJTheme" ),
new LookAndFeelInfo( "Night Owl Contrast", "com.formdev.flatlaf.intellijthemes.materialthemeuilite.FlatNightOwlContrastIJTheme" ),
new LookAndFeelInfo( "Solarized Dark", "com.formdev.flatlaf.intellijthemes.materialthemeuilite.FlatSolarizedDarkIJTheme" ),
new LookAndFeelInfo( "Solarized Dark Contrast", "com.formdev.flatlaf.intellijthemes.materialthemeuilite.FlatSolarizedDarkContrastIJTheme" ),
new LookAndFeelInfo( "Solarized Light", "com.formdev.flatlaf.intellijthemes.materialthemeuilite.FlatSolarizedLightIJTheme" ),
new LookAndFeelInfo( "Solarized Light Contrast", "com.formdev.flatlaf.intellijthemes.materialthemeuilite.FlatSolarizedLightContrastIJTheme" ),
};
}

View File

@@ -0,0 +1,38 @@
/*
* Copyright 2020 FormDev Software GmbH
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.formdev.flatlaf.intellijthemes;
import com.formdev.flatlaf.IntelliJTheme;
/**
* @author Karl Tauber
*/
public class FlatArcIJTheme
extends IntelliJTheme.ThemeLaf
{
public static boolean install( ) {
try {
return install( new FlatArcIJTheme() );
} catch( RuntimeException ex ) {
return false;
}
}
public FlatArcIJTheme() {
super( Utils.loadTheme( "arc-theme.theme.json" ) );
}
}

View File

@@ -0,0 +1,38 @@
/*
* Copyright 2020 FormDev Software GmbH
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.formdev.flatlaf.intellijthemes;
import com.formdev.flatlaf.IntelliJTheme;
/**
* @author Karl Tauber
*/
public class FlatArcOrangeIJTheme
extends IntelliJTheme.ThemeLaf
{
public static boolean install( ) {
try {
return install( new FlatArcOrangeIJTheme() );
} catch( RuntimeException ex ) {
return false;
}
}
public FlatArcOrangeIJTheme() {
super( Utils.loadTheme( "arc-theme-orange.theme.json" ) );
}
}

View File

@@ -0,0 +1,38 @@
/*
* Copyright 2020 FormDev Software GmbH
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.formdev.flatlaf.intellijthemes;
import com.formdev.flatlaf.IntelliJTheme;
/**
* @author Karl Tauber
*/
public class FlatCyanLightIJTheme
extends IntelliJTheme.ThemeLaf
{
public static boolean install( ) {
try {
return install( new FlatCyanLightIJTheme() );
} catch( RuntimeException ex ) {
return false;
}
}
public FlatCyanLightIJTheme() {
super( Utils.loadTheme( "Cyan.theme.json" ) );
}
}

View File

@@ -0,0 +1,38 @@
/*
* Copyright 2020 FormDev Software GmbH
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.formdev.flatlaf.intellijthemes;
import com.formdev.flatlaf.IntelliJTheme;
/**
* @author Karl Tauber
*/
public class FlatDarkFlatIJTheme
extends IntelliJTheme.ThemeLaf
{
public static boolean install( ) {
try {
return install( new FlatDarkFlatIJTheme() );
} catch( RuntimeException ex ) {
return false;
}
}
public FlatDarkFlatIJTheme() {
super( Utils.loadTheme( "DarkFlatTheme.theme.json" ) );
}
}

View File

@@ -0,0 +1,38 @@
/*
* Copyright 2020 FormDev Software GmbH
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.formdev.flatlaf.intellijthemes;
import com.formdev.flatlaf.IntelliJTheme;
/**
* @author Karl Tauber
*/
public class FlatDarkPurpleIJTheme
extends IntelliJTheme.ThemeLaf
{
public static boolean install( ) {
try {
return install( new FlatDarkPurpleIJTheme() );
} catch( RuntimeException ex ) {
return false;
}
}
public FlatDarkPurpleIJTheme() {
super( Utils.loadTheme( "DarkPurple.theme.json" ) );
}
}

View File

@@ -0,0 +1,38 @@
/*
* Copyright 2020 FormDev Software GmbH
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.formdev.flatlaf.intellijthemes;
import com.formdev.flatlaf.IntelliJTheme;
/**
* @author Karl Tauber
*/
public class FlatDraculaIJTheme
extends IntelliJTheme.ThemeLaf
{
public static boolean install( ) {
try {
return install( new FlatDraculaIJTheme() );
} catch( RuntimeException ex ) {
return false;
}
}
public FlatDraculaIJTheme() {
super( Utils.loadTheme( "Dracula.theme.json" ) );
}
}

View File

@@ -0,0 +1,38 @@
/*
* Copyright 2020 FormDev Software GmbH
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.formdev.flatlaf.intellijthemes;
import com.formdev.flatlaf.IntelliJTheme;
/**
* @author Karl Tauber
*/
public class FlatGradiantoDarkFuchsiaIJTheme
extends IntelliJTheme.ThemeLaf
{
public static boolean install( ) {
try {
return install( new FlatGradiantoDarkFuchsiaIJTheme() );
} catch( RuntimeException ex ) {
return false;
}
}
public FlatGradiantoDarkFuchsiaIJTheme() {
super( Utils.loadTheme( "Gradianto_dark_fuchsia.theme.json" ) );
}
}

View File

@@ -0,0 +1,38 @@
/*
* Copyright 2020 FormDev Software GmbH
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.formdev.flatlaf.intellijthemes;
import com.formdev.flatlaf.IntelliJTheme;
/**
* @author Karl Tauber
*/
public class FlatGradiantoDeepOceanIJTheme
extends IntelliJTheme.ThemeLaf
{
public static boolean install( ) {
try {
return install( new FlatGradiantoDeepOceanIJTheme() );
} catch( RuntimeException ex ) {
return false;
}
}
public FlatGradiantoDeepOceanIJTheme() {
super( Utils.loadTheme( "Gradianto_deep_ocean.theme.json" ) );
}
}

View File

@@ -0,0 +1,38 @@
/*
* Copyright 2020 FormDev Software GmbH
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.formdev.flatlaf.intellijthemes;
import com.formdev.flatlaf.IntelliJTheme;
/**
* @author Karl Tauber
*/
public class FlatGradiantoMidnightBlueIJTheme
extends IntelliJTheme.ThemeLaf
{
public static boolean install( ) {
try {
return install( new FlatGradiantoMidnightBlueIJTheme() );
} catch( RuntimeException ex ) {
return false;
}
}
public FlatGradiantoMidnightBlueIJTheme() {
super( Utils.loadTheme( "Gradianto_midnight_blue.theme.json" ) );
}
}

View File

@@ -0,0 +1,38 @@
/*
* Copyright 2020 FormDev Software GmbH
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.formdev.flatlaf.intellijthemes;
import com.formdev.flatlaf.IntelliJTheme;
/**
* @author Karl Tauber
*/
public class FlatGrayIJTheme
extends IntelliJTheme.ThemeLaf
{
public static boolean install( ) {
try {
return install( new FlatGrayIJTheme() );
} catch( RuntimeException ex ) {
return false;
}
}
public FlatGrayIJTheme() {
super( Utils.loadTheme( "Gray.theme.json" ) );
}
}

View File

@@ -0,0 +1,38 @@
/*
* Copyright 2020 FormDev Software GmbH
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.formdev.flatlaf.intellijthemes;
import com.formdev.flatlaf.IntelliJTheme;
/**
* @author Karl Tauber
*/
public class FlatGruvboxDarkHardIJTheme
extends IntelliJTheme.ThemeLaf
{
public static boolean install( ) {
try {
return install( new FlatGruvboxDarkHardIJTheme() );
} catch( RuntimeException ex ) {
return false;
}
}
public FlatGruvboxDarkHardIJTheme() {
super( Utils.loadTheme( "gruvbox_dark_hard.theme.json" ) );
}
}

View File

@@ -0,0 +1,38 @@
/*
* Copyright 2020 FormDev Software GmbH
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.formdev.flatlaf.intellijthemes;
import com.formdev.flatlaf.IntelliJTheme;
/**
* @author Karl Tauber
*/
public class FlatGruvboxDarkMediumIJTheme
extends IntelliJTheme.ThemeLaf
{
public static boolean install( ) {
try {
return install( new FlatGruvboxDarkMediumIJTheme() );
} catch( RuntimeException ex ) {
return false;
}
}
public FlatGruvboxDarkMediumIJTheme() {
super( Utils.loadTheme( "gruvbox_dark_medium.theme.json" ) );
}
}

View File

@@ -0,0 +1,38 @@
/*
* Copyright 2020 FormDev Software GmbH
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.formdev.flatlaf.intellijthemes;
import com.formdev.flatlaf.IntelliJTheme;
/**
* @author Karl Tauber
*/
public class FlatGruvboxDarkSoftIJTheme
extends IntelliJTheme.ThemeLaf
{
public static boolean install( ) {
try {
return install( new FlatGruvboxDarkSoftIJTheme() );
} catch( RuntimeException ex ) {
return false;
}
}
public FlatGruvboxDarkSoftIJTheme() {
super( Utils.loadTheme( "gruvbox_dark_soft.theme.json" ) );
}
}

View File

@@ -0,0 +1,38 @@
/*
* Copyright 2020 FormDev Software GmbH
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.formdev.flatlaf.intellijthemes;
import com.formdev.flatlaf.IntelliJTheme;
/**
* @author Karl Tauber
*/
public class FlatHiberbeeDarkIJTheme
extends IntelliJTheme.ThemeLaf
{
public static boolean install( ) {
try {
return install( new FlatHiberbeeDarkIJTheme() );
} catch( RuntimeException ex ) {
return false;
}
}
public FlatHiberbeeDarkIJTheme() {
super( Utils.loadTheme( "HiberbeeDark.theme.json" ) );
}
}

View File

@@ -0,0 +1,38 @@
/*
* Copyright 2020 FormDev Software GmbH
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.formdev.flatlaf.intellijthemes;
import com.formdev.flatlaf.IntelliJTheme;
/**
* @author Karl Tauber
*/
public class FlatHighContrastIJTheme
extends IntelliJTheme.ThemeLaf
{
public static boolean install( ) {
try {
return install( new FlatHighContrastIJTheme() );
} catch( RuntimeException ex ) {
return false;
}
}
public FlatHighContrastIJTheme() {
super( Utils.loadTheme( "HighContrast.theme.json" ) );
}
}

View File

@@ -0,0 +1,38 @@
/*
* Copyright 2020 FormDev Software GmbH
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.formdev.flatlaf.intellijthemes;
import com.formdev.flatlaf.IntelliJTheme;
/**
* @author Karl Tauber
*/
public class FlatLightFlatIJTheme
extends IntelliJTheme.ThemeLaf
{
public static boolean install( ) {
try {
return install( new FlatLightFlatIJTheme() );
} catch( RuntimeException ex ) {
return false;
}
}
public FlatLightFlatIJTheme() {
super( Utils.loadTheme( "LightFlatTheme.theme.json" ) );
}
}

View File

@@ -0,0 +1,38 @@
/*
* Copyright 2020 FormDev Software GmbH
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.formdev.flatlaf.intellijthemes;
import com.formdev.flatlaf.IntelliJTheme;
/**
* @author Karl Tauber
*/
public class FlatMaterialDesignDarkIJTheme
extends IntelliJTheme.ThemeLaf
{
public static boolean install( ) {
try {
return install( new FlatMaterialDesignDarkIJTheme() );
} catch( RuntimeException ex ) {
return false;
}
}
public FlatMaterialDesignDarkIJTheme() {
super( Utils.loadTheme( "MaterialTheme.theme.json" ) );
}
}

View File

@@ -0,0 +1,38 @@
/*
* Copyright 2020 FormDev Software GmbH
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.formdev.flatlaf.intellijthemes;
import com.formdev.flatlaf.IntelliJTheme;
/**
* @author Karl Tauber
*/
public class FlatMonocaiIJTheme
extends IntelliJTheme.ThemeLaf
{
public static boolean install( ) {
try {
return install( new FlatMonocaiIJTheme() );
} catch( RuntimeException ex ) {
return false;
}
}
public FlatMonocaiIJTheme() {
super( Utils.loadTheme( "Monocai.theme.json" ) );
}
}

View File

@@ -0,0 +1,38 @@
/*
* Copyright 2020 FormDev Software GmbH
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.formdev.flatlaf.intellijthemes;
import com.formdev.flatlaf.IntelliJTheme;
/**
* @author Karl Tauber
*/
public class FlatNordIJTheme
extends IntelliJTheme.ThemeLaf
{
public static boolean install( ) {
try {
return install( new FlatNordIJTheme() );
} catch( RuntimeException ex ) {
return false;
}
}
public FlatNordIJTheme() {
super( Utils.loadTheme( "nord.theme.json" ) );
}
}

View File

@@ -0,0 +1,38 @@
/*
* Copyright 2020 FormDev Software GmbH
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.formdev.flatlaf.intellijthemes;
import com.formdev.flatlaf.IntelliJTheme;
/**
* @author Karl Tauber
*/
public class FlatOneDarkIJTheme
extends IntelliJTheme.ThemeLaf
{
public static boolean install( ) {
try {
return install( new FlatOneDarkIJTheme() );
} catch( RuntimeException ex ) {
return false;
}
}
public FlatOneDarkIJTheme() {
super( Utils.loadTheme( "one_dark.theme.json" ) );
}
}

View File

@@ -0,0 +1,38 @@
/*
* Copyright 2020 FormDev Software GmbH
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.formdev.flatlaf.intellijthemes;
import com.formdev.flatlaf.IntelliJTheme;
/**
* @author Karl Tauber
*/
public class FlatSolarizedDarkIJTheme
extends IntelliJTheme.ThemeLaf
{
public static boolean install( ) {
try {
return install( new FlatSolarizedDarkIJTheme() );
} catch( RuntimeException ex ) {
return false;
}
}
public FlatSolarizedDarkIJTheme() {
super( Utils.loadTheme( "solarized_dark_theme.theme.json" ) );
}
}

View File

@@ -0,0 +1,38 @@
/*
* Copyright 2020 FormDev Software GmbH
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.formdev.flatlaf.intellijthemes;
import com.formdev.flatlaf.IntelliJTheme;
/**
* @author Karl Tauber
*/
public class FlatSolarizedLightIJTheme
extends IntelliJTheme.ThemeLaf
{
public static boolean install( ) {
try {
return install( new FlatSolarizedLightIJTheme() );
} catch( RuntimeException ex ) {
return false;
}
}
public FlatSolarizedLightIJTheme() {
super( Utils.loadTheme( "solarized_light_theme.theme.json" ) );
}
}

View File

@@ -0,0 +1,38 @@
/*
* Copyright 2020 FormDev Software GmbH
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.formdev.flatlaf.intellijthemes;
import com.formdev.flatlaf.IntelliJTheme;
/**
* @author Karl Tauber
*/
public class FlatSpacegrayIJTheme
extends IntelliJTheme.ThemeLaf
{
public static boolean install( ) {
try {
return install( new FlatSpacegrayIJTheme() );
} catch( RuntimeException ex ) {
return false;
}
}
public FlatSpacegrayIJTheme() {
super( Utils.loadTheme( "Spacegray.theme.json" ) );
}
}

View File

@@ -0,0 +1,38 @@
/*
* Copyright 2020 FormDev Software GmbH
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.formdev.flatlaf.intellijthemes;
import com.formdev.flatlaf.IntelliJTheme;
/**
* @author Karl Tauber
*/
public class FlatVuesionIJTheme
extends IntelliJTheme.ThemeLaf
{
public static boolean install( ) {
try {
return install( new FlatVuesionIJTheme() );
} catch( RuntimeException ex ) {
return false;
}
}
public FlatVuesionIJTheme() {
super( Utils.loadTheme( "vuesion_theme.theme.json" ) );
}
}

View File

@@ -0,0 +1,42 @@
/*
* Copyright 2020 FormDev Software GmbH
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.formdev.flatlaf.intellijthemes;
import java.io.IOException;
import java.util.logging.Level;
import java.util.logging.Logger;
import com.formdev.flatlaf.FlatLaf;
import com.formdev.flatlaf.IntelliJTheme;
import com.formdev.flatlaf.json.ParseException;
/**
* @author Karl Tauber
*/
class Utils
{
static final Logger LOG = Logger.getLogger( FlatLaf.class.getName() );
static IntelliJTheme loadTheme( String name ) {
try {
return new IntelliJTheme( Utils.class.getResourceAsStream( "themes/" + name ) );
} catch( ParseException | IOException ex ) {
String msg = "FlatLaf: Failed to load IntelliJ theme '" + name + "'";
LOG.log( Level.SEVERE, msg, ex );
throw new RuntimeException( msg, ex );
}
}
}

View File

@@ -0,0 +1,38 @@
/*
* Copyright 2020 FormDev Software GmbH
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.formdev.flatlaf.intellijthemes.materialthemeuilite;
import com.formdev.flatlaf.IntelliJTheme;
/**
* @author Karl Tauber
*/
public class FlatArcDarkContrastIJTheme
extends IntelliJTheme.ThemeLaf
{
public static boolean install( ) {
try {
return install( new FlatArcDarkContrastIJTheme() );
} catch( RuntimeException ex ) {
return false;
}
}
public FlatArcDarkContrastIJTheme() {
super( Utils.loadTheme( "Arc Dark Contrast.theme.json" ) );
}
}

View File

@@ -0,0 +1,38 @@
/*
* Copyright 2020 FormDev Software GmbH
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.formdev.flatlaf.intellijthemes.materialthemeuilite;
import com.formdev.flatlaf.IntelliJTheme;
/**
* @author Karl Tauber
*/
public class FlatArcDarkIJTheme
extends IntelliJTheme.ThemeLaf
{
public static boolean install( ) {
try {
return install( new FlatArcDarkIJTheme() );
} catch( RuntimeException ex ) {
return false;
}
}
public FlatArcDarkIJTheme() {
super( Utils.loadTheme( "Arc Dark.theme.json" ) );
}
}

View File

@@ -0,0 +1,38 @@
/*
* Copyright 2020 FormDev Software GmbH
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.formdev.flatlaf.intellijthemes.materialthemeuilite;
import com.formdev.flatlaf.IntelliJTheme;
/**
* @author Karl Tauber
*/
public class FlatAtomOneDarkContrastIJTheme
extends IntelliJTheme.ThemeLaf
{
public static boolean install( ) {
try {
return install( new FlatAtomOneDarkContrastIJTheme() );
} catch( RuntimeException ex ) {
return false;
}
}
public FlatAtomOneDarkContrastIJTheme() {
super( Utils.loadTheme( "Atom One Dark Contrast.theme.json" ) );
}
}

View File

@@ -0,0 +1,38 @@
/*
* Copyright 2020 FormDev Software GmbH
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.formdev.flatlaf.intellijthemes.materialthemeuilite;
import com.formdev.flatlaf.IntelliJTheme;
/**
* @author Karl Tauber
*/
public class FlatAtomOneDarkIJTheme
extends IntelliJTheme.ThemeLaf
{
public static boolean install( ) {
try {
return install( new FlatAtomOneDarkIJTheme() );
} catch( RuntimeException ex ) {
return false;
}
}
public FlatAtomOneDarkIJTheme() {
super( Utils.loadTheme( "Atom One Dark.theme.json" ) );
}
}

View File

@@ -0,0 +1,38 @@
/*
* Copyright 2020 FormDev Software GmbH
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.formdev.flatlaf.intellijthemes.materialthemeuilite;
import com.formdev.flatlaf.IntelliJTheme;
/**
* @author Karl Tauber
*/
public class FlatAtomOneLightContrastIJTheme
extends IntelliJTheme.ThemeLaf
{
public static boolean install( ) {
try {
return install( new FlatAtomOneLightContrastIJTheme() );
} catch( RuntimeException ex ) {
return false;
}
}
public FlatAtomOneLightContrastIJTheme() {
super( Utils.loadTheme( "Atom One Light Contrast.theme.json" ) );
}
}

View File

@@ -0,0 +1,38 @@
/*
* Copyright 2020 FormDev Software GmbH
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.formdev.flatlaf.intellijthemes.materialthemeuilite;
import com.formdev.flatlaf.IntelliJTheme;
/**
* @author Karl Tauber
*/
public class FlatAtomOneLightIJTheme
extends IntelliJTheme.ThemeLaf
{
public static boolean install( ) {
try {
return install( new FlatAtomOneLightIJTheme() );
} catch( RuntimeException ex ) {
return false;
}
}
public FlatAtomOneLightIJTheme() {
super( Utils.loadTheme( "Atom One Light.theme.json" ) );
}
}

View File

@@ -0,0 +1,38 @@
/*
* Copyright 2020 FormDev Software GmbH
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.formdev.flatlaf.intellijthemes.materialthemeuilite;
import com.formdev.flatlaf.IntelliJTheme;
/**
* @author Karl Tauber
*/
public class FlatDraculaContrastIJTheme
extends IntelliJTheme.ThemeLaf
{
public static boolean install( ) {
try {
return install( new FlatDraculaContrastIJTheme() );
} catch( RuntimeException ex ) {
return false;
}
}
public FlatDraculaContrastIJTheme() {
super( Utils.loadTheme( "Dracula Contrast.theme.json" ) );
}
}

View File

@@ -0,0 +1,38 @@
/*
* Copyright 2020 FormDev Software GmbH
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.formdev.flatlaf.intellijthemes.materialthemeuilite;
import com.formdev.flatlaf.IntelliJTheme;
/**
* @author Karl Tauber
*/
public class FlatDraculaIJTheme
extends IntelliJTheme.ThemeLaf
{
public static boolean install( ) {
try {
return install( new FlatDraculaIJTheme() );
} catch( RuntimeException ex ) {
return false;
}
}
public FlatDraculaIJTheme() {
super( Utils.loadTheme( "Dracula.theme.json" ) );
}
}

View File

@@ -0,0 +1,38 @@
/*
* Copyright 2020 FormDev Software GmbH
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.formdev.flatlaf.intellijthemes.materialthemeuilite;
import com.formdev.flatlaf.IntelliJTheme;
/**
* @author Karl Tauber
*/
public class FlatGitHubContrastIJTheme
extends IntelliJTheme.ThemeLaf
{
public static boolean install( ) {
try {
return install( new FlatGitHubContrastIJTheme() );
} catch( RuntimeException ex ) {
return false;
}
}
public FlatGitHubContrastIJTheme() {
super( Utils.loadTheme( "GitHub Contrast.theme.json" ) );
}
}

View File

@@ -0,0 +1,38 @@
/*
* Copyright 2020 FormDev Software GmbH
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.formdev.flatlaf.intellijthemes.materialthemeuilite;
import com.formdev.flatlaf.IntelliJTheme;
/**
* @author Karl Tauber
*/
public class FlatGitHubIJTheme
extends IntelliJTheme.ThemeLaf
{
public static boolean install( ) {
try {
return install( new FlatGitHubIJTheme() );
} catch( RuntimeException ex ) {
return false;
}
}
public FlatGitHubIJTheme() {
super( Utils.loadTheme( "GitHub.theme.json" ) );
}
}

View File

@@ -0,0 +1,38 @@
/*
* Copyright 2020 FormDev Software GmbH
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.formdev.flatlaf.intellijthemes.materialthemeuilite;
import com.formdev.flatlaf.IntelliJTheme;
/**
* @author Karl Tauber
*/
public class FlatLightOwlContrastIJTheme
extends IntelliJTheme.ThemeLaf
{
public static boolean install( ) {
try {
return install( new FlatLightOwlContrastIJTheme() );
} catch( RuntimeException ex ) {
return false;
}
}
public FlatLightOwlContrastIJTheme() {
super( Utils.loadTheme( "Light Owl Contrast.theme.json" ) );
}
}

View File

@@ -0,0 +1,38 @@
/*
* Copyright 2020 FormDev Software GmbH
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.formdev.flatlaf.intellijthemes.materialthemeuilite;
import com.formdev.flatlaf.IntelliJTheme;
/**
* @author Karl Tauber
*/
public class FlatLightOwlIJTheme
extends IntelliJTheme.ThemeLaf
{
public static boolean install( ) {
try {
return install( new FlatLightOwlIJTheme() );
} catch( RuntimeException ex ) {
return false;
}
}
public FlatLightOwlIJTheme() {
super( Utils.loadTheme( "Light Owl.theme.json" ) );
}
}

View File

@@ -0,0 +1,38 @@
/*
* Copyright 2020 FormDev Software GmbH
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.formdev.flatlaf.intellijthemes.materialthemeuilite;
import com.formdev.flatlaf.IntelliJTheme;
/**
* @author Karl Tauber
*/
public class FlatMaterialDarkerContrastIJTheme
extends IntelliJTheme.ThemeLaf
{
public static boolean install( ) {
try {
return install( new FlatMaterialDarkerContrastIJTheme() );
} catch( RuntimeException ex ) {
return false;
}
}
public FlatMaterialDarkerContrastIJTheme() {
super( Utils.loadTheme( "Material Darker Contrast.theme.json" ) );
}
}

View File

@@ -0,0 +1,38 @@
/*
* Copyright 2020 FormDev Software GmbH
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.formdev.flatlaf.intellijthemes.materialthemeuilite;
import com.formdev.flatlaf.IntelliJTheme;
/**
* @author Karl Tauber
*/
public class FlatMaterialDarkerIJTheme
extends IntelliJTheme.ThemeLaf
{
public static boolean install( ) {
try {
return install( new FlatMaterialDarkerIJTheme() );
} catch( RuntimeException ex ) {
return false;
}
}
public FlatMaterialDarkerIJTheme() {
super( Utils.loadTheme( "Material Darker.theme.json" ) );
}
}

View File

@@ -0,0 +1,38 @@
/*
* Copyright 2020 FormDev Software GmbH
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.formdev.flatlaf.intellijthemes.materialthemeuilite;
import com.formdev.flatlaf.IntelliJTheme;
/**
* @author Karl Tauber
*/
public class FlatMaterialDeepOceanContrastIJTheme
extends IntelliJTheme.ThemeLaf
{
public static boolean install( ) {
try {
return install( new FlatMaterialDeepOceanContrastIJTheme() );
} catch( RuntimeException ex ) {
return false;
}
}
public FlatMaterialDeepOceanContrastIJTheme() {
super( Utils.loadTheme( "Material Deep Ocean Contrast.theme.json" ) );
}
}

View File

@@ -0,0 +1,38 @@
/*
* Copyright 2020 FormDev Software GmbH
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.formdev.flatlaf.intellijthemes.materialthemeuilite;
import com.formdev.flatlaf.IntelliJTheme;
/**
* @author Karl Tauber
*/
public class FlatMaterialDeepOceanIJTheme
extends IntelliJTheme.ThemeLaf
{
public static boolean install( ) {
try {
return install( new FlatMaterialDeepOceanIJTheme() );
} catch( RuntimeException ex ) {
return false;
}
}
public FlatMaterialDeepOceanIJTheme() {
super( Utils.loadTheme( "Material Deep Ocean.theme.json" ) );
}
}

View File

@@ -0,0 +1,38 @@
/*
* Copyright 2020 FormDev Software GmbH
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.formdev.flatlaf.intellijthemes.materialthemeuilite;
import com.formdev.flatlaf.IntelliJTheme;
/**
* @author Karl Tauber
*/
public class FlatMaterialLighterContrastIJTheme
extends IntelliJTheme.ThemeLaf
{
public static boolean install( ) {
try {
return install( new FlatMaterialLighterContrastIJTheme() );
} catch( RuntimeException ex ) {
return false;
}
}
public FlatMaterialLighterContrastIJTheme() {
super( Utils.loadTheme( "Material Lighter Contrast.theme.json" ) );
}
}

View File

@@ -0,0 +1,38 @@
/*
* Copyright 2020 FormDev Software GmbH
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.formdev.flatlaf.intellijthemes.materialthemeuilite;
import com.formdev.flatlaf.IntelliJTheme;
/**
* @author Karl Tauber
*/
public class FlatMaterialLighterIJTheme
extends IntelliJTheme.ThemeLaf
{
public static boolean install( ) {
try {
return install( new FlatMaterialLighterIJTheme() );
} catch( RuntimeException ex ) {
return false;
}
}
public FlatMaterialLighterIJTheme() {
super( Utils.loadTheme( "Material Lighter.theme.json" ) );
}
}

View File

@@ -0,0 +1,38 @@
/*
* Copyright 2020 FormDev Software GmbH
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.formdev.flatlaf.intellijthemes.materialthemeuilite;
import com.formdev.flatlaf.IntelliJTheme;
/**
* @author Karl Tauber
*/
public class FlatMaterialOceanicContrastIJTheme
extends IntelliJTheme.ThemeLaf
{
public static boolean install( ) {
try {
return install( new FlatMaterialOceanicContrastIJTheme() );
} catch( RuntimeException ex ) {
return false;
}
}
public FlatMaterialOceanicContrastIJTheme() {
super( Utils.loadTheme( "Material Oceanic Contrast.theme.json" ) );
}
}

View File

@@ -0,0 +1,38 @@
/*
* Copyright 2020 FormDev Software GmbH
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.formdev.flatlaf.intellijthemes.materialthemeuilite;
import com.formdev.flatlaf.IntelliJTheme;
/**
* @author Karl Tauber
*/
public class FlatMaterialOceanicIJTheme
extends IntelliJTheme.ThemeLaf
{
public static boolean install( ) {
try {
return install( new FlatMaterialOceanicIJTheme() );
} catch( RuntimeException ex ) {
return false;
}
}
public FlatMaterialOceanicIJTheme() {
super( Utils.loadTheme( "Material Oceanic.theme.json" ) );
}
}

View File

@@ -0,0 +1,38 @@
/*
* Copyright 2020 FormDev Software GmbH
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.formdev.flatlaf.intellijthemes.materialthemeuilite;
import com.formdev.flatlaf.IntelliJTheme;
/**
* @author Karl Tauber
*/
public class FlatMaterialPalenightContrastIJTheme
extends IntelliJTheme.ThemeLaf
{
public static boolean install( ) {
try {
return install( new FlatMaterialPalenightContrastIJTheme() );
} catch( RuntimeException ex ) {
return false;
}
}
public FlatMaterialPalenightContrastIJTheme() {
super( Utils.loadTheme( "Material Palenight Contrast.theme.json" ) );
}
}

View File

@@ -0,0 +1,38 @@
/*
* Copyright 2020 FormDev Software GmbH
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.formdev.flatlaf.intellijthemes.materialthemeuilite;
import com.formdev.flatlaf.IntelliJTheme;
/**
* @author Karl Tauber
*/
public class FlatMaterialPalenightIJTheme
extends IntelliJTheme.ThemeLaf
{
public static boolean install( ) {
try {
return install( new FlatMaterialPalenightIJTheme() );
} catch( RuntimeException ex ) {
return false;
}
}
public FlatMaterialPalenightIJTheme() {
super( Utils.loadTheme( "Material Palenight.theme.json" ) );
}
}

View File

@@ -0,0 +1,38 @@
/*
* Copyright 2020 FormDev Software GmbH
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.formdev.flatlaf.intellijthemes.materialthemeuilite;
import com.formdev.flatlaf.IntelliJTheme;
/**
* @author Karl Tauber
*/
public class FlatMonokaiProContrastIJTheme
extends IntelliJTheme.ThemeLaf
{
public static boolean install( ) {
try {
return install( new FlatMonokaiProContrastIJTheme() );
} catch( RuntimeException ex ) {
return false;
}
}
public FlatMonokaiProContrastIJTheme() {
super( Utils.loadTheme( "Monokai Pro Contrast.theme.json" ) );
}
}

View File

@@ -0,0 +1,38 @@
/*
* Copyright 2020 FormDev Software GmbH
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.formdev.flatlaf.intellijthemes.materialthemeuilite;
import com.formdev.flatlaf.IntelliJTheme;
/**
* @author Karl Tauber
*/
public class FlatMonokaiProIJTheme
extends IntelliJTheme.ThemeLaf
{
public static boolean install( ) {
try {
return install( new FlatMonokaiProIJTheme() );
} catch( RuntimeException ex ) {
return false;
}
}
public FlatMonokaiProIJTheme() {
super( Utils.loadTheme( "Monokai Pro.theme.json" ) );
}
}

View File

@@ -0,0 +1,38 @@
/*
* Copyright 2020 FormDev Software GmbH
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.formdev.flatlaf.intellijthemes.materialthemeuilite;
import com.formdev.flatlaf.IntelliJTheme;
/**
* @author Karl Tauber
*/
public class FlatNightOwlContrastIJTheme
extends IntelliJTheme.ThemeLaf
{
public static boolean install( ) {
try {
return install( new FlatNightOwlContrastIJTheme() );
} catch( RuntimeException ex ) {
return false;
}
}
public FlatNightOwlContrastIJTheme() {
super( Utils.loadTheme( "Night Owl Contrast.theme.json" ) );
}
}

View File

@@ -0,0 +1,38 @@
/*
* Copyright 2020 FormDev Software GmbH
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.formdev.flatlaf.intellijthemes.materialthemeuilite;
import com.formdev.flatlaf.IntelliJTheme;
/**
* @author Karl Tauber
*/
public class FlatNightOwlIJTheme
extends IntelliJTheme.ThemeLaf
{
public static boolean install( ) {
try {
return install( new FlatNightOwlIJTheme() );
} catch( RuntimeException ex ) {
return false;
}
}
public FlatNightOwlIJTheme() {
super( Utils.loadTheme( "Night Owl.theme.json" ) );
}
}

View File

@@ -0,0 +1,38 @@
/*
* Copyright 2020 FormDev Software GmbH
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.formdev.flatlaf.intellijthemes.materialthemeuilite;
import com.formdev.flatlaf.IntelliJTheme;
/**
* @author Karl Tauber
*/
public class FlatSolarizedDarkContrastIJTheme
extends IntelliJTheme.ThemeLaf
{
public static boolean install( ) {
try {
return install( new FlatSolarizedDarkContrastIJTheme() );
} catch( RuntimeException ex ) {
return false;
}
}
public FlatSolarizedDarkContrastIJTheme() {
super( Utils.loadTheme( "Solarized Dark Contrast.theme.json" ) );
}
}

View File

@@ -0,0 +1,38 @@
/*
* Copyright 2020 FormDev Software GmbH
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.formdev.flatlaf.intellijthemes.materialthemeuilite;
import com.formdev.flatlaf.IntelliJTheme;
/**
* @author Karl Tauber
*/
public class FlatSolarizedDarkIJTheme
extends IntelliJTheme.ThemeLaf
{
public static boolean install( ) {
try {
return install( new FlatSolarizedDarkIJTheme() );
} catch( RuntimeException ex ) {
return false;
}
}
public FlatSolarizedDarkIJTheme() {
super( Utils.loadTheme( "Solarized Dark.theme.json" ) );
}
}

View File

@@ -0,0 +1,38 @@
/*
* Copyright 2020 FormDev Software GmbH
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.formdev.flatlaf.intellijthemes.materialthemeuilite;
import com.formdev.flatlaf.IntelliJTheme;
/**
* @author Karl Tauber
*/
public class FlatSolarizedLightContrastIJTheme
extends IntelliJTheme.ThemeLaf
{
public static boolean install( ) {
try {
return install( new FlatSolarizedLightContrastIJTheme() );
} catch( RuntimeException ex ) {
return false;
}
}
public FlatSolarizedLightContrastIJTheme() {
super( Utils.loadTheme( "Solarized Light Contrast.theme.json" ) );
}
}

View File

@@ -0,0 +1,38 @@
/*
* Copyright 2020 FormDev Software GmbH
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.formdev.flatlaf.intellijthemes.materialthemeuilite;
import com.formdev.flatlaf.IntelliJTheme;
/**
* @author Karl Tauber
*/
public class FlatSolarizedLightIJTheme
extends IntelliJTheme.ThemeLaf
{
public static boolean install( ) {
try {
return install( new FlatSolarizedLightIJTheme() );
} catch( RuntimeException ex ) {
return false;
}
}
public FlatSolarizedLightIJTheme() {
super( Utils.loadTheme( "Solarized Light.theme.json" ) );
}
}

View File

@@ -0,0 +1,42 @@
/*
* Copyright 2020 FormDev Software GmbH
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.formdev.flatlaf.intellijthemes.materialthemeuilite;
import java.io.IOException;
import java.util.logging.Level;
import java.util.logging.Logger;
import com.formdev.flatlaf.FlatLaf;
import com.formdev.flatlaf.IntelliJTheme;
import com.formdev.flatlaf.json.ParseException;
/**
* @author Karl Tauber
*/
class Utils
{
static final Logger LOG = Logger.getLogger( FlatLaf.class.getName() );
static IntelliJTheme loadTheme( String name ) {
try {
return new IntelliJTheme( Utils.class.getResourceAsStream( "../themes/material-theme-ui-lite/" + name ) );
} catch( ParseException | IOException ex ) {
String msg = "FlatLaf: Failed to load IntelliJ theme '" + name + "'";
LOG.log( Level.SEVERE, msg, ex );
throw new RuntimeException( msg, ex );
}
}
}

View File

@@ -10,8 +10,7 @@
"selectionBackground": "#6272a4", "selectionBackground": "#6272a4",
"selectionInactiveBackground": "#4E5A82", "selectionInactiveBackground": "#4E5A82",
"inactiveBackground": "#414450", "inactiveBackground": "#414450",
"borderColor": "#282a36", "borderColor": "#282a36"
"underlineColor": "#bd93f9"
}, },
"Borders": { "Borders": {
"color": "#282a36", "color": "#282a36",
@@ -82,7 +81,7 @@
"background": "#44475a", "background": "#44475a",
"underlinedTabBackground": "#313341", "underlinedTabBackground": "#313341",
"underlineColor": "#bd93f9", "underlineColor": "#bd93f9",
"underlineHeight": 2 "underlineHeight": 1
}, },
"FileColor": { "FileColor": {
"Blue": "#8be9fd", "Blue": "#8be9fd",
@@ -175,7 +174,7 @@
}, },
"Separator.separatorColor": "#282a35", "Separator.separatorColor": "#282a35",
"TabbedPane": { "TabbedPane": {
"tabSelectionHeight": 2, "tabSelectionHeight": 1,
"focusColor": "#282a35", "focusColor": "#282a35",
"hoverColor": "#282a35", "hoverColor": "#282a35",
"underlineColor": "#bd93f9", "underlineColor": "#bd93f9",
@@ -198,7 +197,7 @@
}, },
"HeaderTab": { "HeaderTab": {
"underlineColor": "#bd93f9", "underlineColor": "#bd93f9",
"underlineHeight": 2, "underlineHeight": 1,
"underlinedTabBackground": "#313341", "underlinedTabBackground": "#313341",
"underlinedTabInactiveBackground": "#313341" "underlinedTabInactiveBackground": "#313341"
} }

View File

@@ -1,10 +1,29 @@
{ {
"name": "Hiberbee", "name": "Hiberbee Dark",
"author": "Vlad Volkov", "author": "Vlad Volkov",
"dark": true, "dark": true,
"editorScheme": "/colors/Hiberbee.xml", "editorScheme": "/colors/Dark.xml",
"colors": { "colors": {
"accent": "#FFC83C", "black": "#000000",
"consoleBackground": "#191919",
"editorBackground": "#212121",
"panelBackground": "#333333",
"textColor": "#F9F6EF",
"border": "#3c3c3c",
"redMac": "#fb3b45",
"redWin": "#ef6950",
"redMonokaiPro": "#ff6188",
"blueWinPalette": "#409AE1",
"blue": "#78dce8",
"orangeMonokaiPro": "#fc9867",
"greenMonokaiPro": "#a9dc76",
"yellowWinPalette": "#ffc83d",
"yellowMac": "#faaa1f",
"purpleWinPalette": "#b4a0ff",
"purpleMonokaiPro": "#ab9df2",
"greenWinPalette": "#40c5af",
"greyWinPalette": "#b2b2b2",
"panelText": "#a6a6a6",
"desaturatedBlue": "#1e282d", "desaturatedBlue": "#1e282d",
"desaturatedOrange": "#8049117f", "desaturatedOrange": "#8049117f",
"green": "#5B8021", "green": "#5B8021",
@@ -20,7 +39,7 @@
"greyDot80": "#323232", "greyDot80": "#323232",
"greyDot85": "#252525", "greyDot85": "#252525",
"greyDot90": "#1f2021", "greyDot90": "#1f2021",
"lightBlue": "#57D1EB", "lightBlue": "#70D7FF",
"navyDot85": "#191d21", "navyDot85": "#191d21",
"navyDot90": "#1f2021", "navyDot90": "#1f2021",
"red": "#800040", "red": "#800040",
@@ -39,7 +58,7 @@
"Actions.GreyInline.Dark": "#646464", "Actions.GreyInline.Dark": "#646464",
"Actions.Red": "#ff6188", "Actions.Red": "#ff6188",
"Actions.Yellow": "#FFC83C", "Actions.Yellow": "#FFC83C",
"Objects.BlackText": "greyDot33", "Objects.BlackText": "#7d7d7d",
"Objects.Blue": "#57D1EB", "Objects.Blue": "#57D1EB",
"Objects.Green": "#92D923", "Objects.Green": "#92D923",
"Objects.GreenAndroid": "#92D923", "Objects.GreenAndroid": "#92D923",
@@ -58,7 +77,7 @@
"shadow": "greyDot75", "shadow": "greyDot75",
"background": "greyDot80", "background": "greyDot80",
"borderColor": "greyDot70", "borderColor": "greyDot70",
"caretForeground": "accent", "caretForeground": "yellowMac",
"color": "greyDot50", "color": "greyDot50",
"foreground": "greyDot20", "foreground": "greyDot20",
"hoverBackground": "greyDot70", "hoverBackground": "greyDot70",
@@ -66,7 +85,7 @@
"selectedForeground": "greyDot15", "selectedForeground": "greyDot15",
"selectedInactiveBackground": "greyDot70", "selectedInactiveBackground": "greyDot70",
"selectionBackground": "navyDot85", "selectionBackground": "navyDot85",
"selectionForeground": "accent", "selectionForeground": "yellowMac",
"separatorColor": "greyDot75", "separatorColor": "greyDot75",
"underlineHeight": 1 "underlineHeight": 1
}, },
@@ -77,7 +96,7 @@
}, },
"Borders": { "Borders": {
"ContrastBorderColor": "greyDot65", "ContrastBorderColor": "greyDot65",
"color": "greyDot70" "color": "border"
}, },
"Button.default.endBackground": "greyDot80", "Button.default.endBackground": "greyDot80",
"Button.default.endBorderColor": "greyDot65", "Button.default.endBorderColor": "greyDot65",
@@ -88,38 +107,41 @@
"Button.default.startBorderColor": "greyDot65", "Button.default.startBorderColor": "greyDot65",
"Button.endBackground": "greyDot80", "Button.endBackground": "greyDot80",
"Button.endBorderColor": "greyDot65", "Button.endBorderColor": "greyDot65",
"Button.focusedBorderColor": "accent", "Button.focusedBorderColor": "yellowMac",
"Button.startBackground": "greyDot80", "Button.startBackground": "greyDot80",
"Button.startBorderColor": "greyDot65", "Button.startBorderColor": "greyDot65",
"CheckBox.disabledText": "greyDot33", "CheckBox.disabledText": "greyDot33",
"CheckBox.select": "greyDot50", "CheckBox.select": "greyDot50",
"CheckBoxMenuItem.disabledBackground": "greyDot80", "CheckBoxMenuItem.disabledBackground": "greyDot80",
"ComboBox.ArrowButton.disabledIconColor": "greyDot50", "ComboBox.ArrowButton.disabledIconColor": "greyDot50",
"ComboBox.ArrowButton.iconColor": "accent", "ComboBox.ArrowButton.iconColor": "yellowMac",
"ComboBox.ArrowButton.nonEditableBackground": "greyDot70", "ComboBox.ArrowButton.nonEditableBackground": "greyDot70",
"ComboBox.modifiedItemForeground": "accent", "ComboBox.modifiedItemForeground": "yellowMac",
"ComboBox.disabledForeground": "greyDot70", "ComboBox.disabledForeground": "greyDot80",
"ComboBox.nonEditableBackground": "greyDot75", "ComboBox.nonEditableBackground": "greyDot75",
"ComboPopup.border": "1,1,1,1,4d4d4d", "ComboPopup.border": "1,1,1,1,4d4d4d",
"CompletionPopup": { "CompletionPopup": {
"nonFocusedMask": "#34343434",
"selectionBackground": "navyDot85",
"foreground": "greyDot20", "foreground": "greyDot20",
"matchForeground": "accent" "matchForeground": "yellowMac"
}, },
"Component.arc": "3", "Component": {
"Label.foreground": "greyDot15", "arc": "3",
"Component.disabledBorderColor": "greyDot70", "disabledBorderColor": "greyDot70",
"Component.infoForeground": "greyDot50", "infoForeground": "greyDot50",
"Component.errorFocusColor": "#F65F87", "errorFocusColor": "#F65F87",
"Component.focusColor": "greyDot50", "focusColor": "greyDot50",
"Component.focusWidth": "0", "focusWidth": "0",
"Component.focusedBorderColor": "greyDot50", "focusedBorderColor": "greyDot50",
"Component.hoverIconColor": "accent", "hoverIconColor": "yellowMac",
"Component.inactiveErrorFocusColor": "transparentRed", "inactiveErrorFocusColor": "transparentRed",
"Component.inactiveWarningFocusColor": "transparentYellow", "inactiveWarningFocusColor": "transparentYellow",
"Component.warningFocusColor": "yellow", "warningFocusColor": "yellow"
"Debugger.Variables.changedValueForeground": "accent", },
"Debugger.Variables.changedValueForeground": "yellowMac",
"Debugger.Variables.evaluatingExpressionForeground": "lightBlue", "Debugger.Variables.evaluatingExpressionForeground": "lightBlue",
"DefaultTabs.underlineColor": "accent", "DefaultTabs.underlineColor": "yellowMac",
"DefaultTabs.underlineHeight": 1, "DefaultTabs.underlineHeight": 1,
"DefaultTabs.underlinedTabBackground": "greyDot75", "DefaultTabs.underlinedTabBackground": "greyDot75",
"DefaultTabs.underlinedTabForeground": "lightBlue", "DefaultTabs.underlinedTabForeground": "lightBlue",
@@ -143,12 +165,17 @@
"infoForeground": "greyDot50" "infoForeground": "greyDot50"
}, },
"Link.activeForeground": "lightBlue", "Link.activeForeground": "lightBlue",
"Link.hoverForeground": "accent", "Link.hoverForeground": "yellowMac",
"Link.pressedForeground": "lightBlue", "Link.pressedForeground": "lightBlue",
"Link.visitedForeground": "greyDot25", "Link.visitedForeground": "greyDot25",
"MemoryIndicator.allocatedBackground": "green", "MemoryIndicator.allocatedBackground": "green",
"MemoryIndicator.usedBackground": "red", "MemoryIndicator.usedBackground": "red",
"Menu.acceleratorForeground": "greyDot25", "Menu": {
"separatorColor": "greyDot75",
"foreground": "textColor",
"borderColor": "greyDot70",
"acceleratorForeground": "greyDot25"
},
"Notification.MoreButton.innerBorderColor": "greyDot65", "Notification.MoreButton.innerBorderColor": "greyDot65",
"Notification.ToolWindow.errorBackground": "greyDot85", "Notification.ToolWindow.errorBackground": "greyDot85",
"Notification.ToolWindow.errorBorderColor": "#ed005c", "Notification.ToolWindow.errorBorderColor": "#ed005c",
@@ -157,20 +184,25 @@
"Notification.ToolWindow.informativeBorderColor": "#92D923", "Notification.ToolWindow.informativeBorderColor": "#92D923",
"Notification.ToolWindow.informativeForeground": "#92D923", "Notification.ToolWindow.informativeForeground": "#92D923",
"Notification.ToolWindow.warningBackground": "greyDot85", "Notification.ToolWindow.warningBackground": "greyDot85",
"Notification.ToolWindow.warningBorderColor": "accent", "Notification.ToolWindow.warningBorderColor": "yellowMac",
"Notification.ToolWindow.warningForeground": "accent", "Notification.ToolWindow.warningForeground": "yellowMac",
"Notification.background": "greyDot85", "Notification.background": "greyDot85",
"Notification.errorBackground": "greyDot85", "Notification.errorBackground": "greyDot85",
"Notification.errorBorderColor": "#ed005c", "Notification.errorBorderColor": "#ed005c",
"Notification.errorForeground": "#F65F87", "Notification.errorForeground": "#F65F87",
"OptionPane.background": "greyDot80", "OptionPane": {
"OptionPane.foreground": "greyDot33", "background": "greyDot80",
"Panel.background": "greyDot80", "foreground": "greyDot20"
},
"Panel": {
"background": "greyDot80",
"foreground": "greyDot20"
},
"Panel.foreground": "greyDot20", "Panel.foreground": "greyDot20",
"ParameterInfo.background": "greyDot85", "ParameterInfo.background": "greyDot85",
"ParameterInfo.foreground": "greyDot25", "ParameterInfo.foreground": "greyDot25",
"ParameterInfo.currentOverloadBackground": "greyDot65", "ParameterInfo.currentOverloadBackground": "greyDot65",
"ParameterInfo.currentParameterForeground": "accent", "ParameterInfo.currentParameterForeground": "yellowMac",
"ParameterInfo.infoForeground": "greyDot33", "ParameterInfo.infoForeground": "greyDot33",
"ParameterInfo.lineSeparatorColor": "greyDot75", "ParameterInfo.lineSeparatorColor": "greyDot75",
"PasswordField.background": "greyDot75", "PasswordField.background": "greyDot75",
@@ -178,10 +210,11 @@
"Plugins.Button.installBorderColor": "greyDot65", "Plugins.Button.installBorderColor": "greyDot65",
"Plugins.Button.installFillBackground": "greyDot80", "Plugins.Button.installFillBackground": "greyDot80",
"Plugins.Button.installFillForeground": "greyDot25", "Plugins.Button.installFillForeground": "greyDot25",
"Plugins.Button.installForeground": "accent", "Plugins.Button.installForeground": "yellowMac",
"Plugins.SearchField.background": "greyDot75", "Plugins.SearchField.background": "greyDot75",
"Plugins.SectionHeader.background": "greyDot75", "Plugins.SectionHeader.background": "greyDot75",
"Plugins.Tab.hoverBackground": "greyDot65", "Plugins.Tab.hoverBackground": "navyDot85",
"Plugins.Tab.selectedBackground": "greyDot85",
"Plugins.background": "greyDot80", "Plugins.background": "greyDot80",
"Plugins.disabledForeground": "greyDot50", "Plugins.disabledForeground": "greyDot50",
"Plugins.lightSelectionBackground": "navyDot85", "Plugins.lightSelectionBackground": "navyDot85",
@@ -195,11 +228,11 @@
"PopupMenuSeparator.stripeWidth": 1, "PopupMenuSeparator.stripeWidth": 1,
"ProgressBar.failedColor": "#ed005c", "ProgressBar.failedColor": "#ed005c",
"ProgressBar.failedEndColor": "greyDot75", "ProgressBar.failedEndColor": "greyDot75",
"ProgressBar.indeterminateStartColor": "accent", "ProgressBar.indeterminateStartColor": "yellowMac",
"ProgressBar.indeterminateEndColor": "#FD971F", "ProgressBar.indeterminateEndColor": "#FD971F",
"ProgressBar.passedColor": "#92D923", "ProgressBar.passedColor": "#92D923",
"ProgressBar.passedEndColor": "greyDot75", "ProgressBar.passedEndColor": "greyDot75",
"ProgressBar.progressColor": "accent", "ProgressBar.progressColor": "yellowMac",
"ProgressBar.trackColor": "greyDot75", "ProgressBar.trackColor": "greyDot75",
"RadioButton.background": "greyDot80", "RadioButton.background": "greyDot80",
"RadioButtonMenuItem.disabledBackground": "greyDot80", "RadioButtonMenuItem.disabledBackground": "greyDot80",
@@ -209,32 +242,33 @@
"SearchEverywhere.SearchField.infoForeground": "greyDot33", "SearchEverywhere.SearchField.infoForeground": "greyDot33",
"SearchEverywhere.SearchField.background": "greyDot75", "SearchEverywhere.SearchField.background": "greyDot75",
"SearchEverywhere.Header.background": "greyDot80", "SearchEverywhere.Header.background": "greyDot80",
"SearchEverywhere.Tab.selectedBackground": "greyDot80", "SearchEverywhere.Tab.selectedBackground": "greyDot85",
"SearchMatch.endBackground": "accent", "SearchEverywhere.Tab.selectedForeground": "lightBlue",
"SearchMatch.startBackground": "accent", "SearchMatch.endBackground": "yellowMac",
"SearchMatch.startBackground": "yellowMac",
"SidePanel.background": "greyDot85", "SidePanel.background": "greyDot85",
"SpeedSearch.errorForeground": "#F65F87", "SpeedSearch.errorForeground": "#F65F87",
"SpeedSearch.foreground": "accent", "SpeedSearch.foreground": "yellowMac",
"SplitPane.highlight": "accent", "SplitPane.highlight": "yellowMac",
"PopupMenu.translucentBackground": "greyDot50", "PopupMenu.translucentBackground": "greyDot50",
"TabbedPane.disabledUnderlineColor": "greyDot65", "TabbedPane.disabledUnderlineColor": "greyDot65",
"TabbedPane.focusColor": "greyDot65", "TabbedPane.focusColor": "greyDot65",
"TabbedPane.tabSelectionHeight": 1, "TabbedPane.tabSelectionHeight": 1,
"TabbedPane.underlineColor": "accent", "TabbedPane.underlineColor": "yellowMac",
"Table.dropLineColor": "greyDot75", "Table.dropLineColor": "greyDot75",
"Table.dropLineShortColor": "greyDot70", "Table.dropLineShortColor": "greyDot70",
"Table.focusCellBackground": "greyDot85", "Table.focusCellBackground": "greyDot85",
"Table.focusCellForeground": "accent", "Table.focusCellForeground": "yellowMac",
"Table.sortIconColor": "accent", "Table.sortIconColor": "yellowMac",
"Table.stripeColor": "greyDot75", "Table.stripeColor": "greyDot75",
"TableHeader.background": "greyDot85", "TableHeader.background": "greyDot85",
"TableHeader.bottomSeparatorColor": "greyDot65", "TableHeader.bottomSeparatorColor": "greyDot65",
"TextArea.background": "greyDot75", "TextArea.background": "greyDot75",
"TextArea.caretForeground": "accent", "TextArea.caretForeground": "yellowMac",
"TextArea.inactiveBackground": "greyDot80", "TextArea.inactiveBackground": "greyDot80",
"TextField.background": "greyDot75", "TextField.background": "greyDot75",
"TextField.foreground": "greyDot25", "TextField.foreground": "greyDot25",
"TextField.caretForeground": "accent", "TextField.caretForeground": "yellowMac",
"TextField.highlight": "greyDot15", "TextField.highlight": "greyDot15",
"TextField.inactiveForeground": "greyDot33", "TextField.inactiveForeground": "greyDot33",
"TextPane.inactiveBackground": "greyDot80", "TextPane.inactiveBackground": "greyDot80",
@@ -242,7 +276,7 @@
"ToggleButton.buttonColor": "greyDot65", "ToggleButton.buttonColor": "greyDot65",
"ToggleButton.offBackground": "greyDot75", "ToggleButton.offBackground": "greyDot75",
"ToggleButton.offForeground": "greyDot25", "ToggleButton.offForeground": "greyDot25",
"ToggleButton.onBackground": "accent", "ToggleButton.onBackground": "yellowMac",
"ToggleButton.onForeground": "greyDot80", "ToggleButton.onForeground": "greyDot80",
"ToolBar.borderHandleColor": "greyDot65", "ToolBar.borderHandleColor": "greyDot65",
"ToolTip.Actions.background": "greyDot80", "ToolTip.Actions.background": "greyDot80",
@@ -257,17 +291,17 @@
"ToolWindow.HeaderTab.hoverBackground": "greyDot65", "ToolWindow.HeaderTab.hoverBackground": "greyDot65",
"ToolWindow.HeaderTab.hoverInactiveBackground": "greyDot85", "ToolWindow.HeaderTab.hoverInactiveBackground": "greyDot85",
"ToolWindow.HeaderTab.inactiveUnderlineColor": "greyDot75", "ToolWindow.HeaderTab.inactiveUnderlineColor": "greyDot75",
"ToolWindow.HeaderTab.underlineColor": "accent", "ToolWindow.HeaderTab.underlineColor": "yellowMac",
"ToolWindow.HeaderTab.underlineHeight": 1, "ToolWindow.HeaderTab.underlineHeight": 1,
"ToolWindow.HeaderTab.underlinedTabBackground": "greyDot90", "ToolWindow.HeaderTab.underlinedTabBackground": "greyDot90",
"ToolWindow.HeaderTab.underlinedTabInactiveBackground": "greyDot75", "ToolWindow.HeaderTab.underlinedTabInactiveBackground": "greyDot75",
"Tree.background": "greyDot85", "Tree.background": "greyDot85",
"Tree.foreground": "greyDot15", "Tree.foreground": "greyDot15",
"Tree.modifiedItemForeground": "accent", "Tree.modifiedItemForeground": "yellowMac",
"ValidationTooltip.errorBackground": "greyDot85", "ValidationTooltip.errorBackground": "greyDot85",
"ValidationTooltip.errorBorderColor": "#ed005c", "ValidationTooltip.errorBorderColor": "#ed005c",
"ValidationTooltip.warningBackground": "greyDot85", "ValidationTooltip.warningBackground": "greyDot85",
"ValidationTooltip.warningBorderColor": "accent", "ValidationTooltip.warningBorderColor": "yellowMac",
"VersionControl.FileHistory.Commit.selectedBranchBackground": "greyDot70", "VersionControl.FileHistory.Commit.selectedBranchBackground": "greyDot70",
"VersionControl.Log.Commit.currentBranchBackground": "greyDot85", "VersionControl.Log.Commit.currentBranchBackground": "greyDot85",
"VersionControl.Log.Commit.unmatchedForeground": "greyDot25", "VersionControl.Log.Commit.unmatchedForeground": "greyDot25",

Some files were not shown because too many files have changed in this diff Show More