OSS探訪GitHubでログイン

object/string style・composition・themeをReactへ組み込む高性能CSS-in-JS library

スコアの見方

OSS規模スコアはStars・Watchers・Forks・Contributorsを対数圧縮して重み付けした現在の規模指標(上限なし)です。発掘スコアは現在のOSS規模スコアから発掘時点のOSS規模スコアを引いた値、更新ペースは直近30日Commit数、成長モメンタムは直近の観測期間におけるOSS規模スコア差、OSS健全度は取得できた更新状況・Community Health・Releaseの0〜100評価です。

Stars
18,019
主要言語
JavaScript
ライセンス
MIT
リポジトリ最終更新
2026/08/28
ページ内ナビ

概要

EmotionはJavaScript/TypeScriptからCSSを定義し、React componentへstyleを適用するCSS-in-JS libraryです。object styleとtemplate literal、style composition、global style、theme、cacheを提供し、class nameの詳細を手動管理せずにcomponentとstyleを近接配置できます。

特徴と向いている用途

公式資料に基づく紹介・実機未検証 · 内容確認日:

主な特徴

css propとcss()でobject/string styleをcomponentへ適用する

@emotion/reactはcss、jsx、CSS prop等を提供し、object styleとtemplate literalの両方をReact componentへ適用できます。

出典:[2][3]

style compositionでvariantや共通styleを組み合わせる

複数styleをpredictableにcomposeでき、既存styleへvariantや状態別styleを追加しながらspecificity conflictを抑えられます。

出典:[1]

Global・ThemeProvider・CacheProviderでapplication単位のstylingを構成する

global CSS、theme context、custom cache等をReact treeへ統合でき、design tokenやSSR構成に合わせてstyling boundaryを設計できます。

出典:[2]

向いている用途

React componentとstyleを同じmoduleで管理しつつdesign systemを構築したい場合に向く

component propsやthemeに応じたdynamic styleをJavaScript側で組み立て、再利用可能なUI primitiveやdesign systemを構築したいfrontend applicationに適します。

出典:[1]

導入前の確認

@emotion/react 11.14.0はReact 16.8以上を要求する

package metadataはReact >=16.8.0をpeer dependencyとして定義します。React versionとSSR/runtime条件を合わせて確認してください。

出典:[3]

monorepo内packageは同じrelease cadenceではない

確認時点で@emotion/reactのstableは11.14.0ですが、@emotion/styled等は別versionで更新されています。repository全体を単一versionとして扱わず、実際に導入するpackage単位でpinしてください。

出典:[4][3]

参考にした公式資料

  1. [1]Emotion repository README(2026-10-05)
  2. [2]@emotion/react 11.14.0 README(2026-10-05)
  3. [3]@emotion/react 11.14.0 package metadata(2026-10-05)
  4. [4]@emotion/react 11.14.0 release(2026-10-05)
  5. [5]Emotion MIT license(2026-10-05)
編集部からの補足

Emotionは複数packageのmonorepoです。Reactでは@emotion/reactを中心に、styled APIが必要な場合のみ@emotion/styledを追加し、必要packageを分けてpinしてください。

3ステップで試す

  1. 1

    Emotion React 11.14.0を固定して導入する

    一時npm projectへReact packageとpeer dependencyを固定して導入します。

    demo=$(mktemp -d "${TMPDIR:-/tmp}/emotion.XXXXXX") && cd "$demo" && npm init -y >/dev/null && npm install --save-exact @emotion/react@11.14.0 react@19.2.0
  2. 2

    package versionを確認する

    review対象の@emotion/react versionが導入されていることを確認します。

    test "$(node -e "console.log(JSON.parse(require('fs').readFileSync('node_modules/@emotion/react/package.json')).version)")" = '11.14.0'
  3. 3

    主要styling APIのexportを確認する

    browserを起動せず、CSS compositionとprovider系の主要APIが利用可能であることを確認します。

    test "$(node --input-type=module -e "import * as E from '@emotion/react'; console.log(['css','jsx','CacheProvider','ThemeProvider'].every(k=>k in E))")" = 'true'
公式READMEで確認

成長

成長の推移 · 直近30日

18,019 Stars

推移データを蓄積中です。

開発アクティビティ

直近90日・週次

Commit(直近30日)
0
Open PR
86

開発アクティビティを蓄積中です。

Built with

カテゴリとタグ

GitHubデータ

GitHubのデータGitHubの詳細データを見る

GitHub Topics

  • css-in-js
  • babel-plugin
  • react
  • reactjs
  • css
  • emotion
Stars
18,019
Forks
1,137
Watchers
97
Open Issues
310
Contributors
304
所有者種別
Organization
主要言語
JavaScript
ライセンス
MIT
リポジトリ最終更新
2026/08/28

このOSSの使い方や活用事例をMarkdownで投稿できます。管理者が承認した後に公開されます。

情報の誤りを報告

掲載内容に誤りや古い情報があればお知らせください。

このページを読んで、次に何をすればよいか分かりましたか?