CSSで作るホバーエフェクト20選(ボタン・カード)

ホバーエフェクトは、ユーザー体験を向上させる重要なUI要素です。
特にボタンやカードに動きを加えることで、直感的で魅力的なデザインを実現できます。
この記事では、コピペOKで使えるホバーエフェクトを20種類紹介します。
目次
- 1 ボタンホバーエフェクト10選
- 2 ① シンプルフェード
- 3 ② スライド背景
- 4 ③ ボーダーアニメーション
- 5 ④ 拡大エフェクト
- 6 ⑤ 下線スライド
- 7 ⑥ グラデーション変化
- 8 ⑦ シャドウ浮き上がり
- 9 ⑧ 波紋風エフェクト
- 10 ⑨ 文字カラー反転
- 11 ⑩ 斜めスライド背景
- 12 カードホバーエフェクト10選
- 13 ① 画像ズーム
- 14 ② オーバーレイ表示
- 15 ③ テキストスライド
- 16 ④ 影強調
- 17 ⑤ 回転エフェクト
- 18 ⑥ ブラー演出
- 19 ⑦ カラーオーバーレイ
- 20 ⑧ 枠線アニメーション
- 21 ⑨ グレースケール解除
- 22 ⑩ 浮遊エフェクト
- 23 アクセシビリティ配慮
- 24 まとめ
- 25 Altieのワンポイント
ボタンホバーエフェクト10選
① シンプルフェード
.btn {
color: #fff;
background: #333;
padding: 0.5em 1em;
transition: .3s;
}
.btn:hover {
background: #555;
}② スライド背景
.btn {
position: relative;
overflow: hidden;
color: #fff;
background: #000;
padding: 0.5em 1em;
z-index: 1;
}
.btn::before {
content: "";
position: absolute;
inset: 0;
background: #0af;
z-index: -1;
transform: translateX(-100%);
transition: .3s;
}
.btn:hover::before {
transform: translateX(0);
}③ ボーダーアニメーション
.btn {
border: 2px solid #333;
padding: 0.5em 1em;
transition: .3s;
}
.btn:hover {
color: #fff;
background: #333;
}④ 拡大エフェクト
.btn {
color: #fff;
background: #333;
padding: 0.5em 1em;
transition: transform .3s;
}
.btn:hover {
transform: scale(1.1);
}⑤ 下線スライド
.btn {
position: relative;
color: #fff;
background: #333;
padding: 0.5em 1em;
}
.btn::after {
content: "";
position: absolute;
left: 0;
bottom: 0;
width: 0;
height: 2px;
background: #2CB1DC;
transition: .3s;
}
.btn:hover::after {
width: 100%;
}⑥ グラデーション変化
.btn {
color: #fff;
background: linear-gradient(45deg, #f00, #00f);
padding: 0.5em 1em;
}
.btn:hover {
background: linear-gradient(45deg, #00f, #f00);
}⑦ シャドウ浮き上がり
.btn {
color: #fff;
background: #333;
padding: 0.5em 1em;
box-shadow: 0 5px 0 #222;
transition: .2s;
}
.btn:hover {
transform: translateY(-3px);
box-shadow: 0 8px 15px rgba(0, 0, 0, .3);
}⑧ 波紋風エフェクト
.btn {
position: relative;
overflow: hidden;
color: #fff;
background: #333;
padding: 0.5em 1em;
}
.btn::after {
content: "";
position: absolute;
width: 50%;
aspect-ratio: 1 / 1;
background: rgba(255, 255, 255, .3);
border-radius: 50%;
transform: scale(0);
transition: .4s;
}
.btn:hover::after {
transform: scale(3);
}⑨ 文字カラー反転
.btn {
color: #fff;
background: #000;
border: 1px solid #000;
padding: 0.5em 1em;
transition: .3s;
}
.btn:hover {
color: #000;
background: #fff;
}⑩ 斜めスライド背景
.btn {
position: relative;
overflow: hidden;
color: #fff;
background: #000;
padding: 0.5em 1em;
}
.btn::before {
content: "";
position: absolute;
inset: 0;
background: #ff9900;
transform: skewX(-45deg) translateX(-150%);
transition: .4s;
}
.btn:hover::before {
transform: skewX(-45deg) translateX(150%);
}カードホバーエフェクト10選
① 画像ズーム
.card img {
transition: transform .4s;
}
.card:hover img {
transform: scale(1.1);
}
② オーバーレイ表示
.card {
position: relative;
}
.card::after {
content: "";
position: absolute;
inset: 0;
background: rgba(0, 0, 0, .5);
opacity: 0;
transition: .3s;
}
.card:hover::after {
opacity: 1;
}
③ テキストスライド
.card {
position: relative;
}
.card-text {
position: absolute;
top: 50%;
left: 50%;
translate: -50% -50%;
transform: translateY(100%);
transition: .3s;
color: #fff;
white-space: nowrap;
}
.card:hover .card-text {
transform: translateY(0);
}
テキストスライド
④ 影強調
.card {
transition: box-shadow .3s;
}
.card:hover {
box-shadow: 0 10px 30px rgba(0, 0, 0, .3);
}
⑤ 回転エフェクト
.card:hover {
transform: rotate(2deg);
}
⑥ ブラー演出
.card:hover img {
filter: blur(3px);
}
⑦ カラーオーバーレイ
.card {
position: relative;
}
.card::before {
content: "";
position: absolute;
inset: 0;
background: #ff0000;
mix-blend-mode: overlay;
opacity: 0;
transition: .3s;
}
.card:hover::before {
opacity: 1;
}
⑧ 枠線アニメーション
.card {
border: 2px solid transparent;
transition: .3s;
}
.card:hover {
border-color: #333;
}
⑨ グレースケール解除
.card img {
filter: grayscale(100%);
transition: .3s;
}
.card:hover img {
filter: grayscale(0);
}
⑩ 浮遊エフェクト
.card {
transition: transform .3s;
}
.card:hover {
transform: translateY(-10px);
}
アクセシビリティ配慮
@media (prefers-reduced-motion: reduce) {
* {
transition: none !important;
}
}動きが苦手なユーザーへの配慮も重要です。
まとめ
- ホバーエフェクトでUXが向上する
- シンプルな動きでも印象は大きく変わる
- 使いすぎず、目的に応じて使うのが重要
Altieのワンポイント
Altie:「動きをつけすぎると逆に使いづらくなるよ!“気持ちいい動き”を意識しよう!」










