TECHNOLOGY COMPARE

Emotion / styled-components

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

DIRECT COMPARISON

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

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

CSS設計・生成

Emotion

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

何を担当する?

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

いつ使う?

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

避けたい場面

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

styled-components

React部品とCSSをJavaScript内で結び付けるCSS-in-JS ライブラリ。propsに応じたスタイルと固有クラスをランタイムで生成する。

何を担当する?

propsに応じたスタイルと固有クラスをランタイムで生成する。

いつ使う?

  • 既存styled-components資産や動的テーマを保守するとき。

避けたい場面

  • サーバー component中心でランタイム CSSを減らしたい新規構成。
DIRECT RELATION

styled-componentsとEmotionはスタイルの再利用、局所化、実行時コストで比較される。propsに応じたスタイルと固有クラスをランタイムで生成する。一方、Emotionはオブジェクトまたはテンプレート記法から部品に紐づくスタイルを生成する。