Webサイトのボタンや画像が、マウスを乗せたときにふわっと大きくなる——
そんな“拡大アニメーション”は、ユーザーに注目してほしい場所を自然に伝えるのにぴったりの演出です。
しかもこの動き、CSSの transform: scale()
を使えば、ほんの数行で実装できるんです。
私自身、CSSを学び始めたばかりのころにこの拡大アニメーションを初めて試したとき、
「動いた…!✨」と小さく感動したのを覚えています。
この記事では、transform: scale()
を使った基本的なホバーアニメーションの書き方と、実際の活用例を紹介していきます!
transform: scale() を使ったホバーの基本構文
まずは、拡大アニメーションの一番シンプルな書き方から見ていきましょう。
.button {
transition: transform 0.3s ease;
}
.button:hover {
transform: scale(1.1);
}
transition
は変化をなめらかにするための設定です。
ここではtransform
プロパティに対して、0.3秒かけてease
(自然なカーブ)で変化させています。:hover
の状態でtransform: scale(1.1);
を指定すると、マウスを乗せたときに要素が1.1倍に拡大します。- クラス名(
.button
)は自分のHTML構造にあわせて自由に変更してくださいね◎
このコードは、ボタン・画像・カードUIなどあらゆる要素に応用できる基本形です。
実用例①|ボタンにふわっと拡大アニメーションをつける
一番よく使われているのが、CTA(行動を促す)ボタンやリンクボタンなどへの拡大アニメーションです。
※今回はデモ用として、リンク先のない<button>
タグを使用していますが、
リンク付きのボタンとして<a>
タグを使っても、同じようにホバーアニメーションを適用できます。
<!-- デモ用ボタン -->
<button class="demo-button">ホバーボタン</button>
<!-- リンク付きボタンにする場合 -->
<a href="#" class="demo-button">ホバーボタン</a>
.demo-button {
display: inline-block;
background-color: #ee6eac; //ボタン背景色
color: white;
padding: 12px 24px;
border-radius: 30px; //ボタン角丸
text-decoration: none;
transition: transform 0.3s ease;
}
.demo-button:hover {
transform: scale(1.05);
}
- 拡大率は
1.05
と少し控えめに設定すると、動きすぎず自然な印象に - ボタンの背景色や角丸デザインと組み合わせると、シンプルでもしっかり目を引く演出になります
「押せそう感」「アクション誘導力」がぐっと高まるので、クリックしてもらいたい場所にはおすすめです!
実用例②|画像・カードに拡大アニメーションをつける
画像やカード型のUIに拡大アニメーションを加えると、より視覚的に“選ばれている”感じを出すことができます。

※補足:今回ご紹介するのは、マウスを乗せた瞬間に“その場で拡大”させるアニメーションです。
画像をクリックして別画面で大きく表示する「モーダル拡大」とは目的も仕組みも異なるので、使い分けてみてくださいね。
<div class="img-hover">
<img src="sample.jpg" alt="サンプル画像">
</div>
.img-hover {
overflow: hidden;
display: inline-block;
border-radius: 8px;
}
.img-hover img {
width: 100%;
transition: transform 0.4s ease;
}
.img-hover:hover img {
transform: scale(1.1);
}
.img-hover
にoverflow: hidden;
をつけることで、画像の拡大が枠からはみ出さなくなりますimg
タグに直接transition
を指定し、hover時は親要素ではなく画像自体を拡大させるのがコツ
カードデザインにも応用できて、
例えば「おすすめ記事」「メニュー項目」などの一覧表示でも使いやすいですよ◎
scaleホバーの注意点
transform: scale()
を使ったホバーアニメーションはとても使いやすい反面、
ちょっとしたことで見た目やレイアウトが崩れてしまうこともあります。
ここでは、よくある注意点を2つご紹介します。
拡大しすぎるとデザインが崩れることも
拡大率を大きくしすぎると、文字が読みづらくなったり、レイアウトからはみ出したりしてしまうことがあります。
たとえば…
transform: scale(1.5);
のように 1.5
(=1.5倍)まで拡大してしまうと、見た目がかなり変わってしまい、
ボタンや画像が周りの要素とぶつかることもあります。
scale(1.05)
や 1.1
など、控えめな拡大にすること。
「ちょっと動いたかな?」くらいの変化がちょうどいいことが多いです◎
transform
が効かない
inline要素には <span>
や <a>
タグなど、初期状態が inline
の要素に対して transform
を使っても、
うまく動作しないことがあります。
そんなときは、CSSで以下のように display: inline-block;
を指定すると解決できます。
a {
display: inline-block;
}
これで transform
が効くようになり、ホバーアニメーションもちゃんと表示されるようになりますよ◎
まとめ|まずは scale() を試してみよう!
transform: scale()
を使ったホバーアニメーションは、
シンプルなコードで印象をガラッと変えられる便利なテクニックです。
今回は、ボタンや画像に使える基本的な書き方と注意点を紹介しましたが、
拡大率や動きのスピードを少し調整するだけでも、サイト全体の雰囲気がぐっと変わります◎
まずは、自分のサイトやブログの「注目してほしい場所」から試してみるのがおすすめです!

次回は、テキストリンクに“スッ”と下線が現れる、
おしゃれなホバーアニメーションについて紹介していきます♪