使い方ガイドへスキップ
animate-expo作者 Emil Kowalski

Animate Expo スキル。

Claude Code と Codex 用のモバイルアプリデザインスキル:React Native と Expo のためのジェスチャー、スプリング、トランジション。

  • Mobile Apps
  • UI コード
emilkowalski/skills · skills/animate-expo/SKILL.mdSKILL.md
--- name: animate-expo description: Build animations in React Native and Expo, making the decisions in the order that determines whether they feel right — should it animate, which thread it runs on, which properties, spring or timing, how the gesture hands off, how it degrades. Writes the implementation with Reanimated, Gesture Handler, Expo Router and expo-haptics. Use when animating anything in an Expo app, adding gestures, sheets, screen … --- ## Operating Posture ## Hard Rules ## The Build Sequence ## Setup that silently breaks motion ## 120fps ## Recipes
2026年9月14日にアップストリームファイルから読み取られたフロントマターとセクション見出し · 全17,458文字

01 できること

Claude CodeとCodexにおけるanimate-expoスキルの動作

概要、ワークフロー、出力。いずれもスキルの SKILL.md から読み取った内容です。

SKILL.md より2026年9月14日読取 · 実行記録ではありません

スキル自身の言葉で

React NativeとExpoにおけるモーションのための構築スキルです。アニメーションの依頼を、実機でのレビューに耐える実装へと変換し、感覚が正しく感じられるかどうかを左右する順序で判断を下します:そもそもアニメーションさせるべきか、どのスレッドで実行するか、どのプロパティか、springかtimingか、ジェスチャーの受け渡し方法、どのように劣化させるか。

すべては3つのモバイルの事実から導かれます:hoverが存在しないこと、2つのランタイムが存在すること、そしてユーザーの指が要素の上にあることです。Expoアプリのアニメーション、ジェスチャーの追加、シート、画面遷移、押下フィードバック、ハプティクス、あるいは実機でカクつくモーションの修正を行うすべての人のためのものです。コードはReanimated、Gesture Handler、Expo Router、expo-hapticsを用いて記述されています。

生成されるもの

  • 選択肢として提示するのではなく、直接記述された実装コードそのものです。
  • 頻度ティアと名前付きの目的を示す短いゲート結果で、何が却下されたか、その理由も含みます。
  • 材料となる要素の一覧:ツール、プロパティ、springまたはcurveとduration、そして処理がどのランタイム上で行われるか。
  • デバイス上で体感チェックすべき項目のリストです。ジェスチャーの受け渡しやハプティックのタイミングはコードだけでは判断できません。
プロンプト例を見る ↗

仕組み

  1. 01
    何よりもまずアニメーションをゲートする

    頻度テーブルは、そもそもモーションを発生させるかどうかを決定します。最上位ティアは処理を止め、コードを一切書きません。タブはヒエラルキーではなくピアなので、タブ切り替えでスライドすることはありません。

  2. 02
    目的を一言で名付ける

    このスキルは、先に進む前に単一語の意図を強制します——フィードバック、空間的一貫性、状態の提示、急激な変化の防止、説明、あるいはディライト(ディライトは初回のみの稀な瞬間に限る)です。

  3. 03
    機能する最も安価なツールを選ぶ

    テーブルを上から順に確認し、最初に当てはまる行で止めます:CSS transition、CSS keyframes、layout animation、shared valueとGesture、次にネイティブスタック、formSheet、NativeTabs、Link.Menu、RefreshControl、Lottie、Skiaの順です。

  4. 04
    アニメーションするプロパティを制限する

    transformとopacityはコストがかかりませんが、それ以外はレイアウトパスを発生させ、対象ノードとその兄弟要素についてYogaを毎フレーム再実行させます。

  5. 05
    指の動きからspringかtimingを選ぶ

    指が起点となるインタラクションには、中断時に速度が持続するようspringを使用します。それ以外はtimingカーブを使用し、ease-inは使いません。

  6. 06
    フレームをJSスレッドから外す

    shared valueはReactのstateではなくuseAnimatedStyleに渡され、RNランタイムの呼び出しはジェスチャーの更新内で発火させるのではなく、onEndまたは閾値到達時の反応に押し出されます。

02 適合性を確認

animate-expo スキルを使うべき場面

このようなモバイルアプリデザインの仕事の場合、Claude Code または Codex で animate-expo スキルを使用します。以下の適合性と制限はスキル自身のファイルから取得されています。

適している場合

  • Expoアプリ内で何かをアニメーションさせる場合全般で、ジェスチャー、シート、画面遷移、押下時のフィードバック、ハプティクスを含みます。
  • 指が関与するモーションで、中断可能性と速度の受け渡しが装飾ではなく基本仕様として扱われる場合です。
  • 名前付きレシピのいずれかに合致するリクエストで、白紙のファイルからではなくそのレシピから始めるべき場合です。
  • ホバーが存在しないプラットフォーム向けにWebのアフォーダンスを再設計する場合で、ホバー状態はプレス、位置、または何もない状態のいずれかに変換する必要があります。

