Theme Structure
Themes are components within IntelliJ Platform plugins. The theme plugins should be stand-alone and not combined with other plugin functionality.
Themes have several components:
A required Theme description (JSON) file in the plugin project's resources folder.
A required
themeProvider
declaration in the plugin's plugin.xml file, located in the plugin project's META-INF folder.An optional Editor Scheme description (XML) file derived from an exported IDE editor scheme. This file is located in the plugin project's resources folder.
An optional background image file, located in the plugin project's resources folder.
Optional icon image files, located in the plugin project's resources folder.
Theme Description File
The most important file in every theme project is the theme description file. The content of the default file generated with the Theme wizard is a short set of key–value pairs:
name
key matches the first portion of the Theme description $THEME_NAME$.theme.json file name. The value ofname
is displayed in the Theme Settings dropdown when the theme's plugin is installed in the IDE.author
- specifies the theme author (empty by default).dark
- determines the base theme (Light or Darcula) that is customized.editorScheme
- specifies the editor scheme file that describes fonts and colors used in editors (see Adding a Custom Editor Scheme for more details).ui
- allows for overriding the base theme (Light or Darcula) properties (see Custom UI Control Colors for more details).
The wizard also creates a themeProvider
declaration in the <extensions>
section of the plugin's plugin.xml file. This declaration binds the theme description file to a theme provider extension using a generated unique id
.
Theme Customization
The following sections describe the theme customization possibilities in detail: