Creating a Theme Project
This documentation page describes a DevKit-based theme project generated with the New Project Wizard.
tip
Before creating a theme project, make sure that development environment is set up.
Launch the New Project wizard via the File | New | Project... action and provide the following information:
Select the IDE Plugin generator type from the list on the left.
Specify the project Name and Location.
Choose the Theme option in the project Type.
As the JDK select the configured SDK.
Click the Create button to generate the project.
For the example my_theme
created with the steps describes above, the IDE Plugin generator creates the following directory content:
META-INF directory with:
plugin.xml configuration file containing preconfigured theme provider
pluginIcon.svg file that is a plugin logo
Replace it with a custom logo representing the Theme.
my_theme.theme.json - a minimal theme description file
my_theme.iml - IntelliJ IDEA Module configuration file
See Theme Structure for more details.
Theme plugin project created with the new project wizard contains a single theme description file by default. In case a plugin needs to provide multiple themes (e.g., dark and light variants), it is possible to add them with the dedicated action.
Additional plugin themes can be added using the DevKit Theme Wizard, which is a part of the Plugin DevKit plugin. The wizard can be used for both DevKit-based and Gradle-based plugins.
In the Project tool window, select the resources directory and invoke the context menu with the right click.
Select the New | Plugin DevKit | Theme action.
It is a good practice to include the name of the plugin in the created theme name.
Check the Dark theme checkbox if the created theme should be based on IntelliJ IDEA Darcula theme. Otherwise, the Light theme will be used as the base.
Click OK button to generate the theme description file with $THEME_NAME$.theme.json name. The generated theme will be automatically configured in the plugin.xml file.
Use com.intellij.bundledColorScheme
extension point specifying the path
to the color scheme XML file (without .xml
suffix). Specify attribute id
for this extension in plugin.xml matching its name
attribute value from the color scheme XML.
Thanks for your feedback!