# Getting Started Customizing the IDE user interface by developing a custom theme. Custom themes allow designers to control the appearance of built-in UI elements. The customization options include: - substitute icons, - change the colors of icons and UI controls, - alter the borders and insets of UI controls, - provide custom editor schemes, - add background images. The [themes available for download](https://plugins.jetbrains.com/search?headline=164-theme&tags=Theme) illustrate the creative possibilities. > See the [Themes in IntelliJ-based IDEs](https://blog.jetbrains.com/platform/2021/10/themes-in-intellij-based-ides/) blog post for an overview (available in multiple languages). > ## Theme Plugin Development Themes can be developed by using either [IntelliJ IDEA Community Edition](https://www.jetbrains.com/idea/download/) or [IntelliJ IDEA Ultimate](https://www.jetbrains.com/idea/download/) as your IDE (it is highly recommended to use the latest available version). Both include the complete set of development tools required to develop theme plugins. To become more familiar with IntelliJ IDEA, please refer to the [IntelliJ IDEA Web Help](https://www.jetbrains.com/idea/help/). A theme is one of the [plugin types](plugin_types.md#themes). Its structure doesn't significantly differ from plugins extending IDE behavior, and can be implemented by using one of the supported approaches: _DevKit_ or _Gradle_. The choice of the development approach depends on the project requirements and developer's experience. ### DevKit-Based Theme Project Developing theme plugins with DevKit is the simplest solution and does not require experience with Gradle or similar build tools. The DevKit project structure is generated by default when an IDE Plugin theme project is created by using the New Project Wizard. See the [](developing_themes.md) section for the development instructions. ### Gradle-Based Theme Project Developing theme plugins with Gradle requires experience with the Gradle or a similar build tool. It offers the possibility of automating some parts of the development process, like patching [plugin.xml](plugin_configuration_file.md) file with the theme plugin version and other data, as well as building the plugin distribution on CI servers and publishing it to [JetBrains Marketplace](https://plugins.jetbrains.com). If your project requires any of the mentioned capabilities, see [Developing a Plugin using Gradle](developing_plugins.md) for more details. > The recording of _Busy Plugin Developer. Episode 3_ shows how to [create a new theme](https://youtu.be/9J0j-90dC60?t=582) using the Gradle approach. > {style="note"}