Don't get me wrong ... I don't think that trying to build apps with the complexity or layout demands of a native desktop app (particularly the creativity ones) using HTML+CS+*script makes much sense. The native toolkits are still a much better fit for this purpose.
But the native toolkits have learned from CSS in many ways, and that is just accelerating as we see what new wonders get cooked up in a web context that people used to say "you just can't do this in a browser with HTML+CSS".
I think I should have put "sucks" in quote at my opening salvo. CSS, I think is fine if you stick to the easy things. Which, fair that most things should stick to the easy things.
Where web development sucks is when we try and rube goldberg getting an icon where we want it, or anything sized the way we want it. It is akin to forcing yourself to play mouse trap every time you want to align something. (With some common alignments still just not supported? Or can we decimal align numbers easily finally?)
It isn't trivial to get that right with native toolkits either, particularly if you are screen-size and resolution aware.
Vertically aligning a set of decimal numbers with the separator the same place would be challenging in GTK and Qt and several others, unless you make some not well-supported assumptions and simplifications.
And reflow is generally being handled much better in most web apps than it is in native ones, if the latter actually allow it at all (more likely, they set a minimum window size that handles the expected layout just fine).
Also interesting to note that the the much lauded arrival of constraint-based layout across all apple GUI toolkits about 10 years ago (driven in large part by the needs of iOS) has not revolutionized layout APIs or algorithms in general.
I think aligning to decimal point just amuses the crap out of me because "receipt" is a very common document type that you would expect to see on the web. No?
At least in something like GTK and Qt you would be more than justified in just punting on the semantics of the receipt and formatting a fixed width set of numbers to call it a day? In HTML, doing that feels extra wrong. (But, indeed, you can do the same "fixed width" with non collapsed whitespace, even in HTML.)
And it isn't like this isn't a somewhat solved thing in long existing layout engines. Aligning to variables and such is very common in math texts. And largely not doable in HTML.
Reflow is one that always strikes me as largely misguided. No amount of reflow will make most websites look good on a gigantic monitor. Same as no amount of reflow will make most documents handle someone's name that is actually a novel. It just doesn't make sense, for many reasons. And yet we will put forth herculean efforts to maintain "reflow" based on content in so many places.
But the native toolkits have learned from CSS in many ways, and that is just accelerating as we see what new wonders get cooked up in a web context that people used to say "you just can't do this in a browser with HTML+CSS".