カーソル追従スポットライト

アニメーション Medium #js #spotlight #hover #follow

マウスの位置に丸い光が追従し、暗い面をやわらかく照らすホバーエフェクトです。SaaS の機能紹介などでよく見る没入感のある演出を、最小限のコードで実現します。JavaScript は mousemove でポインタ座標を取得し、CSS カスタムプロパティ( --x / --y )に渡すだけ。

▶ プレビュー

解説

マウスの位置に丸い光が追従し、暗い面をやわらかく照らすホバーエフェクトです。SaaS の機能紹介などでよく見る没入感のある演出を、最小限のコードで実現します。JavaScript は mousemove でポインタ座標を取得し、CSS カスタムプロパティ(--x / --y)に渡すだけ。実際の光は ::beforeradial-gradient で、transform がその座標へ transition 付きで滑らかに移動します。

こんな場面に

  • 製品の特徴を並べたダークテーマのセクション
  • カードや見出しにカーソルを近づけると反応するインタラクション
  • ヒーローでマウス操作の心地よさを伝えたいとき

光の色とにじみは radial-gradient、大きさは円の widthheight、追従の滑らかさは transition の時間で調整します。見出しに mix-blend-mode:difference を当てているため、光が重なっても文字が読める設計です。座標はコンテナ基準(getBoundingClientRect)で算出しているので、ページのどこに置いてもズレません。タッチ端末ではホバーが効かないため、モバイルでは無効化する判断も検討しましょう。

使用例・適したシーン

  • ナビゲーションのインタラクティブ装飾
  • ギャラリーのホバーリビール
  • サービスカードの強調

よくある質問

光の色や大きさを変えられますか?
光の色とにじみ方は .sh::before の radial-gradient で、サイズは width と height で調整します。色を変えるときは見出しの mix-blend-mode との相性も確認すると、文字の見え方が安定します。
スマートフォンでも動きますか?
この演出はマウス移動に反応するため、タッチ操作が中心のスマートフォンでは光が追従しません。モバイルでは無効化するか、別の演出に切り替える運用が現実的です。
追加日:2026-05-11
← すべてのスニペットへ戻る