背景
技術スタックの一新で CSS Modules で記述していた部分を CSS in JS に置き換えた。
いずれにしても React コンポーネントも書き換える必要があり、そのまま CSS Modules を利用する大きなメリットはなかったため、再考の余地があった。
CSS Modules とは
CSS Modulesは、JS ファイルから CSS ファイルを import して利用する技術。
スタイル定義は通常の CSS と同様の記述のため、学習コストは低く、.component__T09hDのようなクラス名を自動生成してくれるため、クラス名の競合を防げるような特徴がある。
書き方
JS ファイルから CSS を import して、コンポーネントの className に CSS のクラスに該当する変数を指定することでスタイルが適用される。
/* styles.css */
.component {
color: red;
}// Component.jsx
import styles from "./styles.css";
const Component = () => {
return <div className={styles.component}>Component</div>;
};