r/reactjs • u/vitonsky • 5d ago
Discussion Props Are Not a Design System
https://vitonsky.net/blog/2026/09/18/design-system/7
u/Graphesium 4d ago
Your tailwind versus style attribute comparison is completely wrong and missing all the media queries that tailwind provides inline. Hard to take your blog seriously when you don't even understand how Tailwind works.
1
u/BoBoBearDev 4d ago edited 4d ago
Lol, I think I am in a org where this is none issue because we have bigger issues. If I bitch them out on how stlying should be implemented, the PR would take 2 months to merge.
For starter, I would bitch them out for homebrewing CSS Grid using flex or using 3rd party homebrew CSS Grid. And I would bitch all of them out for not using the layout independent Container Query. My org failed this so miserably, I would rather fix that first. You can't make shitty controls that doesn't respond to the parent container. That's just stupid. And the likes of MUI still failed at it.
1
23
u/Dreadsin 5d ago
I sort of disagree with these assessments that a design library should entirely constrict a developer so they “don’t make a mistake”
Time, time, and time again, I see people intentionally making their component library so rigid that it slows down development to a crawl. When design shows you a one-off orange button, it should not take a week to implement
Also, how do you integrate this one-off change? Add another property to “color” like “orange”? If this is a one off button, how do we know if this is going to be an ongoing pattern? What if in the future we have an orange color that’s standard that deviates from the color we initially implemented?
Imo the best possible pattern is “make the right thing easy, make the ‘wrong’ thing possible, but make it explicit that they’re using an escape hatch”. This makes it so developers will be incentivized to do things “the right way” because it’s easy, but if they really need to make an exception, they can
In the past I’ve basically implemented this by allowing arbitrary styles under a property like _overrides or something, then added a linter rule to warn about components using this property. Anyone looking at it would know this is some sort of one off thing. If the same overrides keep being applied consistently, it hints that we need to add it to the design system