I have mixed feelings about Tailwind, having used it on a client project, built a Typescript adapter for it and my own website for a time, before switching to Vanilla Extract.

On one hand, it seems to have been overhyped and targeted to developers who want to throw stuff together fast, with the predictable result of messy, unmaintainable code. (But I guess the same could've been rightly said about HTML/CSS back in its early days, not to mention Java, VB, etc.)

On the other hand, I think Tailwind does sit on structurally sound foundations. It implements most or all of the core features of the CSS spec, while providing shortcuts in a careful and consistent manner. In this way, it forms a nice abstraction layer above plain CSS.

For example, this:

<span class="foo hover:bg-violet-600"></span>