CSS辞書
比較記事一覧に戻る

transition と animation の違い

TL;DR — ひとことで言うと

hover・クラス切替など「状態の変化」に反応させるならtransition、読み込み時から自動で動く・ループする・多段階の動きならanimation(@keyframes)です。

比較表

観点transitionanimation
トリガー状態変化が必要(hover、クラス付替え等)適用された瞬間から自動で開始できる
中間状態始点と終点の2点のみ@keyframesで何段階でも定義可能
ループ不可infinite等で可能
逆再生状態が戻れば自動で逆向きに再生されるanimation-directionで制御
典型用途hoverエフェクト、開閉、テーマ切替ローディングスピナー、注目喚起、複雑な演出

使い分けの指針

UIの応答(押した・開いた・切り替えた)はtransitionが基本で、コードも短く状態戻りも自動です。自律的に動き続けるものだけanimationにします。どちらもprefers-reduced-motion対応をセットで入れるのが現代の作法です。

🤖 AIがよくやる取り違え

AIはhoverで戻りのアニメーションが必要なだけの場面にも@keyframesを持ち出すことがあります。状態変化への反応ならtransitionで十分か、先に確認させると簡潔になります。

それぞれの詳しい解説