境界を知る

  • Webアニメーションで、これは別のスキルに属します。
  • Expo Go内でモーションをテストすることです。これはパフォーマンス環境ではなく、探している問題を隠してしまいます。
  • 頻度ゲートを通過しないリクエストです——スキルは理由を名指しし、アニメーションの実装を辞退します。
  • まだ旧アーキテクチャ上にあるプロジェクトです。Reanimated 4はNew Architectureを必要とするためです。

提供すべきもの

  • インタラクションとその発生頻度頻度ティアは、そもそも何かを構築するかどうかを決定します。タブ切り替え、キーボードの開閉、スクロール、設定のトグルは最上位ティアに属します。
  • 一語で名付けられた目的単一の名付けられた目的がなければ、構築は行われません。
  • プロジェクトが必要とするパッケージは、Expo経由でインストールしますインストールはExpo CLIを通して行います。これはプロジェクトのSDKに対してバージョンを解決するためで、単純なnpm installではこれができません。

03 スキルの内部

animate-expo SkillがClaude CodeとCodexに与えるルール

SKILL.md がエージェントに設定する 8 つの具体的な指示・既定値・制限 — 結果を変える部分です。

  1. シーケンスを順番に実行する

    ステップ1と2は以降のすべてを制約します。ツールやプロパティの選択より前に、頻度と名前付き目的を確定させる必要があります。

  2. Core AnimatedではなくReanimated

    Core Animatedはブリッジを越えずにジェスチャーで駆動することができず、useNativeDriverはtransformとopacity以外を受け付けません。

  3. 近似値は使用しません

    カーブとスプリングの設定は、ファイル内の表から取得するものであり、独自に考案してはなりません。

  4. Reduced Motionはアニメーションと同時に実装する

    アクセシビリティ対応は同じ変更の一部であり、後続のチケットではありません。

  5. 手触りはリリースビルドでのみ判断する

    検証は、サポートする最も遅いデバイス上で、リリースビルドで行います。シミュレーターや開発ビルドは対象になりません。

  6. Appleの2つのスプリングパラメータを使用する

    スプリングはmass、stiffness、dampingではなく、durationとdampingRatioとvelocityで記述します。デフォルトの収束は{ duration: 400, dampingRatio: 1 }とし、固い端で止める必要がある場合はovershootClamping: trueとします。

  7. タッチターゲットを尊重する

    iOSでは最小44x44pt、Androidでは48dpとし、ビジュアル自体を大きくするのではなくhitSlopで確保します。さらにpressRetentionOffsetを設定し、ドリフトでプレスがキャンセルされないようにします。

  8. ユーザーの1アクションにつきハプティックは1回

    ハプティックはビジュアルと同じフレームで、因果関係のある瞬間に発火させます。スクロール中やフレームごとに発火させてはならず、また唯一のフィードバックとしてはなりません。

04 実際に使う

Claude Code または Codex に animate-expo をインストール

npx skills add コマンドを実行し、エージェントで最初のタスクを実行して、結果をチェックリストで確認します。

Claude Code、Codex または お使いのエージェントに animate-expo を追加

プロジェクトで実行してください。インストーラーが、どのエージェントに追加するかを尋ねます。

Terminal
npx skills add https://github.com/emilkowalski/skills --skill animate-expo

skills/animate-expo/SKILL.md用の汎用skills CLI形式です。リポジトリによっては独自のパスが記載されている場合があります。

スキルに最初のモバイルアプリデザインタスクを与える

スキル自身の用語で記述されています。角括弧の部分はご自身の内容に置き換えてください。

Starter prompt
In my Expo app the [filter sheet] is a bottom sheet people open a few times a session, and dragging it down should dismiss it, snapping back if the drag was short. Add press feedback to the [row component] in the list and a selection haptic when the sheet detent catches. Keep all of it on the UI thread — nothing should stutter on a three-year-old Android — and ship reduced-motion handling in the same change.

出典:SKILL.md をスキル自身の用語に沿って記述。

最初の結果を確認

SKILL.md 自体が正しい結果として示しているもの:

  • 実機でインタラクションを手動で操作します。弾くように動かし、動作中に中断し、逆再生させます。
  • ProMotion対応iPhoneでCADisableMinimumFrameDurationOnPhoneが設定されていることを確認します。最近のExpo SDKではデフォルトで設定されています。
  • Reduced Motionの場合、ゼロになるのではなく、より少なく、より穏やかになることを確認します。opacityと色による説明は維持します。
  • 何も動作しない場合は、まずサイレントに機能を止める要因を確認します。worklets Babelプラグインと、アプリをラップするGestureHandlerRootViewです。

