Anyway, to me this question is kind of like asking "Is it easier to break your writing into paragraphs, or write everything in one long block?"
Like, what would you think if I formatted my comment like this?
> It's not quite apples-to-apples because the Tailwind code is using design tokens and the CSS is not. You should (for example) replace the long `box-shadow` value with `var(--shadow-md)`. Anyway, to me this question is kind of like asking "Is it easier to break your writing into paragraphs, or write everything in one long block?" Like, what would you think if I formatted my comment like this?
Why aren't the companies building design tools solving this?
This is a "why don't they just make self-driving cars" question. The answer is that there are too many edge cases.
We're entering a phase where natural language becomes the main interface for html and css development. Companies like Vercel, Wix, and Framer are integrating AI to turn design prompts into working UI components.
This is only the beginning. Within 2 to 3 years, domain-specific language models, trained specifically on frontend code, are expected to become common.
Regarding Adobe, they never really understood developers.
Sure that html looks a bit messy, but once you write it once you're never looking at it again. In your view files you're just writing.
<Button>Click Me!</Button>
Or perhaps injecting variables etc. <Button color="red" style="outline">Click Me!</Button>
I'm not really trying to argue that Tailwind is better or worse, I'm just saying it's a valid way to do things and there's nothing inherently wrong or flawed with it.There are simply so many decisions when choosing how to implement CSS in a project—where should we put the files, should they be component based or global, what preprocessor if any, etc etc. With Tailwind, you don't have to worry about any of that.
2. syntax checking
3. language servers.
I find it easier to locate things in the HTML broken into components because the style is co located with the object being styled. I find it much more difficult to navigate through CSS and find out what classes are doing what exactly. Especially when a project grows over a long period of time and different people write CSS differently (and throw a few !important's in to make sure they can meet a deadline).
Each to their own though.