CSS Modules
Into reading: https://css-tricks.com/css-modules-part-1-need/ (opens in a new tab)
Why?
- Allows us to automatically namespace our components.
Drawbacks
- Makes targeting selectors more difficult (see data aliases).
Understanding the structure
Because we use CSS Modules, the classNames property is actually an object,
where each property refers to a specific usage.
So given a classNames object,
{
"main": "class-for-main",
"inner": "class-for-inner"
}Passed into a component JSX index,
function = ( { classNames } ) => {
return (
<>
<div class={ classNames.main } />
<div class={ classNames.inner } />
</>
);
}Allows us to apply any number of classes in our component.
<div class="class-name-for-main" />
<div class="class-name-for-inner" />