OpenDesignではanimate-expoをそのSKILL.mdリンクからインポートします。Plugins → Add → Skill → Import from linkを使用し、上部バーで選択します。

05 オープンソースで追跡可能

ソース、ライセンス、検証

このページの情報の出所と、最終確認日時です。

Repository
github.com/emilkowalski/skills ブランチ main
スキルファイル
skills/animate-expo/SKILL.md 検証時に記録されたコンテンツチェックサム、コミット d23d7f8
License
MIT LICENSE より。
リポジトリスター数
37,516 GitHub スナップショットは 2026-09-14 に emilkowalski/skills リポジトリ全体を対象に取得されました。このカタログには 9 つのスキルが含まれています。animate-expo の評価や使用回数ではありません。
OpenDesign により検証済み
2026-09-14 ソースファイル、パス、ライセンステキスト、スター数を確認済み。OpenDesign 本体にはバンドルされていません(2026-08-28 確認)。このページには実行記録がありません。

SKILL.md の中身

  1. 対応の姿勢シニアエンジニアとして振る舞います。判断を下し、理由を一行で述べ、コードを書きます。
  2. ハードルール順序の一貫性、Reanimated、テーブル化された値、モーション低減、リリースビルドでの判断という5つの譲れない条件です。
  3. ビルドシーケンス頻度ゲートからプロパティ、スプリング、スレッド、ハプティクスまで、9つの順序立てられたステップです。
  4. モーションを静かに壊すセットアップインストール、Babelプラグイン、ルートビュー、アーキテクチャが原因で、アニメーションが一切動かなくなるケースです。
  5. 120fpsCADisableMinimumFrameDurationOnPhoneを有効にすることで、ProMotion対応iPhoneに8msのフレーム予算を確保します。
  6. レシピ集押下フィードバック、シート、スワイプ、ヘッダー、キーボードUI、タブについてはRECIPES.mdを参照します。
  7. 絶対に使わないもの禁止パターンとその代替を対にした2列のテーブルです。
  8. 出力コードに加え、ゲートの判定結果、使用要素、確認すべき感触について数行のコメントを付けます。
  9. トーン明確で簡潔。何かをまったくアニメーションさせるべきでない場合は、そうはっきり伝えます。
スキル自身による説明
「React Native と Expo でアニメーションを構築し、正しく感じるかどうかを決定する順序で判断を下します — アニメーションさせるべきか、どのスレッドで実行するか、どのプロパティか、スプリングかタイミングか、ジェスチャーをどう引き継ぐか、どう劣化させるか。Reanimated、Gesture Handler、Expo Router、expo-haptics を使って実装を記述します。Expo アプリで何かをアニメーションさせる、ジェスチャー、シート、画面遷移、プレスフィードバック、ハプティクスを追加する、デバイス上でカクつくモーションを修正する場合に使用します。Web アニメーションには `animate` を使用してください。」

SKILL.md のフロントマター説明です。完全なファイルは約 17,458 文字です。GitHub で完全なファイルを読む。

06 インストールする前に

animate-expoスキルについてのよくある質問

回答は 2026-09-14 時点で読んだ SKILL.md に基づくもので、記録された実行結果によるものではありません。

コアのAnimated APIではなくReanimatedを使うのはなぜですか?

コアのAnimatedはブリッジを経由せずにジェスチャーで駆動することができず、useNativeDriverもtransformとopacity以外は受け付けません。ReanimatedのworkletはUIスレッド上で動作し、JSが忙しい間も動き続けます。

その操作が1日に何十回も発生する場合はどうなりますか?

最上位の頻度ティアに対しては、ゲートはアニメーションなしという判定を返します。プラットフォームのデフォルトを使うか、何もせずに止めてください。アニメーションは、シート、モーダル、トースト、成功状態といった、時々発生するまれな場面のために取っておくものです。

Animate Expo

実際のモバイルアプリデザインタスクで animate-expo を実行してください。

OpenDesign をダウンロードし、SKILL.md リンクから animate-expo をインポートし、上記のプロンプトを貼り付けて、結果の前にプランを確認してください。

ターミナル
npx skills add https://github.com/emilkowalski/skills --skill animate-expo

OpenDesign デスクトップ版

ひとつのデザインシステムで、すべての制作物をブランドらしく

完全な Vibe Design Workspace で、同じブランドルールを Web サイト、スライド、操作できるプロトタイプ、ダッシュボード、画像、HTML 動画に展開できます。ローカルの Codex、Claude Code、Cursor などを接続して無料で制作しましょう。

  • Web、スライド、プロトタイプ、ダッシュボード、画像、動画
  • 140+ のデザインシステムと完全なテンプレート/スキルライブラリ
  • ローカル Codex と 21+ のコーディングエージェントを接続 · 無料
無料ダウンロード

macOS と Windows に対応