In Tailwind, I'll use a `p-3` or a `.flex.items-center` all day, but making a nice button is such a slog, since I'm coming from a Vuetify background.
Vuetify also has the same layout classes as Tailwind, like `pa-3` and `.d-flex.align-center`
I use Vuetify + Pug (instead of raw HTML templates), so I get to make buttons like this:
v-btn(outlined color="accent" @click="handleClick") Do Stuff
or a Data Table with, say, a custom-formatted UPC column, like this: v-data-table(:loading="loading", :items="items", :headers="headers", :items-per-page="50" dense).my-3
template(v-slot:item.upc="{ item }")
span {{formatUpc(item.upc)}}
(I like to separate attributes with commas, which is valid pug but invalid HTML)Sure, I could get something like TailwindUI, but their components are walls of divs and classes that each take half an hour to load into my head to visualize what's creating all the combos of states (regular, hover, focus).
So my Vuetify + Pug approach works great for greenfield projects that I create.
But if I'm downloading a nice template for a side project, say from Cruip.com, it's not like they're going to use the same build chain as me, and they do have to settle on a standard CSS library, so they default to Tailwind (just like 5~10 years ago they would have defaulted to Bootstrap).
I'd basically have to re-implement all of Vuetify in Tailwind, from buttons to chips to toggles to alerts, etc?
The v-data-table is like 10 sub-components stuck together, each of which I'd have to re-implement with walls of Tailwind classes.
It does however add some extra time to build your app - but consider that they have already built 90% for you - in terms of the design etc.
I know there are some obvious things, but like you said CSS is used for both. So there is a lot "grey area". Especially when "style" can affect the "layout".