使い方ガイドへスキップ
Animation Performance作者 Emil Kowalski

Animation Performance スキル。

既存のWebアニメーションでフレームが落ちる原因を調べます。Animation Performanceは、描画コスト、メインスレッドの負荷、フレームごとの更新をコーディングエージェントとともにたどり、提案する変更のそれぞれに原因を紐づけます。

  • Webアニメーション
  • フレームパフォーマンス
  • 診断レビュー
ソースレビュー · animation-performanceSKILL.md
タスク モーション&動画 成果物 • アニメーション対象の要素、ドライバー、プロパティの一覧 • ファイルの場所と変更前後の比較を含む、原因別の改善提案 • コード調査と実機で記録した証拠の明確な区別 開始前に必要なもの アニメーションのソースと再現可能な操作。性能を検証するためのブラウザのプロファイリングと実際の対象デバイス。
編集部による要約 · ソース確認日 2026-10-12 · 生成された例ではありません

01 できること

フレーム落ちの裏にあるコストをたどる

このワークフローは、固定されたソースに記載されているものです。実行の記録でもベンチマークでもありません。

ソースに基づくワークフロー実行ベンチマークではありません

進め方

同じタブインジケーターでも、待機中は滑らかなのにナビゲーション中にカクつくことがあります。このスキルは、各フレームがどれだけの描画処理を引き起こすか、そしてアニメーションのドライバーがメインスレッド上のほかの処理と競合していないか、という2点を切り分けます。GPUヒントを最初から追加するのではなく、プロパティとドライバーの確認から始めます。

ソースでは、目立ちにくい経路も確認します。フレームごとのReactの状態更新、大きなサブツリーにわたって変化する継承されたCSS変数、負荷の高いブラー、Motionの省略記法によるtransformなどです。推奨事項はコードに結びつけ、ブラウザやデバイスの挙動による条件も付けます。高速なデスクトップで動いても、修正の証明とは見なしません。

期待される成果物

  • アニメーション対象の要素、ドライバー、プロパティの一覧
  • ファイルの場所と変更前後の比較を含む、原因別の改善提案
  • コード調査と実機で記録した証拠の明確な区別
依頼例を見る

入力から所見まで

  1. 01
    対象のモーションを洗い出す

    要素、アニメーションドライバー、プロパティを一つずつ挙げ、ナビゲーションやハイドレーションなど同時に走る処理も記載します。コストを判断する前に、広範なトランジションやライブラリの省略記法を展開します。

  2. 02
    考えられる原因を見つける

    まずレイアウトとペイントの処理を調べ、次にメインスレッドの競合、フレームごとのReactレンダー、スタイル再計算を確認します。提案する変更は、漠然とした最適化ではなく、特定の経路に結びつけます。

  3. 03
    実際の操作をプロファイルする

    ブラウザのパフォーマンス記録で、フレーム落ちとロングタスクを確認します。可能であれば実際の対象スマートフォンで確認してください。デスクトップのCPUスロットリングでは、非力なGPUやデバイスのメモリ制限は再現できません。

  4. 04
    検証の限界を明記して報告する

    ファイルの場所、原因、変更前後を比較できる改善案を、想定コストの順に並べて示します。コードから推測した内容と実測した内容を明記し、修正の適用は許可を待ちます。

02 使いどころ

使いどころ

負荷がかかるとカクつく、または遅くなるWebモーションに使います。対象はフレームの出力であり、より魅力的なアニメーションを選ぶことではありません。

向いているケース

  • ナビゲーション中のモーションタブインジケーター、ページ遷移、読み込み付近のモーションは、ルート変更、ハイドレーション、ロングタスクと競合することがあります。
  • コンテンツが増えると遅くなるドロワー数項目なら問題なくドラッグできるのに、リストが長くなると悪化する場合は、継承された変数、繰り返されるスタイル計算、アニメーション対象ノードの多さを調べます。
  • 手書きのReactアニメーションフレーム、ポインター、スクロールのハンドラー内で、効果に必要な以上にReactを再レンダーさせている状態更新を探します。

確認すべき制限

  • イージングやタイミングの設計ツールではありませんカーブや時間の長さの選択、そもそもインターフェースにモーションが必要かどうかは、このスキルの限定的なパフォーマンス領域の対象外です。
  • 対象はWebで、React Nativeではありませんソースが対象とするのは、ブラウザの描画とWebアニメーションのドライバーです。React Nativeのスレッド挙動は、リポジトリ内の別のスキルが扱います。
  • 高速化は保証されませんブラウザのバージョン、プロパティ、レイヤーの判断が高速化に影響します。レイアウトの正しさを保ち、フレームレートを約束するのではなく対象デバイスで検証してください。

用意する情報

  • 再現可能な操作カクつきがいつ起きるのかを具体的に説明してください。ドロワーを開くとき、ルートを切り替えるとき、データ読み込み後にドラッグするときなどです。再現に必要なコンテンツ量も含めます。
  • アニメーションとコンポーネントのコードCSS、ドライバーまたはライブラリのバージョン、アニメーション対象のプロパティ、関連する状態ハンドラーを提供してください。同時に走る周辺の処理も含めます。
  • 対象のブラウザとデバイス影響を受けるブラウザ、デバイス、分かればリフレッシュレートを記載してください。パフォーマンス記録があれば共有し、主観的な印象とは区別します。

