✅ CSSアニメーション・トランジションとは?
Webサイトをより魅力的に、ユーザーにとって心地よい体験にするために使われるのが CSSアニメーション と トランジション です。
- CSSトランジション → 要素の状態が変わったとき(例:マウスホバー)に、スタイルの変化を滑らかにする
 - CSSアニメーション → 指定した動きを繰り返したり、複数のステップで変化を表現する
 
📌 CSSトランジションの基礎
1. 基本構文
.element {
  transition: プロパティ 時間 イージング 遅延;
}2. 例:ボタンをホバーしたときに色が変わる
button {
  background: #3498db;
  color: #fff;
  padding: 10px 20px;
  border: none;
  transition: background 0.3s ease; /* 0.3秒かけて色が変わる */
}
button:hover {
  background: #2ecc71;
}👉 transition を指定しないと、色が一瞬で切り替わります。
👉 transition を使うと なめらかに色が変化 します。
📌 CSSアニメーションの基礎
1. 基本構文
.element {
  animation: 名前 時間 イージング 繰り返し;
}2. アニメーションの流れを定義(@keyframes)
@keyframes move {
  0% { transform: translateX(0); }
  50% { transform: translateX(100px); }
  100% { transform: translateX(0); }
}3. 例:四角が左右に動くアニメーション
.box {
  width: 50px;
  height: 50px;
  background: #e74c3c;
  animation: move 2s infinite;
}
@keyframes move {
  0% { transform: translateX(0); }
  50% { transform: translateX(200px); }
  100% { transform: translateX(0); }
}👉 この例では、赤い四角が左右に動きを繰り返します。
🎨 トランジションとアニメーションの違い
| 項目 | トランジション | アニメーション | 
|---|---|---|
| 発火条件 | 状態変化(hover, clickなど) | 自動または無限ループ可能 | 
| 記述方法 | transition | @keyframes + animation | 
| 適した用途 | ボタンやリンクのホバー効果 | バナー、ローディング画面、複雑な動き | 
💡 よく使うプロパティ
トランジション
transition-property→ 変化させたいCSSプロパティtransition-duration→ 変化にかける時間transition-timing-function→ イージング(ease,linear,ease-in,ease-out)transition-delay→ 遅延時間
アニメーション
animation-name→ アニメーション名animation-duration→ 再生時間animation-iteration-count→ 再生回数(infiniteで無限ループ)animation-direction→normal,reverse,alternateなど
⚠️ 初心者がつまずきやすいポイント
transitionは 状態変化がないと動かないanimationは ループさせるか、一度だけにするか を明示する必要がある- ブラウザによって微妙に挙動が違う場合がある(特に古いブラウザ)
 
📌 まとめ
- トランジション → 状態変化をなめらかに表現
 - アニメーション → 複雑な動きを繰り返し表現
 - ボタンやリンクには「トランジション」、ローディングやバナーには「アニメーション」が最適
 @keyframesを理解すると自由自在に動きを作れる
👉 関連記事