TL;DR
名前のとおり、CSS を JavaScript の中に書く手法。
なぜ必要か
スタイルは同じモジュールの中に書くか、他の依存関係と同じように import するので、コンポーネントに関係するスタイルを探してコードベースを検索する必要がない。マークアップと同じく、スタイルもプロパティや状態に応じて生成できる。スタイルを単体テストの対象にすることもできる。
仕組み
スタイルを適用するタイミングによって、2 種類に分けられる。
- Runtime CSS-in-JS: アプリケーションの実行時にスタイルを解釈して適用する
- Zero-runtime CSS: ビルド時に CSS ファイルを生成する