Breeze icons include inline stylesheets that allow them to change their color according to the user's chosen color scheme. This is a very cool feature, but imposes significant costs on icon creators. The full workflow is as follows:
- Create or edit 16px Breeze light theme version of icon in Inkscape
- Create or edit 22px version of that icon
- Create a 24px version by expanding the margins by one pixel on all sides
- optimize the SVG files by running one of the hacked-together scripts here: https://community.kde.org/Guidelines_and_HOWTOs/Icon_Workflow_Tips#SVG_optimization in a shell for loop that you likewise have to do yourself
- Fix the attributes in the path tags of all icons using the hacked-together scripts here https://community.kde.org/Guidelines_and_HOWTOs/Icon_Workflow_Tips#Embedding_stylesheets_in_SVGs in a shell for loop that you likewise have to do yourself
- Embed the stylesheet into all three icons by hand (or fix them by hand if editing an existing icon, because Inkscape has mangled them)
- Manually copy all of the edited icons into the appropriate location in the icons-dark tree to make Breeze dark versions. Then run another shell command in a for loop to convert the colors in the just-copied versions to the appropriate Breeze Dark versions
The difficulty of accomplishing steps 3-7 mean that only two or three people work on monochrome Breeze icons, and even for them, altering many monochrome icons at once is incredibly painful and awful.
We should fix this problem by having the build system do all the work for us!
After creating the Breeze light version of a monochrome icon in Inkscape, nothing further should be required of you as an icon creator. CMake should:
- Auto-generate the 24px versions: D27557
- Auto-generate Breeze dark versions from the light versions with appropriate colors
- optimize the icons
- embed the stylesheets
- adjust the text within each icon to make sure that everything's wired up properly