Skip to main contentModule animation
Source - ActiveAnimation 🔒
- 1要素のアニメーション(@keyframes)進行状態。
- ActiveTransition 🔒
- 1要素・1プロパティのトランジション進行状態。
- AnimationEngine
- アニメーション/トランジションの集中管理。
- AnimationSpec
animation ショートハンドの解析結果。- TransitionSpec
transition ショートハンド1項目の解析結果。
- TimingFunction
- イージング関数。CSS の transition-timing-function / animation-timing-function。
- as_single_wrapped_call 🔒
- 文字列全体が単一の関数呼び出し(
name(...))かどうかを判定し、そうであれば
(“name”, “args”) を返す。split_fn と違い、括弧の対応を実際に追跡して
「その関数呼び出しの閉じ括弧が文字列の末尾ちょうどにある」ことまで確認するため、
translateX(10px) rotate(20deg)(空白区切りの複数関数)を誤って単一関数として
誤認しない(split_fn は最初の ( と末尾の ) を機械的に拾うだけなので、この判定には使えない)。 - cubic_bezier_solve 🔒
- 3次ベジェ y(x=t) を解く。x からニュートン法で媒介変数 u を求め y(u) を返す。
- fmt_num 🔒
- 数値を簡潔な文字列にする(整数なら小数点なし)。
- interpolate_color 🔒
- 2色を補間して #RRGGBB or rgba(…) 文字列を返す。内部表現は 0xAARRGGBB。
- interpolate_value
- 2つの CSS 値を進捗 t で補間する。px/数値/%/色/
<n>deg/複数値(空白区切り)に対応。
補間できない場合は t<0.5 で from、それ以外で to を返す(discrete)。 - is_animatable_property
- プロパティ名がアニメーション可能か(transition: all の展開対象判定に使う)。
- is_time_token 🔒
transition プロパティ(カンマ区切りの複数項目)をパース。
例: “width 1s ease, background-color 0.5s linear 0.2s”。
トークンが実際に時間値(<number>s / <number>ms)かどうかを判定する。
単に末尾が s かどうかだけを見ると flex-basis/border-radius のように
末尾がたまたま s で終わるプロパティ名まで時間値と誤認してしまう
(font: oblique <angle> の 10deg を size と誤認したのと同根の「緩すぎる
トークン分類」バグ)ため、単位を除いた残りが実際に数値としてパースできる
ことまで確認する。- libm_floor 🔒
- libm_round 🔒
- parse_animation
animation ショートハンドの最初の1項目のみをパース(後方互換用)。
複数のカンマ区切りアニメーションをすべて扱いたい場合は parse_animations を使う。- parse_animations
animation ショートハンドをカンマ区切りの全項目についてパースする。
例: “fade 1s, bounce 2s infinite” → 2つの AnimationSpec。- parse_one_animation 🔒
animation ショートハンド1項目をパース。
例: “slide 2s ease-in-out 0.5s infinite alternate both”。- parse_time_ms
- CSS 時間値
1s / 250ms を ms に変換。 - parse_transition
- sample_animation
- @keyframes アニメーションの現在算出値を、対象プロパティごとに返す。
elapsed_ms: アニメーション開始からの経過。戻り値: プロパティ→現在値のマップ。 - sample_transition
- トランジションの現在値を計算する。
from/to: プロパティの開始値・終了値。elapsed_ms: 状態変更からの経過時間。
戻り値: (現在の補間値, アニメーションが進行中か)。 - split_fn 🔒
fn(args) を (“fn”, “args”) に分割。- split_num_unit 🔒
12.5px → (12.5, “px”)、0.8 → (0.8, “”)。- split_top_commas 🔒
- トップレベルのカンマで分割(関数内の
, は無視)。