Less annoying CSS in React with CSS modules

fawazsullia

fawazsullia

Posted on May 18, 2021

Less annoying CSS in React with CSS modules

A fundamental problem with CSS is that it's globally scoped.

So, if you have a number of components in your React app, you would have to think of unique classes to name your components.

And the bigger your app gets, the harder.

This is where CSS modules come in.

CSS modules let you create CSS files that are locally scoped.

Here's how you do it;

  1. Create a CSS file with .module.css extension
  2. In your component, use import * as anyName from 'relative path'
  3. And in yout jsx elements, use className={anyName.nameofclass}
  4. In your module.css file, use .nameofclass to select the elements

Note that, you can select child elements with .nameofclass element name as well (.container button)

This way, you don't have to worry about thinking of unique names to name your class.

Note: Css modules are not intrinsic css features. On compilation, they get compiled to normal css. You would need the right compiler configuration to be able to use this. If you use web pack, it's already included.

If you found this useful, let me know in the comments. if there's a better way to CSS in react, drop a comment

💖 💪 🙅 🚩
fawazsullia
fawazsullia

Posted on May 18, 2021

Join Our Newsletter. No Spam, Only the good stuff.

Sign up to receive the latest update from our blog.

Related