Tailwind is the best thing that has happened to CSS Frameworks in the last 10 years. * Define the essence of your design in a JSON - typography, colors, spacings, shadows, borders et al. * Anyone in the team including backend developers can create new interface components without waiting on a designer, thanks to well-defined scales that compose well. * The component (HTML+CSS) is the unit of abstraction. eg: "Profile…
> Define the essence of your design in a JSON - typography, colors, spacings, shadows, borders et al.
_variables.sass
> Anyone in the team including backend developers can create new interface components without waiting on a designer, thanks to well-defined scales that compose well.
This is true, but is solved by any sort of component system and not unique to tailwind.
> The component (HTML+CSS) is the unit of abstraction. eg: "ProfileCard". Inside ProfileCard you'll use Tailwind's utility classes to build your component. You reuse this component everywhere, and if you have to "change a button's padding across the product" (which to me is far too rare) you open your component files and change them there.
Why would you change a padding in multiple files when you can set `$base_padding: 10px`?
> It is so easy to build UIs - you don't have to name every single element in the DOM - these names are _only_ to act as "hooks" into the CSS, and serve no abstraction. With Utility classes you can just assemble them in the HTML without touching the CSS
Going by the first example in the linked article, something like "text-grey-dark" seems like an awful idea when what it really means is "text-quiet". Heck in their example "dark" is _lighter_ than the surrounding text.