Back when I had a small design studio, I employed two contractors to help with book covers and typesetting. We were dispersed across the U.S., and would use the brand-new Wunderlist (remember that??) to coordinate who was working on what title. Wunderlist was free but limited in its features, but after a few months they unveiled a premium plan that was something like $5-10/month. Lots of people were upset, but I gladly forked over the money. Overnight, I cut my time spent on administrative tasks by ~90%, freeing me up to do whatever else that needed to be done. I believe I calculated out the "savings" the premium Wunderlist membership made me every month, and it was in the thousands of dollars. Ten bucks a month was a steal.
If you're relying on something as heavily as Wunderlist—or in your case, Tailwind—buy it and don't look back.
If you already use tailwind, like it and don't want to heavily customize your UI components: Yes. The cost is definitely lower than getting a dev/designer to make equivalent stuff if you want to arrive at the same end result.
Otherwise: No.
I could probably go on, but I think that is enough. There were a lot of discussions about this in the thread about tailwindUI here: https://news.ycombinator.com/item?id=22422873
If that's the only reason, then you should seriously re-evaluate it. [1] You can combine the utilty classes into your own component classes anyway e.g: '.my-button'.
The main thing that "utility css" offers is composition over inheritance. You're basically composing small styles to create component styles. You're not overriding the css framework, you're composing your own framework.
But it's not for everyone and that's cool too
[1] https://tailwindcss.com/docs/extracting-components/#extracti...
Yeah, I heard that argument but in that case I really don't see why I would use it over some well-defined css variables in normal css like this:
.btn-blue {
background: var(--color-blue);
color: var(--color-white);
font-weight: bold;
padding: 0.5rem 1rem;
border-radius: .25rem;
}
instead of: .btn-blue {
@apply bg-blue-500 text-white font-bold py-2 px-4 rounded;
}Another benefit is that "bg-blue-500" is globally configurable with [1] themes or configuration files. This means you're not hard-coding colors or sizes (although, yes that's possible with plain old CSS too)
But what's even faster is simply using the utility classes in your components (it looks messy at first) but its extremely fast to write once you know the syntax of the classes e.g. ".p-xx = padding: xxem". Then all your components encapsulate that messiness and it's easy to change.
For example in vuejs, I might make a "btn" component file and style it using Tailwind classes, then the component encapsulates all it's styles but can still be globally configured using tailwind themes.
Outside of CSS Zen Garden and tiny hobby project, I feel like CSS and HTML _never_ were used as intended. I think the author of TailwindCSS said as much, but I can't find the quote now.
For example, you will want to make things like the buttons easily reusable instead of repeating the same CSS utility classes everywhere, so you may want to spend time creating reusable components for the common UI elements in your front-end framework.
Another frustrating thing is figuring out which are the "active" and "inactive" classes on some components, as described in this tweet: https://twitter.com/cgenco/status/1256948882065494017
Overall, I'd say if speed of development is a priority, then it may be easier going for a ready-made bootstrap template or UI component library. If flexibility and customization is a priority, then go for TailwindUI.
I regularly build MVPs or administration dashboards and TailwindUI saved me several hours of work.
With perspective, it's one of the best investments I've made. Moreover the Tailwind team regularly adds new templates.
I'd recommend to first try using Tailwind without buying the UI option, it's free and open source.