Utility-first css (aka atomic css, aka functional css) is something that exists way before tailwind. The first framework built on top of this approach was AtomicCSS in 2015 and thi approach can’t replace the OOCSS, you can see it even on the tailwind documentation examples. You end using both approaches very often due to its limitations.
Said that tailwind requires a specific build process when used inside not-static projects like react, vue or svelte because purge CSS needs to be configured to remove tailwind’s dead code from dynamically generated dom (and doesn’t works well).
Also atomic CSS, and so Tailwind, follow opposite paradigms than any modern component-based framework.
it’s a good tool like many other CSS frameworks made in the last 5/6 years, but only for static HTML projects. They are just another useless abstraction layer and tools to be configured when building component-based projects that introduce more appropriate tools (CSS modules, CSS-in-components, scoping)
We're a place where coders share, stay up-to-date and grow their careers.
We strive for transparency and don't collect excess data.