TECHNOLOGY COMPARE

CSS Modules / Emotion

「どっちが上?」ではなく、まず同じ仕事をする道具なのかを確認します。

DIRECT COMPARISON

直接比較しやすい組み合わせ

CSS ModulesとEmotionはどちらも「CSS設計・生成」の技術なので、同じ土俵で比較しやすい組み合わせです。

CSS設計・生成

CSS Modules

クラス名をファイル単位に閉じ込めるCSSの管理方式。ビルド時にクラス名を固有化し、部品間の衝突を防ぐ。

何を担当する?

ビルド時にクラス名を固有化し、部品間の衝突を防ぐ。

いつ使う?

  • 部品ごとに通常のCSSを安全に分離したいとき。

避けたい場面

  • グローバルなユーティリティクラスを中心に統一したいとき。
CSS設計・生成

Emotion

柔軟なAPIを持つCSS-in-JS ライブラリ。オブジェクトまたはテンプレート記法から部品に紐づくスタイルを生成する。

何を担当する?

オブジェクトまたはテンプレート記法から部品に紐づくスタイルを生成する。

いつ使う?

  • Reactでテーマや動的スタイルを細かく制御したいとき。

避けたい場面

  • ランタイムのスタイル生成を避け、標準CSSを優先するとき。
DIRECT RELATION

CSS ModulesとEmotionはスタイルの再利用、局所化、実行時コストで比較される。ビルド時にクラス名を固有化し、部品間の衝突を防ぐ。一方、Emotionはオブジェクトまたはテンプレート記法から部品に紐づくスタイルを生成する。