Thread by Mike Riethmuller
- Tweet
- Oct 24, 2022
- #ComputerScience
Thread
Ok different a syntax, but what about concepts? It doesn't teach you a thing about how media queries work, or other @ rules, or specificity, or containment, or rendering performance, or logical properties.
I could go on forever there are loads of concepts that it abstracts.
I could go on forever there are loads of concepts that it abstracts.
That's kinda the point of it. Abstraction is useful. I've come to quite like using Tailwind in some cases, especially for the way I can configure it.
I'm not hating on Tailwind and definitely not on @simonswiss who is a good friend and a great teacher.
I'm not hating on Tailwind and definitely not on @simonswiss who is a good friend and a great teacher.
I just don't think learning a higher level abstractions will ever teach you the fundamentals. It's ok to use it, but you will need to do more if you really want to understand what it is doing under-the-hood.
I know a lot of developers who are good at React but some of them could not manually attach an event listener to a DOM element to save their life.
And beyond the built-in DOM methods, just like Tailwind, there are a bunch of concepts in JavaScript that React doesn't teach you.
And beyond the built-in DOM methods, just like Tailwind, there are a bunch of concepts in JavaScript that React doesn't teach you.
But I feel like it's more widely accepted that React developers will eventually need to learn JavaScript fundamentals and the path is easier because you do this in the same context.
With a useEffect hook you might interact with the DOM or an API or something non React. You might import libraries or custom native code too.
But with Tailwind you don't do this in the same context. Classnames are there with the React code or whatever you're using.
But with Tailwind you don't do this in the same context. Classnames are there with the React code or whatever you're using.
To write custom CSS you typically have to do this in a separate file. Tailwind kinda exists simply so that you don't have to do this.
In fact modern devs see this as such an anti-pattern they add far more complexity to avoid it than the cost of a CSS file.
In fact modern devs see this as such an anti-pattern they add far more complexity to avoid it than the cost of a CSS file.
We need to kill the dogma and have much more balanced and honest discourse from both people that love Tailwind and those that hate it.
Sometimes it IS a bloody useful abstraction, but it DOSEN'T cover every CSS property and it will NOT teach you many important concepts.
Sometimes it IS a bloody useful abstraction, but it DOSEN'T cover every CSS property and it will NOT teach you many important concepts.
P.S I still love you @simonswiss
Mentions
See All
Simon Vrachliotis @simonswiss
ยท
Oct 25, 2022
I love you too man! Great thread. I personally learned a shit ton about CSS variable composition by looking at the Tailwind CSS output, by hovering over classes I use. Not talking about Tailwind's internals. Just the way it composes CSS, like composable transforms for example