MR
Mayur Rathi
@sickn33
⭐ 47.3k GitHub stars

expo-animation

expo-animation is an code AI skill with a core value of Curated upstream guidance for Expo Animation; use when the workflow matches the user goal. It helps developers solve real-world problems in the code domain, boosting efficiency, automating repetitive tasks, and optimizing workflows.

Curated upstream guidance for Expo Animation; use when the workflow matches the user goal.

Last verified on: 2026-10-06

Quick Facts

Category code
Works With Claude
Source sickn33/antigravity-awesome-skills
Stars ⭐ 47.3k
Last Verified 2026-10-06
Risk Level Low
mkdir -p ./skills/expo-animation && curl -sfL https://raw.githubusercontent.com/sickn33/antigravity-awesome-skills/main/skills/expo-animation/SKILL.md -o ./skills/expo-animation/SKILL.md

Run in terminal / PowerShell. Requires curl (Unix) or PowerShell 5+ (Windows).

Skill Content

When to Use

- Use when this upstream workflow matches the user's stated goal.

- Use when the task requires the procedures documented in this skill.


# Building Animations in Expo


This skill was created in collaboration with [Emil Kowalski](https://github.com/emilkowalski) and can also be found in the [emilkowalski/skills](https://github.com/emilkowalski/skills) repository, along with other useful animation skills.


A construction skill for React Native. It turns a request for motion into an implementation that survives a strict review on a real device — not in the simulator, not on a flagship phone in dev mode.


Mobile changes three things about animation, and everything in this skill follows from them:


1. **There is no hover.** Every affordance the web puts in hover has to live in press, position, or nothing.

2. **There are two runtimes.** Worklets (Reanimated 4) makes this explicit: the React Native runtime, where React renders and your app logic runs, and the UI runtime, where worklets run every frame (plus optional worker runtimes for background work). An animation that touches the RN runtime stutters the moment the app does anything else. The whole craft is keeping motion on the UI runtime.

3. **The user's finger is on the element.** Gestures are the primary input, so interruptibility and velocity handoff aren't polish — they're the baseline.


Operating Posture


You are a senior mobile engineer building the animation yourself. Make the call, state the reasoning in one line, write the code. Never present motion options as a menu.


Two failure modes, and the first is worse:


1. **Animating something that shouldn't animate.** The gate below exists to produce zero lines of code sometimes.

2. **Animating the right thing on the wrong thread** — a `setState` per frame, a `PanResponder`, an animated `height`. It looks fine in dev on your phone and drops to 20fps on a three-year-old Android.


Hard Rules


1. **Run the sequence in order.** Steps 1 and 2 gate everything.

2. **Reanimated, not core `Animated`.** Core `Animated` can't be driven by a gesture without crossing the bridge, and `useNativeDriver` refuses anything but transform and opacity anyway. Reanimated worklets run on the UI thread and keep running while JS is busy.

3. **No approximated values.** Curves and spring configs come from the tables below.

4. **Reduced motion ships with the animation**, not as a follow-up.

5. **Feel is judged on a release build on the slowest device you support.** Nothing else counts as verified.


The Build Sequence


1. Should this animate at all?


| Frequency | Decision |

| --- | --- |

| 100+ times/day — tab switches, keyboard open/close, scrolling, toggles in settings | **No animation.** Platform default or nothing. Stop here. |

| Tens of times/day — press feedback, list navigation, row selection | Near-imperceptible only: under 150ms, or nothing |

| Occasional — sheets, modals, toasts, onboarding steps | Standard animation |

| Rare / first-time — success states, empty-state illustrations, celebration | The delight budget lives here |


**Tab switches never slide.** Tabs are peers, not a hierarchy — sliding implies depth that isn't there, and the user pays for it dozens of times a session. `animation: 'none'`.


If the request fails this gate, say so and don't write it.


2. What is the purpose?


Name it in one word before continuing: **feedback**, **spatial consistency**, **state indication**, **preventing a jarring change**, **explanation**, or **delight** (rare tier only).


Can't name it? Don't build it.


3. Pick the tool — cheapest that works


Walk down; stop at the first that fits.


| Need | Tool |

| --- | --- |

| A state-driven change with no gesture — press, toggle, color, a value flipping | **Reanimated CSS transition** (`transitionProperty` in the style) |

| Loop, multi-stage, or plays on mount with no state change | **Reanimated CSS animation** (`animationName` keyframes) |

| An element mounting or unmounting,

🎯 Best For

  • UI designers
  • Product designers
  • Claude users
  • Software engineers
  • Development teams

💡 Use Cases

  • Generating component mockups
  • Creating design system tokens
  • Code quality improvement
  • Best practice enforcement

📖 How to Use This Skill

  1. 1

    Install the Skill

    Copy the install command from the Terminal tab and run it. The SKILL.md file downloads to your local skills directory.

  2. 2

    Load into Your AI Assistant

    Open Claude and reference the skill. Paste the SKILL.md content or use the system prompt tab.

  3. 3

    Apply expo-animation to Your Work

    Open your project in the AI assistant and ask it to apply the skill. Start with a small module to verify the output quality.

  4. 4

    Review and Refine

    Review AI suggestions before committing. Run tests, check for regressions, and iterate on the skill output.

❓ Frequently Asked Questions

Does this work with Figma?

Some design skills integrate with Figma plugins. Check the Works With section for supported tools.

Is expo-animation compatible with Cursor and VS Code?

Yes — this skill works with any AI coding assistant including Cursor, VS Code with Copilot, and JetBrains IDEs.

Do I need specific dependencies for expo-animation?

Check the install command and Works With section. Most code skills only require the AI assistant and your codebase.

How do I install expo-animation?

Copy the install command from the Terminal tab and run it. The skill downloads to ./skills/expo-animation/SKILL.md, ready to use.

Can I customize this skill for my team?

Absolutely. Edit the SKILL.md file to add team-specific instructions, examples, or workflows.

⚠️ Common Mistakes to Avoid

Skipping usability testing

AI-generated designs should be validated with real users before development.

Skipping validation

Always test AI-generated code changes, even for simple refactors.

Missing dependency updates

Check if the skill requires updated dependencies or new packages.

🔗 Related Skills