What problem does it solve? Animations in React Native often stutter on real devices because they run on the wrong thread, use layout-triggering properties, or ignore gesture velocity. This Skill provides a decision sequence and ready-made recipes for building motion that stays on the UI thread and feels correct on physical devices. ## Core Features & Use Cases - Decision framework for motion: Gates whether something should animate at all based on frequency, then selects the cheapest tool (CSS transitions, layout animations, shared values, native stack options, Lottie, or Skia). - UI-thread implementation patterns: Enforces Reanimated worklets, shared values with .get()/.set(), scheduleOnRN instead of deprecated runOnJS, and spring configs with velocity handoff for interruptible gestures. - Ready-to-build recipes: RECIPES.md covers press feedback, drag-to-dismiss bottom sheets, swipe-to-delete rows, collapsing headers, list entrances, keyboard-synced UI, tab indicators, screen transitions, and toasts. - Use Case: When adding a swipe-to-delete gesture to a list in an Expo app, the Skill provides the full Gesture.Pan implementation with momentum projection, axis locking against vertical scroll, and haptic feedback on commit. ## Quick Start Ask the assistant to build a drag-to-dismiss bottom sheet or fix a janky scroll animation in your Expo app using the expo-animation skill.