本文へスキップ

カード反転

ホバー(PC)またはタップ(スマホ)でカードがY軸回転して裏面を表示。transform-style: preserve-3d+backface-visibility: hiddenで実装。

プレビュー

ホバー

操作カーソルを乗せると動きます(スマホはタップ)。

仕様書

向く場面
  • 表に要約・裏に詳細の2面カード
  • 暗記カード・プロフィール
  • タップとキーボードで裏返せる小さな情報
避ける場面
  • 裏面の情報が必須で隠してはいけない
  • 一覧に大量に並べる
  • outline:none のままフォーカスが見えない状態で使う
構成要素
  • シーン
  • カード
  • 表面
  • 裏面
持っている状態
  • 通常
  • ホバー
  • フォーカス
  • 押下中
キーボード

Tab でカードへ(tabindex=0)・Enter/Space で反転(keydown 実装あり)

支援技術

role=button+tabindex=0+aria-label=カードを反転、aria-pressed で表裏を同期。裏面は backface-visibility で隠れるが読み上げは両面。focus-visible の輪郭あり。reduced-motion では回転せず即時に裏返る

動き

rotateY 180° を 0.55s cubic-bezier(.4,0,.2,1)。裏返る物理感。reduced-motion では即時

デザインの要点

  • 表裏は同じ位置に絶対配置し、裏面だけ最初から rotateY(180deg) にしておく。カード全体を 180° 回すと裏面が正面を向く
  • backface-visibility:hidden を両面に付ける。無いと回転の途中で裏面が鏡文字のまま透けて見える
  • perspective はカードではなく親の scene に付ける。カード自身に付けると回転中に遠近が効かず、平面が回るだけに見える
  • outline:none で消したフォーカスは :focus-visible で必ず戻す。Enter で裏返せるのに、どこにフォーカスがあるか見えないのは事故

コード(コピーして使えます)

<div class="fc-scene">
  <div class="fc-card" tabindex="0" role="button" aria-label="カードを反転" aria-pressed="false">
    <div class="fc-face fc-front">
      <div class="fc-front-icon">🎴</div>
      <p class="fc-front-label">ホバーで反転</p>
    </div>
    <div class="fc-face fc-back">
      <p class="fc-back-title">ちいつる</p>
      <p class="fc-back-desc">小さな道具箱。<br>いつでも使えるWebツール集。</p>
    </div>
  </div>
</div>

タグ

同じカテゴリ「ホバーエフェクト」のほかのパーツ

関連パーツ