hover
directional-aware hover
カーソルが入った辺から塗り(オーバーレイ)が流れ込み、出た辺へ引いていくホバー。上下左右どの辺から入ったかを判定するのが肝で、固定方向のフィルより「触った感」が段違いに出る。カード・ナビ・CTAで定番。
02 — Prompt template
03 — Params
duration(流れ込む時間 s) — 範囲 0.2〜0.7 / 初期 0.4
0.35〜0.45sが自然。速いほどキレが出るが、0.25sを切ると方向が読み取れなくなる。leaveMode(離脱時の引き方) — 選択: 出た辺へ引く / 入った辺へ戻す(初期: 出た辺へ引く)
マウスが離れたとき塗りをどこへ逃がすか。「出た辺へ引く」が最も自然で、動きに一貫性が出る。
04 — Vocab
directional-aware — カーソルの進入方向を検知して動きの向きを変える考え方。Codropsの古典デモで広まった呼び名。
getBoundingClientRect — 要素の画面上の矩形(位置とサイズ)を返すAPI。カーソル座標との差から4辺のどれに近いかを算出する。
オーバーレイ退避 — 塗りレイヤーを入った辺の外にtranslateで一旦逃がしておくこと。そこから0へ動かすと「その辺から流れ込む」ように見える。
mix-blend-mode: difference — 塗りの色に応じて前面テキストの色を自動反転させる合成モード。文字色の手動切替を省ける。
05 — NG → OK examples
NG
言い方: 「「ホバーでカードに色がスッと入るようにして」」
なぜNG: 「スッと」では方向が決まらない。transform-origin固定のフィルや background-color の単純transitionが返り、どこから触っても同じ動きになって“方向連動”の気持ちよさが消える。
OK
言い方: 「「directional-aware hoverを実装。mouseenterでrectから最も近い辺を判定し、その辺の外へ退避させたオーバーレイをtranslateで0へ0.4s ease-out。leaveは出た辺へ引く。transformのみでリフロー禁止、テキストはdifferenceで反転」」
なぜOK: 辺判定のロジック・退避と流し込みの方式・離脱方向・パフォーマンス制約まで指定。「最も近い辺」の一語で固定方向フィルとの差(=この技法の本体)が確定する。
