DevTools Japan トップへ

cubic-bezier イージングエディタ

CSSアニメーションのイージング曲線を視覚的に作成

ベジェ曲線エディタ

cubic-bezier(0.25, 0.1, 0.25, 1)
プリセット

動きのプレビュー

再生時間 1.0s
cubic-bezier(x1, y1, x2, y2) の4値は、始点(0,0)と終点(1,1)を結ぶ3次ベジェ曲線の制御点 P1・P2 の座標です。x(横=時間)は 0〜1、y(縦=変化量)は範囲外も指定でき、行き過ぎて戻るオーバーシュートも表現できます。すべての処理はブラウザ内で完結します。

cubic-bezier イージングエディタの使い方

CSSアニメーションの「動きの緩急」を決める timing-function を、視覚的に作成できる無料ツールです。グラフ上の2つの制御点(P1・P2)をドラッグすると、リアルタイムでベジェ曲線が描き替わり、対応する cubic-bezier(x1, y1, x2, y2) の文字列が上部に表示されます。コピーボタンを押せばそのままCSSに貼り付けられ、インストールや会員登録は不要、すべての計算はお使いの端末内で完結します。

数値を細かく指定したい場合は、x1・y1・x2・y2 の入力欄に直接値を入れることもできます。グラフの操作と数値入力は連動しており、どちらを変更してももう一方に反映されます。easeease-inease-outease-in-outlinear のプリセットボタンを押すと、CSS標準キーワードに対応した値がすぐに入力されます。

動きをプレビューで確認

曲線の形だけでは実際の動きがイメージしづらいものです。「再生 ▶」ボタンを押すと、いま編集中の cubic-bezier を timing-function に使ってボックスが左から右へ移動し、加速・減速の様子を目で確かめられます。再生時間(duration)はスライダーで 0.2〜3秒の範囲に調整でき、ゆっくり/速い動きの違いも比較できます。

cubic-bezier の仕組み

cubic-bezier() は3次ベジェ曲線でイージングを表します。曲線は必ず始点 (0,0) から終点 (1,1) を通り、その間の形を2つの制御点 P1(x1, y1)・P2(x2, y2) で調整します。横軸は時間の進み(0=開始、1=終了)、縦軸はアニメーションの進み(0=初期値、1=最終値)を表します。曲線が急なところは変化が速く、緩やかなところは変化が遅い、という対応になります。

キーワードcubic-bezier動きの特徴
linearcubic-bezier(0, 0, 1, 1)一定速度。緩急なし
easecubic-bezier(0.25, 0.1, 0.25, 1)初期値。ゆっくり始まりゆっくり終わる(既定)
ease-incubic-bezier(0.42, 0, 1, 1)ゆっくり始まり最後に加速
ease-outcubic-bezier(0, 0, 0.58, 1)速く始まり最後に減速
ease-in-outcubic-bezier(0.42, 0, 0.58, 1)ゆっくり始まりゆっくり終わる

x と y の範囲

制御点の x 座標(x1, x2)は 0〜1 の範囲に限られます。時間は逆行できないためです。一方、y 座標(y1, y2)は 0〜1 を超える値や負の値も指定でき、一度行き過ぎてから戻る「オーバーシュート(バウンド)」のような動きを作れます。このエディタでは縦方向に余白をとっており、y を約 -0.5〜1.5 の範囲までドラッグできます。

CSSでの使い方

作成した値は、transition や animation の timing-function に貼り付けて使います。例えば transition: transform 0.4s cubic-bezier(0.25, 0.1, 0.25, 1);animation-timing-function: cubic-bezier(0.42, 0, 0.58, 1); のように指定します。適切なイージングを選ぶと、UIの操作感やアニメーションの印象が大きく変わります。

よくある質問

cubic-bezier() とは何ですか?
cubic-bezier() は CSS の transition-timing-function や animation-timing-function に指定できる関数で、アニメーションの加速・減速の仕方(イージング)を3次ベジェ曲線で表します。cubic-bezier(x1, y1, x2, y2) の4つの数値は、始点(0,0)と終点(1,1)の間にある2つの制御点 P1(x1,y1)・P2(x2,y2) の座標です。横軸が時間の進み、縦軸が変化の進みを表し、曲線の形で動きの緩急を細かく調整できます。
x と y の値にはどんな範囲を指定できますか?
制御点の x 座標(x1, x2)は 0〜1 の範囲でなければなりません。時間軸が逆行することはできないためです。一方、y 座標(y1, y2)は 0〜1 の範囲を超えて負の値や 1 より大きい値も指定できます。y を範囲外にすると、一度行き過ぎてから戻る「バウンド」のような動き(オーバーシュート)を表現できます。このエディタでは y 方向は上下に余白をとって -0.5〜1.5 程度まで制御点をドラッグできます。
ease や ease-in-out はどんな cubic-bezier に対応しますか?
CSSのキーワードは、それぞれ決まった cubic-bezier に対応しています。linear は cubic-bezier(0,0,1,1)、ease は cubic-bezier(0.25,0.1,0.25,1)、ease-in は cubic-bezier(0.42,0,1,1)、ease-out は cubic-bezier(0,0,0.58,1)、ease-in-out は cubic-bezier(0.42,0,0.58,1) です。このエディタのプリセットボタンを押すと、対応する値が入力され曲線も自動で描画されます。
作った値はどう使えばいいですか?
表示された cubic-bezier(...) の文字列をコピーし、CSSの transition や animation の timing-function に貼り付けます。例えば transition: transform 0.4s cubic-bezier(0.25,0.1,0.25,1); のように指定します。animation-timing-function プロパティや、animationショートハンドの中でも同じ形式で使えます。すべての計算はブラウザ内で完結し、サーバーには送信されません。
プレビューの再生ボタンは何を確認できますか?
再生ボタンを押すと、いま編集中の cubic-bezier を timing-function に使ってボックスが左から右へ移動します。曲線の形だけでは分かりにくい実際の動きの緩急を、目で見て確認できます。再生時間(duration)はスライダーで 0.2〜3秒の範囲に調整でき、値を変えるとプレビューにも即反映されます。

関連ツール

カウントダウン計算ツール一覧