> The more features that get added to Tailwind, the more you have to know about CSS before you can use those features. Right? So why not just bite the bullet and learn to use CSS without the additional tooling (and weird, often lengthy additions to your HTML) that Tailwind and other utility-first styling frameworks require?<p>This misses the point of Tailwind entirely. The point of Tailwind is to give everyone a common vernacular of CSS phrases so that I can bust out something like "p-2 m-2 border-red" super fast and still be writing code which is immediately comprehensible to everyone else on my team. There's also the benefit that I no longer have to think about class names, which is shockingly large.<p>Using CSS does not give you that. I don't even address the "learn to use CSS" phrase because anyone who uses Tailwind obviously knows CSS! We do the translation back and forth in our head as necessary.<p>It's also why I'm not concerned about Tailwind getting more features:<p>* Tailwind needs to have all the features of CSS, otherwise it's incomplete.<p>* The notion of Tailwind being "bloated" makes no sense:<p>* The Tailwind compiler eliminates any styles you don't need.<p>* Tailwind stylesheets are always going to be much smaller than normal CSS for any decently-sized app.
> The more features that get added to Tailwind, the more you have to know about CSS before you can use those features. Right? So why not just bite the bullet and learn to use CSS without the additional tooling […] that Tailwind and other utility-first styling frameworks require?<p>This is an incredibly silly argument because Tailwind has <i>always</i> required you know CSS, or at least understand how it works. The selling point of Tailwind is a more convenient and co-located way to write styles—the utility classes map pretty much 1:1 to CSS properties after all.<p>Covering more CSS features with Tailwind classes does not make Tailwind inherently more complicated, it just adds a way to express more CSS that you need already know about.
I've used a lot of tools for writing "CSS" over the years: pure CSS, CSS modules, SASS, LESS, BEM,... I think when using Tailwind, you have to know the "real" CSS anyway, but the most important thing that Tailwind offers is the consistency.<p>So you need 1-unit padding? `p-1`. Double that? `p-2`. Still not enough? `p-3`. More? `p-4`. I don't have to think and do math in my head like 0.25rem, 0.5rem, 1rem,... and IMHO, it's a big enough win for me to keep using Tailwind CSS.<p>The features that were introduced in recent versions are just about supporting more CSS features to be more complete and not about feature-bloat.
<p><pre><code> So why not just bite the bullet and learn to use CSS without the additional tooling (and weird, often lengthy additions to your HTML) that Tailwind and other utility-first styling frameworks require?
</code></pre>
Because I'm not a designer :)<p>(EDIT: there seems to be some confusion by what I mean here. What I meant is that knowledge of plain CSS does not enable me to create clean designs like Tailwind does.)<p>Really though a huge benefit of Tailwind is their UI package <a href="https://tailwindui.com/" rel="nofollow">https://tailwindui.com/</a> which I routinely use<p>Aside from that, I also like how their components are all very lightweight normal HTML. Compare to Material UI, etc. which are so heavy that you can't even use them with many 3rd party libraries because they're more than just CSS.<p>Often times, third party components accept some class lists, which fundamentally means they are only compatible with simple CSS libraries like tailwind rather than component libraries.<p>Anyway I get the concern but I also feel like the concern is still very, very far away from becoming reality.
I don't like massive long class names on my DOM elements. And I don't think it makes the code look/read nice. Tailwind is so close to CSS that I'm often left scratching my head as to why people don't just write CSS - it will look nicer too.
My heart sank a bit when reading the phrase, "absolutely massive amount of new stuff" in Tailwind's release note. I agree with the article that this may be the inflection point where I return to just using Sass. (So far I've been using both.)<p>But Sass has been recently introducing seemingly unnecessary changes in syntax, making their documentation incompatible with existing compiler implementations - and I'm getting tired of trying to catch up.<p>I'm thinking of moving to PostCSS with a small subset of features, like nested selectors, to stay close to the CSS specs and hopefully one day we can do without any preprocessor.<p>---<p>Edit: The author of the posted link has an in-depth article on Sass, with much of which I heartily agree.<p><a href="https://www.brycewray.com/posts/2021/04/speaking-up-for-sass/" rel="nofollow">https://www.brycewray.com/posts/2021/04/speaking-up-for-sass...</a>
Recently I had to develop a somewhat complex vuejs web app that works well in both desktop and mobile<p>And most importantly I had only 7 days to develop it. And I just breezed though the frontend development thanks to tailwind which I won’t be able to do had I used a different framework like bootstrap or vanilla css<p>I think developers can select the features they want to use, and if they don’t want to use the new features they can just use the existing ones and leave the new ones alone.<p>For the moment I don’t find a reason to skip tailwind
It seems straightforward to just bite off what you need from Tailwind- the new features won't inhibit you from continuing to write flex and padding interfaces. I don't even think that a selling point of TW is not needing to learn CSS. It's easier a lot of times and cleaner to refrain from adding new files with conventions you have to come up with to do something that takes 4 characters with TW
I've always found the "Tailwind as CSS shim" attitude compelling, and like most shims will successfully pave the way for its own gradual superfluousness (a good thing imo).
Looking at the Tailwind 3.2 feature list I don't necessarily disagree that some of these look like feature creep, but I think this article falls flat because it asserts a premise that I just don't think is true:<p>> the idea behind Tailwind, like every other utility-first CSS framework, is to make styling easier, especially for front-end developers who dislike getting under CSS’s hood.<p>> The more features that get added to Tailwind, the more you have to know about CSS before you can use those features. Right? So why not just bite the bullet and learn to use CSS without the additional tooling<p>Tailwind is not an alternative to learning CSS, or "getting under CSS's hood", and I don't think I've ever seen anyone promote it as such. Tailwind is explicitly very low-level. It's an alternative way to write CSS, not an alternative to knowing CSS. All of its class documentation starts with the exact equivalent CSS declarations for a reason.
I don't understand the reasoning of 'feature creep'. If the author has an idea for better improvements, hit up the Tailwind team.<p>Feature creep does not mean that you need to use the features.
> The more capabilities that get added to Tailwind, the more complex Tailwind becomes. It may not yet be near a tipping point, but that’s a danger for which the Tailwind team will have to be on the lookout.<p>Tipping point of being too complex?
For what?
Doing more harm then good?
Is that the argument?
I am not a Tailwind fan, I don't use it, but I think, it did not reached the tipping point (of being useful) just at the 3.2 release.
I wouldn't say that the article or tailwindcss are good or bad. I would just point out that the difference between good and bad product management is the feature creep. Did tailwind css do a bad job at product management? I don't know, but some new features are useful to me.
Nice! They've introduced the "aria-*"-variants I had previously been adding via their plugin API.<p>Real cool I can style based on whether an element is being pressed in a cross browser compatible way without ever touching the config now.
I want tailwind as a DSL or IDE feature to write CSS. That’s mainly what I like about it. I don’t mind css but it’s repetitive to style a bunch of nodes.
The author may have a point. Some people will be: "well, just don't use those features then". But you are often not the only dev on a project. And some devs just love using the shiny new stuff even if it does not make any sense.<p>Shameless plug: <a href="https://gimli.app/tailwinddx.html" rel="nofollow">https://gimli.app/tailwinddx.html</a> - A Chrome DevTools extension enabling smart Tools for Tailwind CSS :)
I’m always amazed at how sadistic frontend developers are to themselves. I saw Tailwind required some config file and compiler and noped right out. I guess they have to keep up with the backend folks screwing around with the million different DevOps and cloud bullshit.
The point of Tailwind is that it curates the useful subset of CSS into a nice DSL. Not unlike Typescript and type systems. I'll learn about any of the stuff that makes its way into Tailwind release notes and Tailwind docs. Anything else about CSS I will happily never learn about.<p>This is why people could say "Don't learn CSS, just learn Tailwind". Tailwind is the only decent way to use and to learn CSS.