A Godot tool for programmatically creating and managing UI themes using GDScript, with live preview and style inheritance.
ThemeGen is a Godot engine tool that allows developers to programmatically create and manage UI themes using GDScript. It solves the problem of tedious, manual theming in Godot by enabling code-based theme definition, style reuse, and real-time previews. Instead of using the built-in theme editor, developers write scripts to generate themes, making the process more maintainable and scalable.
Godot developers building complex user interfaces who need consistent, reusable theming across projects. It's especially useful for teams requiring version-controlled themes or apps supporting multiple theme variants like light/dark modes.
Developers choose ThemeGen over Godot's default theming because it offers a code-first workflow with live previews, reducing manual effort and errors. Its unique selling point is the ability to inherit and merge styles programmatically, creating maintainable theme systems that adapt to project complexity.
Possibly the best theming solution for Godot - Programmatically create themes using GDScript
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Enables themes to be defined and version-controlled in GDScript scripts, allowing for reusable and scalable theming across projects, as emphasized in the 'Programmatic Theme Creation' feature.
Provides real-time theme updates in the Godot editor when scripts are modified, with an optional save-sync plugin for automatic regeneration, speeding up iteration cycles.
Supports inheriting and merging styles through methods like inherit() and merge(), reducing code duplication and ensuring consistency, as demonstrated in the 'Using StyleBoxes' section.
Allows creation of multiple theme variations (e.g., light/dark) from a single script by defining multiple setup functions, simplifying management of different visual modes.
Requires extending ProgrammaticTheme, marking scripts as @tool, and configuring save paths, which adds initial complexity compared to Godot's built-in visual editor.
The README admits that 'sometimes the Godot editor does not update directly' when regenerating themes, necessitating manual steps like re-setting theme properties or reloading the editor.
As an addon, ThemeGen introduces dependency on external code, which might break with future Godot updates or lack long-term support compared to native solutions.