Comment by ryanbrunner

18 hours ago

In my experience, if you're going to aggressively componentize whatever you're building (i.e. a button isn't a css class on a simple `a` tag but a distinct component that exists in it's own file somewhere) there's huge advantages to having your styling be associated directly with your components, and Tailwind is a great option (among many) for that.

If you're building something where your unit of organization looks more like a "page" than super fine grained elements, Tailwind will just make things messy and a higher-level library or writing your own CSS would be a better approach.

I don't think this changes much with AI - right now most models are not terrific at maintaining a huge degree of context in larger projects, so I could absolutely see an agent implementing CSS that works well in isolation but breaks due to the cascade. Maybe that changes in the future, but right now if anything I think Tailwind is well suited to AI because it enforces a certain locality to the changes you're making (i.e. you can reasonably assume that a `text-red-500` class on an element isn't going to break things elsewhere and wll do what it says on the box).

Why are your buttons `a` tags?!?

Buttons should be `button` tags. Links should be `a` tags.

  • Reading charitably, when writing that part of the comment they probably were thinking of links that look like buttons, for example the "Get started" link in Tailwind's home page.

    Regardless of how that specific one looks like, I wouldn't like if it were replaced by a <button>.