MUI has come a long way from LESS, to inline styling, to CSS-in-JS. With React, LESS turned out to be suboptimal due to global scoping, class name clashes, and minification constraints (to name a few). Though inline styles do provide for dynamic styling, theming, and code splitting, they come at the cost of a performance drop, not to mention the loss of the more advanced CSS features (e.g. pseudo elements or classes, media queries, keyframes, etc.). CSS-in-JS, and more specifically JSS, which the dev team decided to go with, circumvents all of those problems with little overhead. Read on about the MUI styling journey here https://oliviertassinari.github.io/a-journey-toward-better-style/#/?presenter
So far, we've mostly (with one exception) used inline styles in our fitness app. Turns out, components in React come with a "style" attribute that accepts a POJO with camelCased CSS properties. Just like conventional inline styles, they will take the highest precedence compared to embedded (in a "style" tag) and external (in a separate CSS file) styles. Beware that inline styles don't support autoprefixing and are not easy to debug. React docs themselves (https://reactjs.org/docs/dom-elements.html#style) suggest to limit their use to dynamically-computed styles that are rendered at runtime.
And if you're still reluctant to embrace CSS in JS, make sure to go through this beautifully-crafted read https://medium.com/seek-blog/a-unified-styling-language-d0c208de2660 Projects like JSS might as well be laying out the fundament for the future of styling on the web platform. The folks at MUI can't agree more; find out how they nailed down their styling dilemma here https://material-ui-next.com/getting-started/comparison/#styling-solution
Apart from having a sneak peek into CSS-in-JSS, we'll also address a few other issues in the light of React 16.3 coming out and material-ui-icons being moved to @material-ui/icons. As mentioned in the vid, let me know if you want to see React context API used in this app.
How CSS in JS originally came about with React https://speakerdeck.com/vjeux/react-css-in-js
A Journey toward better style (MUI) https://github.com/oliviertassinari/a-journey-toward-better-style#readme
Why sould I use JSS? https://material-ui-next.com/getting-started/faq/#do-i-have-to-use-jss-to-style-my-app-