CSSトランジションとキーフレーム:コピーできる20の例

CSSトランジション・プレイグラウンド

CSSトランジションとキーフレーム:20のライブサンプル | We.Inc

スライダーで時間、遅延、イージングを調整し、描画される ベジェ曲線を確認できます。トランジションと @keyframes を比較し、動きを減らす設定に配慮した20のホバー時のマイクロインタラクションをコピーできます。

CSSトランジションは、ホバー時など値が変化したときにプロパティを滑らかにアニメーションさせます。例:transition: transform 200ms ease-out。開始と終了の状態が必要で、変化のたびに1回実行されます。@keyframes アニメーションは独自のステップを定義し、ループでき、状態の変化がなくても開始します。最も滑らかな結果を得るには、変形を扱う transform と不透明度を扱う opacity をアニメーションさせましょう。

トランジションの各部分

プレイグラウンドでは、選んだプロパティ、時間、遅延、イージングで実際の要素を2つの状態の間でアニメーションさせ、イージングを曲線として描画します。これを見れば、減速型の ease-out がきびきび感じられ、加速型の ease-in がもたついて感じられる理由がわかります。さらに下には、その場で編集してどのサイトにも貼り付けられる、20のホバーとフォーカスの効果があります。

よくある質問

トランジションとアニメーションの違いは何ですか?

トランジションは、クラスの追加やホバーの開始などの値の変化に反応し、古い値から新しい値へ移るだけです。アニメーションは @keyframes を使い、多くのステップを持て、繰り返しや往復ができ、適用された時点で実行されます。状態の変化にはトランジションを、ローディング表示や注意を引く演出にはキーフレームを使いましょう。

トランジションが動かないのはなぜですか?

よくある原因は次のとおりです。プロパティがアニメーション可能でない(display は離散的なアニメーションの指定が登場するまでそうでした)、開始値が auto である(height: auto は新しい機能なしでは補間できません)、要素が挿入されたばかりで以前のスタイルがない、トランジションがホバー状態にしか宣言されておらず、マウスが離れたときに一瞬で戻ってしまう、などです。

アニメーションさせても負荷が軽いプロパティはどれですか?

transform と opacity は、通常レイアウトの再計算や再描画なしにコンポジターで処理できるため、滑らかに動きます。幅、高さ、位置、余白(width、height、top、left、margin)をアニメーションさせると毎フレームでレイアウトが発生し、影やフィルター(box-shadow、filter)は再描画を引き起こすため、性能の低いスマートフォンではカクつくことがあります。

cubic-bezier(3次ベジェ曲線)とはどういう意味ですか?

2つの制御点 cubic-bezier(x1, y1, x2, y2) でイージングの曲線を表します。x の値は時間で、0から1の間に収める必要があります。y の値は進行度で、その範囲を超えてもよく、超えると行き過ぎや小さな跳ね返りが生まれます。

動きを減らす設定に配慮するにはどうすればいいですか?

メディアクエリ @media (prefers-reduced-motion: reduce) を使って、動きを短くするか取り除きます。簡単な方法は、色や不透明度の変化は残して変形(transform)をなくすか、そのクエリ内で transition-duration と animation-duration をごく小さな値に設定することです。

イージング曲線の読み方

トランジションとキーフレームのどちらを使うか

display: none との間でアニメーションさせる

トランジションとキーフレームをひと目で比較

どちらをいつ使うか

各プロパティをアニメーションさせるコスト

1フレームあたりのレンダリング処理(一般的な目安、ブラウザーにより異なる)

動きを減らす設定のためのセーフティネット

状態の変化は残しつつ、移動をなくします。スタイルシートの末尾近くに置いてください。

@starting-style でポップオーバーをフェードイン・フェードアウトする

上で紹介した2つの新しい機能に対応したブラウザー向けの付加的な改善です。それ以外のブラウザーでは瞬時に表示・非表示になります。

コピーできる20のマイクロインタラクション

各結果にホバーまたはフォーカスすると動作を確認できます。どのスニペットも最後に動きを減らす設定のルールが入っています。

カードの浮き上がり

カードを持ち上げ、影を濃くします。

ボタンの拡大

ホバーで少し拡大し、クリックで押し込まれます。

スライドする下線

背景サイズを使って、線が左から伸びます。

色の塗りつぶし

背景色と文字色が同時に入れ替わります。

矢印の小さな移動

ラベルは動かず、アイコンだけが動きます。

アイコンの回転

プラスがバツに変わります。

フォーカスリングのフェード

キーボード操作のユーザー向けに、アウトラインのオフセットがアニメーションします。

枠内での画像ズーム

画像は拡大しますが、枠からはみ出た部分は切り取られます。

キャプションの表示

キャプションが下端からスライドして現れます。

やわらかな光

色付きの影がフェードインします。

わずかな傾き

数度回転させるだけで、ステッカーが気軽に貼られたような印象になります。

枠線の描画

枠線の色がグレーからブランドの青に変わります。

ほかの項目を暗くする

1つの項目にホバーすると、隣の項目が薄くなります。

光のスイープ

ホバーすると光の帯が横切ります。

スイッチのつまみ

チェックボックスをスイッチ風にし、つまみがスライドします。

アコーディオンの山形矢印

折りたたみ要素(details)が開くとマーカーが回転します。

脈打つドット(キーフレーム)

キーフレームで作った、ループするステータス表示のドットです。

スピナー(キーフレーム)

等速の linear タイミングで、回転の速さを一定に保ちます。

読み込み時のフェードアップ(キーフレーム)

塗りつぶしモード(fill-mode)を both にすると、遅延中は非表示のままになります。

エラー時の揺れ(キーフレーム)

短い横揺れで、ここではホバー時に1回再生されます。

イージング曲線 cubic-bezier({values})

トランジション・プレイグラウンド

順方向に再生

逆方向に再生

お使いの端末で動きを減らす設定がオンになっているため、プレビューは動かずに切り替わります。

アニメーションさせるプロパティ

時間:{n}ms

遅延:{n}ms

イージングのプリセット

CSSをコピー

無料で始める · クレジットカード不要

関連: ガイド|Webマーケティングと集客を学ぶ

製品

ご利用いただける方

機能

リソース

会社情報

サイトマップを見る