I'd say LLMs have moved the balance back towards plain CSS, and with SCSS as well as recent improvements in CSS, you can easily build your own CSS framework specific to your application to manage complexity.
One big problem with CSS is that to get authoritative answers to question you have to navigate a collection of about 50 standards documents. There are great cheat sheets for some of it, but it is a lot to understand.
With LLMs you can ask questions and generally get good answers, something you could never do with Stackoverflow, the place where "How to center a <div>?" went to die. Thing is this helps not just with "how do I do something with CSS?" but it also helps with Bootstrap or Tailwind or whatever.
That's exactly the point. The author recognizes that people will extract components, and that is exactly why tailwind is attractive.
Plain CSS offers a componentization layer over (mostly) classes, but modern SPA frameworks offer their own componentization layers over functions. It's annoying and error-prone to keep these 2 layers, and lots of devs just abandon CSS for utility class mess. It's just a different choice.
I'd say LLMs have moved the balance back towards plain CSS, and with SCSS as well as recent improvements in CSS, you can easily build your own CSS framework specific to your application to manage complexity.
One big problem with CSS is that to get authoritative answers to question you have to navigate a collection of about 50 standards documents. There are great cheat sheets for some of it, but it is a lot to understand.
With LLMs you can ask questions and generally get good answers, something you could never do with Stackoverflow, the place where "How to center a <div>?" went to die. Thing is this helps not just with "how do I do something with CSS?" but it also helps with Bootstrap or Tailwind or whatever.
> The mess just moves
That's exactly the point. The author recognizes that people will extract components, and that is exactly why tailwind is attractive.
Plain CSS offers a componentization layer over (mostly) classes, but modern SPA frameworks offer their own componentization layers over functions. It's annoying and error-prone to keep these 2 layers, and lots of devs just abandon CSS for utility class mess. It's just a different choice.