No.064
CARD CSSTAILWIND

Tailwind Group Hover Card

カードにホバーすると半透明オーバーレイとCTAが浮かび上がるギャラリーカード。Tailwindのgroup / group-hoverで親ホバーから子を制御する定番パターン。

DEMO

IMAGE
VIEW PROJECT

CODE

HTML
<div class="demo-stage tgh-stage"><div class="tgh-card"><div class="tgh-img">IMAGE</div><div class="tgh-overlay"><span class="tgh-title">VIEW PROJECT</span><span class="tgh-arrow">→</span></div></div></div>
CSS
.tgh-stage { display:flex; align-items:center; justify-content:center; padding:3rem; background:#0F0F12; min-height:280px; }
.tgh-card { position:relative; width:240px; height:160px; border-radius:16px; overflow:hidden; cursor:pointer; }
.tgh-img { width:100%; height:100%; display:flex; align-items:center; justify-content:center; background:linear-gradient(135deg,#7b37a8,#e91b89); color:rgba(255,255,255,.55); font-family:'Oswald',sans-serif; letter-spacing:.2em; }
.tgh-overlay { position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:.5rem; background:rgba(15,15,18,.78); color:#fff; font-family:'Oswald',sans-serif; letter-spacing:.15em; opacity:0; transition:opacity .35s ease; }
.tgh-card:hover .tgh-overlay { opacity:1; }
.tgh-arrow { font-size:1.5rem; transform:translateY(8px); transition:transform .35s ease; }
.tgh-card:hover .tgh-arrow { transform:translateY(0); }
TAILWIND (HTML)

上のライブデモはTailwind不要のCSS等価版です。下は group / group-hover(親ホバーで子を制御するTailwind定番)で同じ動きになります。

<div class="group relative w-60 h-40 rounded-2xl overflow-hidden cursor-pointer">
  <div class="w-full h-full bg-gradient-to-br from-purple-600 to-pink-500"></div>
  <div class="absolute inset-0 flex flex-col items-center justify-center gap-2
              bg-gray-950/80 text-white opacity-0 transition
              group-hover:opacity-100">
    <span class="tracking-widest">VIEW PROJECT</span>
    <span class="text-2xl translate-y-2 transition group-hover:translate-y-0">→</span>
  </div>
</div>

AI PROMPT

Claude Cursor v0
PROMPT
ホバーで半透明オーバーレイとCTAが浮かぶギャラリーカードをTailwindで作って。親に group relative w-60 h-40 rounded-2xl overflow-hidden を付け、中に画像 bg-gradient-to-br from-purple-600 to-pink-500。オーバーレイは absolute inset-0 で重ね、bg-gray-950/80 text-white opacity-0 transition group-hover:opacity-100 で親ホバー時にフェードイン。中の矢印は translate-y-2 group-hover:translate-y-0 で少し上にスライド。group/group-hover はTailwindの代表機能。ポートフォリオ・実績カードに。

BOOKS · PR · AMAZON

📖 なかしまぁ先生のCSSアニメーション入門 📖 マイクロインタラクション ―UI/UXデザインの神が宿る細部 📖 Fundamentals of Web Animation with GSAP

※当サイトはAmazonアソシエイトプログラムの参加者です。リンクから商品をご購入いただくと、当方に紹介料が発生します。

学びを止めない · AMAZONサブスク

📚 Kindle Unlimited — 技術書・デザイン書が読み放題。30日無料体験 → 🎧 Audible — 移動中に耳で学ぶオーディオブック。30日無料体験 → 📦 Amazon Prime — Prime Reading・配送特典つき。30日無料体験 → 🎵 Music Unlimited — 作業用BGMに。1億曲が聴き放題・30日無料体験 →

※当サイトはAmazonアソシエイトプログラムの参加者です。リンクから商品をご購入いただくと、当方に紹介料が発生します。

Tailwindグループホバーカード(Tailwind Group Hover Card)とは

カードにホバーすると半透明オーバーレイとCTAが浮かび上がるギャラリーカード。Tailwindのgroup / group-hoverで親ホバーから子を制御する定番パターン。この効果はTailwind CSSのユーティリティクラスを中心に構成され、クラスの組み合わせだけでアニメーションやホバー状態を表現します。

使いどころ

商品カード・記事一覧・料金プラン・チームメンバー紹介など、カード型UIの一覧表示に向く。やりすぎると可読性や操作性を損なうため、目的のある一点に絞って使うのがコツです。

CSS実装のポイント

動きはGPUで処理されやすいtransformとopacityを軸に組み立てると、レイアウトの再計算(リフロー)を避けて滑らかに動きます。width・height・top/leftなど位置やサイズを直接変えるアニメーションは負荷が高いため避けるのが定石です。当サイトのコードはprefers-reduced-motionに対応しており、動きを減らす設定にしている利用者には自動でアニメーションを抑えるよう配慮しています。

CSSとJavaScriptの違い

CSSアニメーションは@keyframesやtransitionで宣言的に書け、ブラウザが最適化するため軽量です。JavaScriptを使う方法は細かい制御やインタラクションに強い反面、コード量が増えやすくなります。この効果はJavaScriptなしのCSSだけで完結するため、読み込みが軽く保守も簡単という利点があります。