Apps like to make very custom interfaces. All of CSS is great.
Platforms like consistency, so they maintain their own complex CSS.
Users like to customize everything, so CSS is powerful but will always break as its fighting the others.
There’s not much that can be done about UI-as-branding unfortunately, but for everything else I believe that parameterization is the answer. Don’t hardcode colors, fonts, etc and instead favor framework-provided presets (like UIColor.systemBackground and UIFont.caption1 on iOS) wherever practical and that’ll for the most part make your app remain usable regardless of how the user’s themed their system, short of just using a badly made theme. This should be done anyway because it’s a huge boon to accessibility if the user can e.g. enable colorblind mode and have the reds and greens in apps adjust automatically because their devs were thoughtful enough to use Color.systemGreen and Color.systemRed instead of hardcoding #FF0000 and #008000.
I don't know if Qt is better but I've heard about 0 drama from them... I made a poll on reddit though and for some reason people (users) still prefer Gtk to Qt.
I think this is probably because GTK programs tend to sport UI designs that are nicer/friendlier and less “designed by a programmer”, even if they skew overly simple. Qt leans the other direction, with apps that are generally complete from a technical standpoint but have a good deal of room for improvement in UI design.
Incidentally I think this is also why distros centered around GTK-based DEs still dominate.
The UI designs are just a byproduct, there is nothing about Qt that makes it hard/impossible to have Gtk-like designs, but since Gtk is used by a lot of programmers, when encountering a program like those you mention, the chances are higher that it is written in Gtk than in Qt because more programmers use Gtk than Qt.
(note that this is specifically about Linux desktop applications, i think overall Qt is used more than Gtk outside Linux)
I think OP described it pretty well - stock Gnome is actually a nice desktop environment, I prefer it to Windows, does not even come close to MacOS.
I can believe that KDE Plasma still has issues though, it seems some sort of bomb was thrown during KDE 4 times in the codebase and it still has to recover. Though if nothing else, i do use KDE apps outside of Plasma (Kate, Krita, Dolphin, Okular, Spectacle) and they all seem very solid.
After a parent said that Gnome looked better than Kde I looked it up and found a number of posts criticizing Kde design decisions (padding, etc). I fully believe the Gnome people have a better design decision. But I don't think that criticism applies to Qt itself, necessarily.
It’s consistent enough that it makes me wonder if maybe something about the tooling is partially to blame.
> If you like to tinker with your own system, that’s fine with us. However, if you change things like stylesheets and icons, you should be aware that you’re in unsupported territory. Any issues you encounter should be reported to the theme developer, not the app developer.
Theming Gnome by editing the default style sheet is akin to distro theming the web by modifying Firefoz's default style sheet. Tons of websites will break in weird and interesting ways but the user won't know to blame the distro, because they never touched user.css or even know it's possible to change the default.
The same breakage also happens on KDE and Qt applications (and more, I have seen Eclipse launch with black text on a black background when dark mode is enabled) but the developers don't seem to care as much, or are less bothered by the false bug reports. I've also experienced the "this doesn't look anything like the screenshots" feeling because of the theme I have applied, but at least I know it's my own fault.
If a user is willing to take responsibility for breakage and such, then I'm not sure the devs are against theming as such.
> If you like to tinker with your own system, that’s fine with us. However, if you change things like stylesheets and icons, you should be aware that you’re in unsupported territory. Any issues you encounter should be reported to the theme developer, not the app developer.
Things seem a bit better on the Qt side of things, but it suffers resolution scaling issues. Most KDE/Qt themes I’ve tried can’t draw correctly at non-integer scales.
Personally I think that CSS is actually pretty badly suited for the use case of desktop UI toolkit theming. It’s fine for one-off apps but quickly becomes a mess when it needs to be part of a larger more flexible system.