Emotion はメンテナが issue に反応することはあるものの、2026 年に入ってからのコミットは 0件。 @emotion/react の最終公開は 2024-12-09 です。
開発は止まっている
emotion-js/emotion の最終コミットは 2025-11-04。年次のコミット数は次のとおり落ちています。
| 年 | コミット数 |
|---|---|
| 2022 | 100+ |
| 2023 | 20 |
| 2024 | 42 |
| 2025 | 7 |
| 2026 | 0 |
オープン PR は 76 件。直近 12 か月のマージは 5 件で、うち 2 件はリリース用の自動コミットでした。メンテナ自身が起票した Trusted publishing の PR(#3376)すら未マージ。RSC 対応の issue(#3367)やBabel v8対応のissue (#3386)も起票以来コメントがありません。
一方でドメイン失効にはすぐ反応して復旧させています(#3387)。
Babel 8 で落ちる
Babel 8.0.0 は 2026-06-16 に出ました。@emotion/babel-plugin は path.hoist() を呼んでいますが、このメソッドは @babel/traverse v8 で削除されています。Babel 8 に上げると、css / styled / css prop を使うファイルがビルド時に落ちます。ビルド時を回避する方法もありますが、その場合ランタイムで落ちます。
@emotion/babel-plugin は @babel/core を peer に宣言していないので、パッケージマネージャの警告も出ません。報告 issue(#3386)は起票から数週間、メンテナの反応がありませんでした。
依存を辿ると、凍結されたパッケージの上に乗っていることがわかります。
| 層 | パッケージ | 最終公開 | 状態 |
|---|---|---|---|
| 1 | @emotion/babel-plugin | 2024-11-20 | Babel 8 で破損(#3386) |
| 2 | babel-plugin-macros | 2021-05-05 | Maintenance is frozen(2021-05-13) |
| 3 | cosmiconfig@7.1.0 | — | yaml CVE(#3379 未解決) |
Andarist は #3379 で「macros をフォークしてインライン化する PR なら受け入れる」と答えています。壊れたら PR は見るが、自分からは直さない。この姿勢が一貫しています。
ただし影響は「Babel でビルドしていて、かつ @emotion/babel-plugin を入れている」場合に限られます。昨今のビルド経路は Babel を避ける方向に寄っています。
| ビルド経路 | 最新版 | Babel |
|---|---|---|
@vitejs/plugin-react | 6.0.4 | 依存から消えた(任意 peer) |
@vitejs/plugin-react-swc | 4.3.2 | 不使用 |
@vitejs/plugin-react-oxc | 0.4.3 | 不使用 |
| Next.js | — | 既定は SWC(Babel は opt-in) |
プラグイン自体も必須ではありません。jsxImportSource: "@emotion/react" の自動 JSX ランタイムなら css prop は動きます。失うのは開発時のクラス名ラベルとソースマップくらいです。
まわりは動いている
同じ CSS-in-JS でも、styled-components は 2025 年にメンテナンスモード入りした印象が強いです。しかし 2026 年は 100 コミット超で 6.4.4 を出し、v7 のプレリリースも進行中。メンテナ本人が abandonware ではない と明言しています。
| ライブラリ | 最終コミット | 2026年コミット | 最新リリース | 判定 |
|---|---|---|---|---|
| Emotion | 2025-11-04 | 0 | 本体は 2024-12-09 | 停滞+既存破損あり |
| styled-components | 2026-07-19 | 100+ | 6.4.4 + v7 プレリリース | 活発 |
| Tailwind CSS v4 | 2026-07-28 | 100+ | 4.3.3 | 極めて活発 |
| vanilla-extract | 2026-07-29 | 65 | 1.21.2 | 活発 |
| Panda CSS | 2026-07-29 | 100+ | 1.12.0 | 活発 |
| StyleX | 2026-07-21 | 100+ | 0.19.0 | 活発 |
| Linaria | 2026-07-20 | 36 | 8.1.1 | 低速だが生存 |
| goober | 2026-05-13 | 5 | 2.1.19 | 個人メンテ・低活動 |
| Pigment CSS | MUI モノレポ内 | 100+ | @mui/material-pigment-css 9.2.0 | MUI へ移管済み |
| Stitches | 2023-06-19 | 0 | 2022-04-25 | archived |
需要の下支えも細い
Emotion を必須に近い形で抱えている大きな利用者は、だいたい MUI と Chakra UI です。
| ライブラリ | スタイルエンジン | Emotion 依存 | 週間 DL |
|---|---|---|---|
| Radix UI | アンスタイルド(CSS 任意) | なし | 68.5M |
| MUI | Emotion(既定)/Pigment CSS(代替) | v9 で optional peer | 10.3M |
| Ant Design | @ant-design/cssinjs | なし | 3.89M |
| Mantine | CSS Modules(v7 で転換済み) | なし | 2.33M |
| Chakra UI | Emotion + Panda の is-valid-prop | 必須(@emotion/react >=11) | 1.78M |
| Ark UI | アンスタイルド(Panda 前提) | なし | 993k |
MUI v9 では Emotion が optional peer に落ち、Pigment CSS への離脱経路が用意されました。Chakra はまだ Emotion 必須ですが、zero Emotion runtime の PR は検討の末 close。計画は未確定です。Radix UI のようなアンスタイルド方向が週間 DL では圧倒的であり、Emotion を強制する世界は狭まっています。
移行するならどこへ
行き先を技術特性と移行のしやすさで並べます。
| ライブラリ | 実行方式 | RSC | Babel 8 | Emotion からの移行 | メモ |
|---|---|---|---|---|---|
| styled-components | ランタイム | "use client" | ^7 宣言 | 最易 | 記法・ThemeProvider が近い |
| Linaria | ビルド時 | 可 | ^7 宣言(babel 必須) | 易〜中 | 記法を維持してゼロランタイム化 |
| Panda CSS | ビルド時 | 可 | 不使用 | 中 | style props 志向 |
| CSS Modules | ビルド時 | 可 | 不使用 | 中 | 追加依存ゼロ |
| vanilla-extract | ビルド時 | 可 | 不使用 | 高 | .css.ts へ全面移設 |
| Tailwind CSS v4 | ビルド時 | 可 | 不使用 | 高 | クラス名へ全面移設 |
| StyleX | ビルド時 | 可 | ^7 宣言(babel 必須) | 高 | babel/rspack プラグイン必須 |
| Pigment CSS | ビルド時 | 可 | 不使用 | 高 | 実質 MUI 経由 |
| Stitches | ランタイム | 不可 | — | — | 候補外(archived) |
各対応状況:
| 状況 | 推奨 |
|---|---|
| 新規・SSR / RSC あり | Tailwind v4 / vanilla-extract / Panda |
| 新規・SPA でランタイム許容 | styled-components v6(v7 待ち) |
| 新規・依存を増やしたくない | CSS Modules |
| 記法を寄せて移す | Panda / vanilla-extract / Linaria |
| React Native も対象 | styled-components v7 |
| ライブラリ提供側 | ゼロランタイム or アンスタイルド |
急いで移行を考えなければいけないような状況ではありませんが、考えはじめた方がいいでしょう。Babelを外すか、Babel 8 を避けるかを先に決めて、行き先はプロダクトの制約で選べましょう。
しかし、新規採用は避けた方がよいです。emotionはコードベースも古くなっており、今後、大規模な変更やメンテナによる意思決定が必要になると思われますが、現状の体制では厳しいです。既存のプロダクトは逃げ道だけ確保しておきましょう。