Great question!

Arguments against CSS-in-JS mostly focus on complexity. CSS Modules is a simpler pattern with less boilerplate than most CSS-in-JS implementations. If you’re working on a small team and / or a small application, and can tightly enforce style patterns such as BEM or SMACSS, that’s probably best. I’ve followed those patterns for smaller projects and had a lot of success.

In my experience with larger applications and teams has been that the level of effort to enforce manageable style practices grows really quickly. If styles seems unmanageable in a CSS Module pattern, I would recommend a CSS-in-JS pattern instead where predictable behavior is built-in. But that’s the tradeoff, simplicity vs. predictability.

design systems @workday

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store