ZeroTool Workbench
Cubic Bezier ジェネレーター
CSS cubic-bezier() イージング曲線をビジュアル編集。ハンドルをドラッグして調整、リアルタイムでアニメーションをプレビューし、CSS / SCSS / Tailwind コードを出力。完全ブラウザ動作。
カスタム cubic-bezier が必要な場面
linear / ease / ease-in / ease-out / ease-in-out の 5 つで十分なケースも多いですが、次のようなときはカスタム曲線が必要です:
- デザインシステムにモーション言語が定義されている — Material の標準曲線
(0.4, 0, 0.2, 1)、iOS のナチュラルなイージング、Tailwind のease-in-out。 - overshoot や anticipation が欲しい — モーダルのポップイン、ドロワーのドラッグ、ボタン押下時のフィードバック。
- Figma や After Effects のタイミング曲線を本番ビルドと完全一致させたい。
曲線の読み方
X 軸は正規化された時間(開始 0、終了 1)。Y 軸はアニメーションの進捗。対角線そのままなら linear。対角線より下に膨らむ曲線は最初は速く、終盤に緩む(ease-in-out 寄り)。上に膨らむ曲線は出だし速く、ゆっくり収束(ease-out 寄り)。0 を下回ったり 1 を超えたりすると「バネ」効果が生まれ、装飾的な UI には合いますが機能フローには邪魔になることもあります。
イージング使い分け早見表
| 用途 | 推奨カーブ | 理由 |
|---|---|---|
| ページ・セクション入場 | cubic-bezier(0, 0, 0.2, 1)(decelerate) | 立ち上がり速く、終わりは柔らかく着地。最終状態を視認しやすい。 |
| ページ・セクション退場 | cubic-bezier(0.4, 0, 1, 1)(accelerate) | ゆっくり始まり素早く抜ける。次の画面がキビキビ感じる。 |
| 汎用トランジション | cubic-bezier(0.4, 0, 0.2, 1)(Material 標準) | 左右対称でニュートラル。hover、focus、小さな移動に万能。 |
| 遊び心のあるポップ | cubic-bezier(0.68, -0.55, 0.265, 1.55)(back ease) | anticipation と overshoot を両立。バッジやトースト、注目喚起向き。 |
| ドラッグ追従 | cubic-bezier(0.25, 0.46, 0.45, 0.94) | 滑らかな減速で物理的な慣性を再現。 |
プライバシー
エディタは完全にブラウザ内で動作します。曲線評価、アニメーションプレビュー、コピー操作はすべて端末上で実行され、制御点の値・時間・生成された CSS はサーバーへ送信されません。
関連ツール
- CSS Clip Path ジェネレーター — ハンドルをドラッグして編集できる clip-path エディタ。
- グラスモーフィズム ジェネレーター — リアルタイムプレビュー付きのフロストガラス UI ジェネレーター。
- CSS フィルター ジェネレーター — blur や brightness などをスライダーで調整。
FAQ
cubic-bezier イージング関数とは?
CSS の cubic-bezier(x1, y1, x2, y2) は、経過時間 (0〜1) をアニメーション進捗 (0〜1) にマッピングする曲線を 4 つの数値で定義します。曲線の両端は (0, 0) と (1, 1) に固定され、調整できるのは中間の 2 つの制御点 P1 と P2 のみ。P1.x と P2.x は必ず [0, 1] の範囲内、P1.y と P2.y は 0-1 を超えても構いません(overshoot や anticipation の表現)。
ease / ease-in / ease-out キーワードと何が違う?
CSS のキーワードは cubic-bezier プリセットの別名です。ease は cubic-bezier(0.25, 0.1, 0.25, 1)、ease-in-out は cubic-bezier(0.42, 0, 0.58, 1)。形状は 4 種類だけ。カスタム曲線にすれば、デザインシステムの標準(Material / iOS / Tailwind)に合わせる、特定のトランジションだけ手触りを微調整する、CSS / SCSS / Tailwind 設定で同じ数値を再利用する、といったことが可能になります。
なぜ P1.y / P2.y は 0-1 を超えてよい?
Y がマイナスだと anticipation(先に逆方向へ引いてから動き出す)、1 を超えると overshoot(行き過ぎてから戻る)になります。代表例の cubic-bezier(0.68, -0.55, 0.265, 1.55) は両方を使った back-out 曲線です。X 軸は時間なので、CSS の有効なタイミング関数として動かすには [0, 1] の範囲を保つ必要があります。
Tailwind CSS でどう使う?
tailwind.config.js の theme.extend.transitionTimingFunction にエントリを追加します。例:smooth-out: 'cubic-bezier(0.4, 0, 0.2, 1)'。これで ease-smooth-out というユーティリティクラスが使えるようになります。本ツールの Tailwind 出力モードはこのスニペットをそのまま生成してくれます。
設定は保存される?
制御点の位置、プレビュー時間、出力フォーマットは ZeroTool 共通の永続化レイヤーで端末の localStorage に保存されます。サーバー送信は一切ありません。ページ上の Clear ボタンで ease-in-out のデフォルトに戻せます。