CSSアニメーション生成ツール
@keyframesをゼロから書くのは手間がかかります:パーセントを選び、プロパティを推測し、再読み込みして、確認し、調整する。このジェネレーターは、6つの完成済みアニメーション(フェード、スライドアップ、バウンス、スピン、パルス、シェイク)を用意し、アニメーション名、再生時間、イージング、繰り返し回数、方向を設定できます。結果はリアルタイムで再生され、満足したら生成された@keyframesブロックとanimationの省略記法をコピーできます。
CSSアニメーションの作成方法
-
1
プリセットを選ぶ
6つの組み込みアニメーションから選択します:フェード、スライドアップ、バウンス、スピン、パルス、シェイク。
-
2
アニメーションに名前を付ける
キーフレームに有効なCSS識別子を付けます(例:`cardIn`や`fadeIn`)。同じ名前が`animation`の省略記法でも使われます。
-
3
再生時間と繰り返しを設定する
秒単位の再生時間、イージング(ease、ease-in、ease-out、ease-in-out、linear、spring)、繰り返し回数(1、2、3、infinite)、方向(normal、reverse、alternate、alternate-reverse)。
-
4
CSSをコピーする
生成された`@keyframes`ルールと`animation:`の省略記法を、スタイルシートにそのまま貼り付けられます。
アニメーションの構造
@keyframes slide-in {
0% { transform: translateX(-100%); opacity: 0; }
60% { transform: translateX(10%); opacity: 1; }
100% { transform: translateX(0); opacity: 1; }
}
.card {
animation: slide-in 400ms cubic-bezier(0.22, 1, 0.36, 1) both;
}
省略記法には8つのプロパティがあります:animation-name duration timing-function delay iteration-count direction fill-mode play-state。
イージングの選択
このジェネレーターが提供するイージング関数は6つです:
| イージング | cubic-bezier() | 動きの印象 |
|---|---|---|
| linear | n/a | 一定速度 |
| ease-in | 0.42, 0, 1, 1 |
ゆっくり始まり、速く終わる |
| ease-out | 0, 0, 0.58, 1 |
速く始まり、ゆっくり終わる |
| ease-in-out | 0.42, 0, 0.58, 1 |
ゆっくり、速く、ゆっくり |
| ease(既定) | 0.25, 0.1, 0.25, 1 |
やさしい既定の動き |
| spring | 0.68, -0.55, 0.27, 1.55 |
行き過ぎて落ち着く |
正しいプロパティをアニメーションさせる
ブラウザーはどんなプロパティでもアニメーションできますが、レイアウトやペイントを発生させずにGPU上で滑らかに動くのはわずかです:
軽い(コンポジットのみ):transform、opacity、filter。
重い(レイアウト/ペイント):width、height、top、left、margin、padding、background-color。
widthやtopを毎秒60フレームで動かすのは小さな要素なら可能ですが、多数を同時に動かすとモバイルでカクつきます。複雑な動きには、top/leftより常にtransform: translate(...)を、アニメーションする幅・高さよりtransform: scale(...)を優先してください。
will-change:控えめに使う
コンポジットレイヤーを事前に確保するようブラウザーに伝えると、滑らかさが向上することがあります:
.card { will-change: transform; }
ただしメモリーを消費します。アニメーションが始まる直前に設定し、終わったら解除してください。多くの要素にwill-change: transformを常時設定するのは、役立つ以上に害になることがあります。
動作を減らす設定
中には動きに敏感で、OSの設定を変更するユーザーもいます:
@media (prefers-reduced-motion: reduce) {
.card {
animation: none;
}
}
この設定を尊重してください。フォールバックとして、即時の状態変化かごく控えめなフェードを用意しましょう。
よくある質問
単純で宣言的な、一度きりの動きにはCSS。JavaScriptで駆動するタイミング、動的なキーフレーム、一時停止、再生制御にはWeb Animations API(element.animate())。どちらもコンポジター上で動作し、本質的な速度差はありません。
ほとんどの場合、transformではなくレイアウトを発生させるプロパティ(width、top、margin)を動かしているためです。translate()とscale()に切り替えると、カクつきは通常消えます。
できます。animation: a 1s, b 1s 1s, c 1s 2s;のように遅延をずらすと3つのアニメーションを順番に実行できます。このジェネレーターは1つのアニメーションを出力するので、追加分は省略記法に自分で書き足してください。より複雑な動きにはWeb Animations APIやGSAPのようなライブラリーを使います。
アニメーション開始前(遅延中)に要素をfrom状態にし、終了後もto状態を保ちます。bothがないと、アニメーション終了時に要素は開始前のスタイルに戻ります。このジェネレーターは省略記法を最小限に保つので、必要ならフィルモードを自分で追記してください。
関連ツール
ASCII表リファレンス
0から127までの完全なASCII表です。NUL、LF、DELなどの制御コードを含め、各文字の10進数、16進数、8進数、2進数、HTML数値文字参照を表示します。
HTML文字参照
HTMLエンティティの検索可能なリスト、その名称コードおよび数値コード、および特殊文字や記号のワンクリックコピー機能を提供します。
キーボードショートカット一覧
macOS、Windows、Linux向けに、VS Code、Chrome、GNU Readlineを使うBashの公式資料に基づく既定ショートカットを検索できます。
HTML フォーマッター
ブラウザ内で HTML を 2 または 4 スペースで整形します。HTML はアップロードも検証もされません。
カラーパレットジェネレーター
基準のHEXカラーから、モノクロマティック、類似色、補色、トライアド、テトラードのパレットを生成し、コピーしやすいCSS変数として書き出します。
バイナリからASCIIへの変換ツール
バイナリ(スペース区切りのバイト、または長いビット列)を貼り付けると、それが表すASCIIテキストを8ビットずつ復号して取得できます。