Emotion はメンテナが issue に反応することはあるものの、2026 年に入ってからのコミットは 0件。 @emotion/react の最終公開は 2024-12-09 です。

#開発は止まっている

emotion-js/emotion の最終コミットは 2025-11-04。年次のコミット数は次のとおり落ちています。

コミット数
2022100+
202320
202442
20257
20260

オープン 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-pluginpath.hoist() を呼んでいますが、このメソッドは @babel/traverse v8 で削除されています。Babel 8 に上げると、css / styled / css prop を使うファイルがビルド時に落ちます。ビルド時を回避する方法もありますが、その場合ランタイムで落ちます。

@emotion/babel-plugin@babel/core を peer に宣言していないので、パッケージマネージャの警告も出ません。報告 issue(#3386)は起票から数週間、メンテナの反応がありませんでした。

依存を辿ると、凍結されたパッケージの上に乗っていることがわかります。

パッケージ最終公開状態
1@emotion/babel-plugin2024-11-20Babel 8 で破損(#3386
2babel-plugin-macros2021-05-05Maintenance is frozen(2021-05-13)
3cosmiconfig@7.1.0yaml CVE(#3379 未解決)

Andarist は #3379 で「macros をフォークしてインライン化する PR なら受け入れる」と答えています。壊れたら PR は見るが、自分からは直さない。この姿勢が一貫しています。

ただし影響は「Babel でビルドしていて、かつ @emotion/babel-plugin を入れている」場合に限られます。昨今のビルド経路は Babel を避ける方向に寄っています。

ビルド経路最新版Babel
@vitejs/plugin-react6.0.4依存から消えた(任意 peer)
@vitejs/plugin-react-swc4.3.2不使用
@vitejs/plugin-react-oxc0.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年コミット最新リリース判定
Emotion2025-11-040本体は 2024-12-09停滞+既存破損あり
styled-components2026-07-19100+6.4.4 + v7 プレリリース活発
Tailwind CSS v42026-07-28100+4.3.3極めて活発
vanilla-extract2026-07-29651.21.2活発
Panda CSS2026-07-29100+1.12.0活発
StyleX2026-07-21100+0.19.0活発
Linaria2026-07-20368.1.1低速だが生存
goober2026-05-1352.1.19個人メンテ・低活動
Pigment CSSMUI モノレポ内100+@mui/material-pigment-css 9.2.0MUI へ移管済み
Stitches2023-06-1902022-04-25archived

#需要の下支えも細い

Emotion を必須に近い形で抱えている大きな利用者は、だいたい MUI と Chakra UI です。

ライブラリスタイルエンジンEmotion 依存週間 DL
Radix UIアンスタイルド(CSS 任意)なし68.5M
MUIEmotion(既定)/Pigment CSS(代替)v9 で optional peer10.3M
Ant Design@ant-design/cssinjsなし3.89M
MantineCSS Modules(v7 で転換済み)なし2.33M
Chakra UIEmotion + Panda の is-valid-prop必須(@emotion/react >=111.78M
Ark UIアンスタイルド(Panda 前提)なし993k

MUI v9 では Emotion が optional peer に落ち、Pigment CSS への離脱経路が用意されました。Chakra はまだ Emotion 必須ですが、zero Emotion runtime の PR は検討の末 close。計画は未確定です。Radix UI のようなアンスタイルド方向が週間 DL では圧倒的であり、Emotion を強制する世界は狭まっています。

#移行するならどこへ

行き先を技術特性と移行のしやすさで並べます。

ライブラリ実行方式RSCBabel 8Emotion からの移行メモ
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はコードベースも古くなっており、今後、大規模な変更やメンテナによる意思決定が必要になると思われますが、現状の体制では厳しいです。既存のプロダクトは逃げ道だけ確保しておきましょう。

#参考