Azurra is an SCSS framework that we developed to make maintaining and creating GTK themes easy and simple. We achieve this in a couple of ways:
- Modularity: GTK widgets have their styles declared in different files, which makes it easy to add/remove widgets.
- Reusability: Other themes can use another theme’s styles in case they have to look similar (ex. Windows Vista and 7).
- Small footprint: You can create a new theme by editing as little as 3 files!
- Flexibility: SCSS makes theme creation very flexible, and some changes (ex. button radius) can be edited from a single file
- autogen script to parse SCSS to CSS for specified themes
- Bash script to automate repetitive string replacement/insertion/deletion operations
- Rendering subsystem to quickly render SVGs to PNGs
- Python script to check dependencies between themes and detect cross-dependencies
How it works
Each theme has its own directory with its own configuration files. You can change colors in _colors.scss, or if you want to customize how a GTK widget looks, you can edit its corresponding SCSS file in the /widgets folder. When running the autogen script, SCSS will parse the gtk.scss file into the gtk.css file. If you assigned the ‘target_dir’ variable in theme.rc, the script will then make a copy of the theme to that folder.
How to use it
You can visit the project’s wiki for documentation and a step-by-step tutorial
Planned for this year (2023):
- GTK4 compatibility (in progress)
- Add Cinnamon themes
- Add Gnome-shell themes
Planned for later:
- Reorganize to support both GTK3 and GTK4 with minimal changes
- Cosmic theme support (when released)
- Support for KDE directly or through a compatible toolkit (ex. Kvantum)