When we first started creating themes, in 2015, GTK was on version 3.14, Ubuntu users were complaining about overlay scrollbars and Windows 10 was just released. At the time, the biggest themes were Numix, Arc and Ambiance variations. To edit a theme, it was enough to change a few colors, redefine some widgets in the CSS file and everything was ready. In fact, the first release of the Windows 10 theme was just a recolour of a Numix variant, flat unity.
In early 2016 GNOME 3.20 was released, and with it big changes. CSS was generated using SASS, the default Adwaita theme had an enormous ruleset and it broke backwards compatibility with earlier themes. At this time, we had generated quite a few themes and as we planned the porting process, we saw some themes would be left behind because porting them all was a big task for a small part-time team. It took 2 years to fully port all themes and the results were not pretty. Some early ports were acceptable but maintaining SASS-generated code was not easy, as that meant lots of redundant or unnecessary rules.
At this point, I started thinking of a way to reuse code and generate it using a custom built tool, as I didn't fully understood SASS at the moment. As I like fancy acronyms, I named that tool MTAC (Modular Theme Architecture and Compiler) and had a version for GTK 3.18 and another for 3.20. It worked by pasting together snippets of CSS, allowing for code reusability. However, there was no dynamic loading and code collections were full of symlinks for it to work.
TDK (Theme Development Kit) was supposed to replace MTAC by using SASS and removing the need for symlinks, but it never materialised.
Fast forward to mid-2018: most themes are 3.20+ compatible but with inconsistencies across all of them which are patchable but require too much time to correct across all themes. And with new themes planned and in development, things were about to get worse.
At this time, I was developing a theme using SCSS (B00merang Flat was supposed to, but didn't deliver). Work was complete around October and code separation was done by December. Code separation was the process of separating from the main file all code that was going to be reusable. 2019 was spent porting the themes to this new tool and making adjustments and enhancements along the way.
We have some pretty exciting plans for Azurra, which may one day result in you doing a unique theme completely from scratch and from a GUI application. Who knows!