Webspe Tools

cubic-bezierジェネレーター

CSSのcubic-bezier()によるイージング曲線を視覚的に作成できる無料ジェネレーターです。
グラフ上の2つの制御点をドラッグして、アニメーションの加速・減速を自由に調整できます。
実際の動きをプレビューしながら調整し、生成されたcubic-bezier()の値をそのままコピーできます。

スポンサーリンク

プリセット

CSS標準

カスタム

カーブエディター

2つの制御点をドラッグして、ベジェ曲線を調整できます。

時間進行度

制御点

数値を入力して、より細かく調整できます。

アニメーションプレビュー

現在の設定

比較用:Linear

比較するイージング

出力コード

cubic-bezier(0.25, 0.1, 0.25, 1)

\ SNSでシェア /

スポンサーリンク

cubic-bezierジェネレーターの使い方

1. プリセットを選択する

まずは、作りたい動きに近いプリセットを選択します。

CSS標準のEaseEase InEase OutEase In Outなどに加え、Expo系やBack系の特徴的な動きも用意しています。

プリセットを選択すると、カーブ・制御点・アニメーションプレビューにすぐ反映されます。

2. 制御点を調整する

カーブエディター上の2つの制御点をドラッグして、イージング曲線を調整します。

X1Y1X2Y2の値を直接入力して、細かく調整することもできます。

グラフの横軸は時間の進行、縦軸はアニメーションの進行度を表しています。

3. アニメーションで動きを確認する

「再生」ボタンを押すと、現在の設定を実際のアニメーションで確認できます。

「比較するイージング」を選択すると、現在の設定とLinearEaseなどの動きを同時に再生して、違いを比較できます。

再生時間は100〜5000msの範囲で変更でき、速いアニメーションとゆっくりしたアニメーションの両方で動きを確認できます。

4. 生成された値をコピーする

調整した内容からcubic-bezier()の値が自動生成されます。

「Value」「Transition」「Animation」のタブから用途に合う形式を選び、「コピーする」ボタンでコードをコピーして、ご自身のプロジェクトに適用してください。

設定を最初の状態に戻す場合は、「リセット」ボタンを使用します。

cubic-bezierとは?

cubic-bezier()は、CSSのアニメーションやトランジションにおける速度変化を細かく指定できるイージング関数です。

一定速度で動かすだけでなく、「ゆっくり動き始めて徐々に加速する」「勢いよく動き始めて最後にゆっくり止まる」といった動きを作ることができます。

cubic-bezier()は、以下の4つの値で指定します。

cubic-bezier(x1, y1, x2, y2)

たとえばCSS標準のeaseは、次の値で表されます。

cubic-bezier(0.25, 0.1, 0.25, 1)

曲線には、開始点P0・制御点P1・制御点P2・終了点P3の4つのポイントがあります。

開始点P0は(0, 0)、終了点P3は(1, 1)に固定されているため、実際に調整するのはP1とP2の座標です。

  • P1 = (x1, y1)
  • P2 = (x2, y2)

X軸は時間の進行、Y軸はアニメーションの進行度を表します。

X1X20〜1の範囲で指定する必要がありますが、Y1Y2には負の値や1を超える値も指定できます。

Y値を0〜1の範囲外にすると、開始位置とは逆方向へ動いたり、終了位置を一時的に行き過ぎて戻ったりする動きを作れます。

FAQ

cubic-bezier()はどこで使えますか?

CSSのイージング関数を指定できるプロパティで使用できます。代表的なものは、transition-timing-functionanimation-timing-functionです。
transition-timing-function: cubic-bezier(0.25, 0.1, 0.25, 1);
animation-timing-function: cubic-bezier(0.25, 0.1, 0.25, 1);
transitionanimationのショートハンド内に指定することもできます。

X1・X2を0〜1以外の値にできますか?

できません。X1X2は必ず0〜1の範囲で指定する必要があります。
範囲外の値を指定すると、有効なcubic-bezier()として扱われません。このジェネレーターでは、範囲外の入力を0〜1の範囲に収めます。

Y1・Y2は0〜1を超えても問題ありませんか?

問題ありません。Y1Y2には負の値や1を超える値も指定できます。
1を超える値を指定すると終了位置を一時的に行き過ぎる動き、負の値を指定すると開始位置とは逆方向へ一度動いてから進むような動きを作れます。

Ease・Ease In・Ease Out・Ease In Outの違いは何ですか?

  • Ease:ゆっくり始まり、途中で加速して、最後にゆっくり止まります。
  • Ease In:ゆっくり始まり、徐々に加速します。
  • Ease Out:速く始まり、最後に向かって減速します。
  • Ease In Out:ゆっくり始まり、途中で加速し、最後に再び減速します。
  • Linear:最初から最後まで一定の速度で進みます。
用途に迷った場合は、プリセットを切り替えながらアニメーションプレビューで比較するのがおすすめです。

Back OutやEase Out ExpoなどはCSSの標準イージングですか?

いいえ。CSSで標準キーワードとして定義されているのは、lineareaseease-inease-outease-in-outなどです。
BackやExpoなどは、特徴的な動きを表すために広く使われているカスタムイージングの名称です。このジェネレーターでは、それらをcubic-bezier()のプリセットとして利用できます。

再生時間を変更するとcubic-bezier()の値も変わりますか?

変わりません。再生時間は「アニメーション全体に何秒かけるか」、cubic-bezier()は「その時間の中でどのように加速・減速するか」を指定します。
同じcubic-bezier()でも再生時間によって動きの印象が変わるため、実際の使用時間に近い設定で確認するのがおすすめです。

cubic-bezier()でバウンドするアニメーションを作れますか?

終了位置を一度行き過ぎて戻るような、オーバーシュートのある動きは作成できます。
ただし、ボールが何度も跳ねるような複数回のバウンドを、1つのcubic-bezier()だけで作ることはできません。複雑なバウンドアニメーションには@keyframesなどを組み合わせる必要があります。

作成したcubic-bezier()はtransitionとanimationの両方に使えますか?

はい。transitionanimationのどちらでも使用できます。
ただし、cubic-bezier()が指定するのは動きの緩急のみです。アニメーションするプロパティや時間、開始・終了状態などは別途指定する必要があります。

グラフのX軸とY軸は何を表していますか?

X軸は時間の進行、Y軸はアニメーションの進行度を表しています。
(0, 0)がアニメーション開始時点、(1, 1)が終了時点です。曲線の形によって、途中の時間でアニメーションがどこまで進んでいるかが変化します。

アニメーションが開始位置や終了位置を一時的に超えるのはなぜですか?

Y1またはY20未満1を超える値が設定されているためです。
このような値では進行度が一時的に開始値や終了値を超えます。意図しない場合は、Y1Y20〜1の範囲に近づけて調整してください。

cubic-bezier()は主要ブラウザで使用できますか?

はい。cubic-bezier()は現在の主要ブラウザで広く利用でき、通常のWebサイトやWebアプリのトランジション・アニメーションで使用できます。

このジェネレーターだけでCSSアニメーション全体を作れますか?

このジェネレーターは、速度変化を指定するcubic-bezier()の作成に特化したツールです。
アニメーションさせる要素・プロパティ・再生時間・開始状態・終了状態などは、別途CSSで設定する必要があります。

どのイージングを使えばよいか分かりません

まずは用途に近いプリセットから選ぶのがおすすめです。一般的なUIでは、要素が表示される動きにはEase Out系、画面から退出する動きにはEase In系、位置を移動するアニメーションにはEase In Out系が使いやすい傾向があります。
アニメーションプレビューで確認し、必要に応じて制御点を微調整してください。

関連ツール