Tailwind v4 で hover が効かない問題を解決した方法

Tailwind CSS v4 アップグレード後に発生する hover 効果の不具合と、@custom-variant を使った解決策を解説します。

Share

問題の発生

Tailwind CSS v4 にアップグレードした後、プロジェクト内の hover:bg-gray-200 などの hover バリアントが効かなくなりました。一方、Firefox では正常に動作し、Chrome や Edge などの Chromium 系ブラウザで問題が発生します。

開発者ツールで要素を検査し、:hover を強制適用してもスタイルが反映されないため、Tailwind の生成 CSS に問題があると判断しました。

原因

Tailwind CSS v4 では、hover バリアントがデフォルトで @media (hover: hover) メディアクエリ内で出力されるようになりました。これは、モバイルデバイスでの「sticky hover」(タップ後にホバー状態が残る問題)を防ぐための仕様変更です。

しかし、Windows の 2-in-1 PC やタッチスクリーン搭載デバイスでは、Chromium が入力デバイスを「タッチ中心」と誤判定し、メディアクエリが false になるため、hover 効果が一切適用されなくなります。これは Chromium の既知のバグで、Firefox では発生しません。

公式ドキュメント(Hover, focus, and other states)でも、この変更が説明されており、アップグレードガイドでカスタムバリアントの追加が推奨されています。

解決策

src/app.css にカスタムバリアントを定義することで、hover を従来の :hover セレクタに戻します。これにより、メディアクエリをバイパスし、すべてのデバイスで hover が動作します。

手順

  1. src/app.css を開き、以下を追加します。
@custom-variant hover (&:hover);

例(既存のコードに追加):

@import "tailwindcss";
@plugin "@tailwindcss/typography";
 
@import "tw-animate-css";
 
@custom-variant dark (&:is(.dark *));
 
@custom-variant hover (&:hover);  /* ここを追加 */
 
:root {
  /* ... 既存の CSS ... */
}
  1. 開発サーバーを再起動します(Ctrl+Cnpm run dev 等)。
  2. ブラウザのキャッシュをクリアし、ページをリロードします。

動作確認

  • Chromium 系ブラウザで hover 効果が復活します。
  • 開発者ツールで生成された CSS を確認すると、hover:bg-gray-200@media (hover: hover) なしの :hover で出力されます。

注意点

  • この変更はモバイルでの sticky hover を復活させる可能性がありますが、開発環境やデスクトップ中心のプロジェクトでは問題ないはずです。
  • モバイル最適化が必要な場合、代わりに focusactive バリアントを活用するか、カスタムメディアクエリを追加してください。
  • Tailwind v4 のこの仕様は意図的なもので、今後のアップデートで改善される可能性があります。公式アップグレードガイドを確認してください。

まとめ

Tailwind v4 の hover 問題は、カスタムバリアントの追加で簡単に解決できます。この方法で、私のプロジェクトのサイドバーリンクの hover 効果が復活しました。v4 の新機能は便利ですが、こうした変更に注意が必要です。

参考: Tailwind CSS 公式ドキュメント

Read more

サービス更新履歴

ここでは、LiveQのサービス・製品への変更を全て紹介しております。 このページは大きな変更があった場合に更新されます。 いつごろにどのような機能がリリースされたかが分かります。 2026年6月: 高速化・安定化 * 5月よりサーバーおよびアプリケーションの大型リニューアルに取り組み、6月に読み込み速度の向上や、大規模アクセス時にも安定して高速に動作するように変更をおこないました。 2026年4月: 画像スライド * 新たなスライドの種類として画像スライドを追加しました。 * PowerPoint, PDFファイルを一括インポートし、画像スライドとして追加する機能を追加しました * そのほか多数の細かな変更(操作性などのデザイン改善や、不具合)をおこないました 2026年3月: ワードクラウド、コメントのAIモデレーション(監視) * 新たなスライドの種類としてワードクラウドを追加しました * コメントをAIで自動監視する機能をリリースしました * そのほか細かな改善や不具合の修正をおこないました 2026年2月: 有料プランのデータエクスポート

By 阿部 隼也

チームメンバーを招待する方法

チームメンバーを追加するには、招待する必要があります。 その招待方法を紹介します。 招待可能なチームメンバーの数は、ご利用のプランによって異なるため、事前にご確認ください。 チームページの「新しいチームメンバーを招待」にて、招待するメンバーのメールアドレスを入力し、「招待を送信」をクリックします。 招待された側で招待を承認 次に、招待された側の方によって招待を承認する必要があります。 ※この承認にはLiveQのアカウントが必要となりますので、必ず事前にご登録ください。 下記のような招待メールが届きます。 件名:【LiveQ】チームへの招待が届いています 差出人:[email protected] 既にLiveQに登録済みの方はそのまま「招待を承認して参加する」ボタンをクリックします。 まだLiveQに登録していない方は、登録後、同様に承認ボタンをクリックします。 チームを切り替える 招待を承認すると、チームページに下記のように「チーム切り替え」ができるようになります。 招待したユーザーにもメールが届きます 招待が承認されると、招待したユーザーに

By 阿部 隼也