I've always found this Rachel Andrews series a superb learning source: https://www.smashingmagazine.com/2020/01/understanding-css-g...
For someone such as myself, doing backend, this gave me a solid foundation for building modern UI apps while keeping them lean and simple.
No Bootstraps, no Tailwinds.
While Bootstrap certainly abstracts CSS away for you in a way that you can get by without knowing much about CSS (for simple things), Tailwind is just tokenized CSS. You can't use Tailwind without knowing CSS or learning CSS in the process.
That feels pretty lean and simple to me.
The problem with tailwind is it does away with separation of concerns and messes up HTML, like the old styling tags in HTML. We moved on from those for good reasons.
It really isn’t the same as inline styles at all. It’s the best of both worlds, in my opinion. It’s hard to see myself ever going back to the old ways.
It's the exact same as inline styles...
it's really not - utility classes avoid specificity conflicts and enforces a consistent design system as defined in the Tailwind config.
I have given a chance to Tailwind and it was neither nice or easy. I actually give up, wondering why my younger colleagues appreciate writing CSS using class names.
I write CSS since its debut. Clearly it wasn’t enough suffering: they reimplemented it as a class-name based language - with horrible IDE support. I am perplexed - I must be the boomer around here… :)
I think it makes sense when writing css for isolated components - usually ignoring the cascade. Makes it possible to not name things which is a plus in componentworld.
The thing is, it’s the cascade that makes css as powerful and elegant as it is.
And not naming the things comes at the cost of listing all css properties as classes on each element.
I write CSS and must say that in 2024 CSS is an amazingly powerful and elegant language.
If one is willing / given the time to learn it.
Using conventions like ITCSS, a few libraries like https://utopia.fyi and placing colors, font sizes and spacing into variables + the use of a few utility classes provide most of the conveniences of a utility-first framework with no downsides.
I can also see how devs focusing on components prefer utility-first frameworks for the speed of development. Despite the low maintainability and the horrible markup.
Disagree. Tailwind abstracts lots of CSS away; you can get away with using it with only having a surface level understanding of CSS.
As we know, a little knowledge can be a dangerous thing, especially in web development.
I would also recommend Jen Simmons Layout Land series of videos: https://www.youtube.com/layoutland