個人開発者が勉強がてらまとめているだけのサイトです

ホバーで変わる Hover Effect

PC でマウスを乗せると、カードが少し浮き上がって色が変わり、カーソルが指の形になる。押せることが伝わる。

別名
マウスオーバーホバーエフェクト浮き上がるカードロールオーバーMouse OverHover State
動き
マウスを乗せると浮く色が変わるカーソルが指の形
作り方
標準ウィジェット Flutter に入っているものだけで作れます

本物の Flutter ウィジェットが動きます(初回は数秒かかります)

別タブで大きく開く ↗

どんなもの?

Web や PC 向けアプリで「ここは押せる」と伝える反応です。スマホには「乗せる」操作がないので起きません。

MouseRegion の onEnter / onExit で乗っているかを覚え、AnimatedContainer で影・位置・色をなめらかに変えます。

cursor: SystemMouseCursors.click で、カーソルを指の形にできます。

単に色を変えるだけなら、InkWell の onHover や ButtonStyle の hovered 状態を使う方法もあります。

こんなときに

  • Web・PC 向けアプリのカードやリンク

避けたい場面

  • ホバーでしか見えない情報や操作を作る(スマホでは見られない)

最小コード

MouseRegion(
  cursor: SystemMouseCursors.click,
  onEnter: (_) => setState(() => hover = true),
  onExit: (_) => setState(() => hover = false),
  child: AnimatedContainer(
    duration: const Duration(milliseconds: 180),
    transform: Matrix4.translationValues(0, hover ? -6 : 0, 0), // 浮き上がる
    decoration: BoxDecoration(
      color: hover ? Colors.indigo.shade50 : Colors.white,
      boxShadow: [BoxShadow(blurRadius: hover ? 18 : 4, color: Colors.black26)],
    ),
    child: const ListTile(title: Text('デザイン')),
  ),
)

使うウィジェット

MouseRegionAnimatedContainerSystemMouseCursors

似ているもの・一緒に見たいもの

触ってみる ↗
ボタン ボタンの種類Button Styles

塗り・トーナル・浮き・枠線・文字だけ、の5段階の目立ち方があり、操作の重要さに合わせて使い分ける。

押すと波紋