The biggest problem with CSS when trying to maintain a design system is the same problems you run into any time you use inheritance in programming.
Inheritance has its place, but making your CSS composable the way Tailwind does makes it practical to actually adhere to a design system.
If you’re more worried about the purity of your HTML, then Tailwind is not for you.
In my front end, for example, I have registration-page.jsx and registration-page.less, and there is really zero mystery where the styles are for the registration-page. It uses components like password-input.jsx, and guess what? the CSS for that is in password-input.less. There's no grepping, there's no difficulty finding the classes that are specified. Everything is very orderly and easy to find.
On work projects with 5 years of contributions wrote by 50+ collaborators and close deadlines? Hardly think so.
Or use your IDE's project search? In vscode you can just ctrl-click on the class and it should find it?
IT IS NOT DIFFICULT
Ask me how I know!
I've done that before, and everyone who does regrets it. It should be a linting error, not something we need to re-write searching to support.
Yes, and?
Developers tend to do bad things sometimes. It happens. That’s the reality.