03 重要な判断

重要な判断

  1. レイヤーヒントより描画コストが先

    ソースでは、意図した挙動を保てる場合にtransformとopacityを優先します。レイアウトの変更、再描画を伴う効果、広範なトランジションは、明示的に精査する必要があります。

  2. 負荷時にはドライバーが重要

    requestAnimationFrameのループはメインスレッドを必要とします。CSSやWeb Animations APIのエフェクトは、対象となるプロパティで高速化された経路を使える場合がありますが、実際のブラウザの挙動は確認が必要です。

  3. 小さなコードパターンがサブツリー全体に影響することがある

    継承されるカスタムプロパティや繰り返される状態更新によって、単純な動きでも高コストになることがあります。レビューでは、transformだけで軽くなると決めつけず、それらの更新経路をたどります。

04 絞った依頼を試す

絞った依頼を試す

以下の依頼例はテストされていません。使用する前に、スキルのセットアップを確認してください。

セットアップを確認する

Emil Kowalskiの公開スキルリポジトリからインストールし、エージェントでこのスキルを選択します。

スコープ付きインストールコマンド
npx skills@latest add emilkowalski/skills --skill animation-performance

READMEには、npx skills@latest add emilkowalski/skillsを使ったリポジトリのインストール方法が記載されています。以下のスコープ付きコマンドは、このエントリを選択します。npxのためにNode.js/npmが必要ですが、ソースでは最低バージョンは指定されていません。実行する前に、上流の手順を確認してください。

カクつく操作を1つ再現する

この依頼例はオリジナルで、テストされていません。コンポーネントや環境の詳細は、実際のプロジェクトに合わせて置き換えてください。

依頼例
animation-performanceを使って、Webダッシュボードのドロワーをレビューしてください。ルート読み込み中にカクつき、リスト項目が60件になるとさらに悪化します。既存のCSSとReactのハンドラーを、変更せずに読んでください。関係するアニメーション対象のプロパティ、ドライバー、状態更新、カスタムプロパティを挙げてください。レイアウト、ジェスチャーの中断、モーション低減の挙動を保ったまま、特定した原因に対処する最小限の変更を提案してください。ブラウザにアクセスできる場合は、5件と60件の合成項目の両方で操作を記録し、ロングタスクとフレーム出力を確認してください。使用したブラウザとデバイスを明記してください。デスクトップのみの記録からモバイルの性能向上を主張せず、will-changeをデフォルトで追加せず、レポートを出したら止めてください。

修正の前に証拠を確認する

レポートを、コードと実際のブラウザの挙動に照らして確認してください。未検証の観察と、再現できた不具合は分けて扱います。

  • 提案する変更はそれぞれ、描画または更新経路の原因とソース上の場所を示します。
  • 変更前後の効果に関する主張は、比較可能な記録済みの操作に基づきます。未測定のデバイスの挙動は明確に示されます。
  • 提案する最適化は、単体で滑らかに見えるだけでなく、意図したレイアウトと操作性を保ちます。

OpenDesignは、コーディングエージェント向けのローカルなデザインワークスペースを提供します。この掲載は、スキルが同梱されていること、または外部ツール、認証情報、ソフトウェア依存関係が含まれていることを意味しません。

05 ソースとライセンス

ソースとライセンス

このページは、以下にリンクした固定のソースリビジョンについて説明しています。上流の挙動や要件は変わる可能性があります。

ソースの所有者
Emil Kowalski
リポジトリ
emilkowalski/skills
ライセンス
MIT
確認したスナップショット
2026-10-12 · 2d228630ba14
編集部によるソース要約
Webアニメーションのフレーム落ちを診断します。対象は、描画コスト、メインスレッドの競合、フレームごとのReact更新、継承されたCSS変数です。これは固定されたソースの編集部による要約であり、実行レポートではありません。

リンク先のソースに基づく、OpenDesignによるオリジナルの要約です。リポジトリのスター数は日付付きの人気の指標であり、スキルの利用状況や品質スコアではありません。

06 始める前の質問

始める前の質問

すべてのアニメーションをCSSで書き直すべきですか?

いいえ。ソースでは、JavaScript系のライブラリは、スプリング、共有レイアウトの効果、ジェスチャー、中断の処理に引き続き有用とされています。問題にしているのは、選んだドライバーとプロパティが、負荷時にその操作の要件を満たせるかどうかです。

will-changeを追加すればフレーム落ちは解決しますか?

一般には解決しません。ソースでは、関連する問題を特定した後の的を絞った対策として扱っています。余分なレイヤーはメモリを消費し、このヒントはレイアウト処理をなくすことも、混雑したメインスレッドを解放することもできません。

デスクトップで滑らかな記録があれば十分ですか?

いいえ。ソースでは、モバイルの性能を判断するには実機での証拠を求めています。CPUスロットリングは調査には役立ちますが、スマートフォンのGPUやメモリの制約までは再現できません。

Animation Performance

カクつきの裏にある処理を見つける

再現可能な操作を1つ選び、そのフレームコストをたどって、変更を対象デバイスで検証します。コードに関する推奨事項は出発点であり、パフォーマンスのベンチマークではありません。

スコープ付きインストールコマンド
npx skills@latest add emilkowalski/skills --skill animation-performance