Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
pluginagentmarketplace avatar

React Native Animations

  • 606 installs
  • 9 repo stars
  • Updated January 5, 2026
  • pluginagentmarketplace/custom-plugin-react-native

react-native-animations is a mobile frontend skill that generates production-ready React Native animation configurations, presets, and component patterns for existing codebases.

About

react-native-animations is a skill from pluginagentmarketplace/custom-plugin-react-native at version 1.0.0 that generates production-ready animation configurations, presets, and component patterns for React Native apps. Output defaults to markdown with included examples, and validation strictness toggles between development and production environments. Git and linter integrations are enabled by default so generated animation code fits existing project workflows. Developers reach for react-native-animations when adding motion to RN screens without hand-rolling Reanimated or Animated API boilerplate from scratch.

  • Generates React Native animation configs with strict mode and environment overrides
  • Includes built-in git, linter, and formatter integrations
  • Supports development (debug) and production (warn + strict) environment profiles
  • Outputs complete markdown documentation with examples when enabled
  • JSON schema validated configuration for react-native-animations skill

React Native Animations by the numbers

  • 606 all-time installs (skills.sh)
  • +8 installs in the week ending Jul 26, 2026 (Skillselion tracking)
  • Ranked #557 of 2,277 Frontend Development skills by installs in the Skillselion catalog
  • Security screen: MEDIUM risk (skills.sh audit)
  • Data as of Jul 26, 2026 (Skillselion catalog sync)
npx skills add https://github.com/pluginagentmarketplace/custom-plugin-react-native --skill react-native-animations

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs606
repo stars9
Security audit3 / 3 scanners passed
Last updatedJanuary 5, 2026
Repositorypluginagentmarketplace/custom-plugin-react-native

How do you add React Native animations to existing screens?

Generate production-ready React Native animation configurations, presets, and component patterns that integrate cleanly with existing codebases.

Who is it for?

React Native developers adding motion presets to existing mobile apps who want generated patterns instead of manual Animated API setup.

Skip if: Teams building web-only frontends or native iOS SwiftUI animations outside a React Native codebase.

When should I use this skill?

A user asks for React Native animations, Reanimated presets, motion components, or RN transition patterns.

What you get

Animation configuration files, component pattern snippets, markdown examples, and validated RN motion presets.

  • Animation preset configurations
  • RN component pattern snippets

By the numbers

  • Skill version 1.0.0
  • Markdown output format with include_examples enabled by default

Files

SKILL.mdMarkdownGitHub ↗

React Native Animations Skill

Learn high-performance animations using Reanimated 3, Gesture Handler, and layout animations.

Prerequisites

  • React Native basics
  • Understanding of JavaScript closures
  • Familiarity with transforms and styles

Learning Objectives

After completing this skill, you will be able to:

  • [ ] Create smooth 60fps animations with Reanimated
  • [ ] Handle complex gestures with Gesture Handler
  • [ ] Implement layout entering/exiting animations
  • [ ] Optimize animations for performance
  • [ ] Combine gestures with animations

---

Topics Covered

1. Installation

npm install react-native-reanimated react-native-gesture-handler

# babel.config.js
module.exports = {
  plugins: ['react-native-reanimated/plugin'],
};

2. Reanimated Basics

import Animated, {
  useSharedValue,
  useAnimatedStyle,
  withSpring,
} from 'react-native-reanimated';

function AnimatedBox() {
  const scale = useSharedValue(1);

  const animatedStyle = useAnimatedStyle(() => ({
    transform: [{ scale: scale.value }],
  }));

  const handlePress = () => {
    scale.value = withSpring(scale.value === 1 ? 1.5 : 1);
  };

  return (
    <Pressable onPress={handlePress}>
      <Animated.View style={[styles.box, animatedStyle]} />
    </Pressable>
  );
}

3. Gesture Handler

import { Gesture, GestureDetector } from 'react-native-gesture-handler';

function DraggableBox() {
  const translateX = useSharedValue(0);
  const translateY = useSharedValue(0);

  const pan = Gesture.Pan()
    .onUpdate((e) => {
      translateX.value = e.translationX;
      translateY.value = e.translationY;
    })
    .onEnd(() => {
      translateX.value = withSpring(0);
      translateY.value = withSpring(0);
    });

  const style = useAnimatedStyle(() => ({
    transform: [
      { translateX: translateX.value },
      { translateY: translateY.value },
    ],
  }));

  return (
    <GestureDetector gesture={pan}>
      <Animated.View style={[styles.box, style]} />
    </GestureDetector>
  );
}

4. Layout Animations

import Animated, { FadeIn, FadeOut, Layout } from 'react-native-reanimated';

function AnimatedList({ items }) {
  return (
    <Animated.View layout={Layout.springify()}>
      {items.map((item) => (
        <Animated.View
          key={item.id}
          entering={FadeIn}
          exiting={FadeOut}
          layout={Layout.springify()}
        >
          <Text>{item.title}</Text>
        </Animated.View>
      ))}
    </Animated.View>
  );
}

5. Animation Timing

FunctionUse Case
withTimingLinear, controlled duration
withSpringNatural, physics-based
withDecayMomentum-based (fling)
withSequenceMultiple animations in order
withRepeatLooping animations

---

Quick Start Example

import Animated, {
  useSharedValue,
  useAnimatedStyle,
  withSpring,
  interpolate,
} from 'react-native-reanimated';
import { Gesture, GestureDetector } from 'react-native-gesture-handler';

function SwipeCard() {
  const translateX = useSharedValue(0);

  const gesture = Gesture.Pan()
    .onUpdate((e) => { translateX.value = e.translationX; })
    .onEnd(() => { translateX.value = withSpring(0); });

  const style = useAnimatedStyle(() => ({
    transform: [
      { translateX: translateX.value },
      { rotate: `${interpolate(translateX.value, [-200, 200], [-15, 15])}deg` },
    ],
  }));

  return (
    <GestureDetector gesture={gesture}>
      <Animated.View style={[styles.card, style]} />
    </GestureDetector>
  );
}

---

Common Errors & Solutions

ErrorCauseSolution
"Attempted to call from worklet"Missing runOnJSWrap with runOnJS()
Animation not runningMissing 'worklet'Add 'worklet' directive
Gesture not workingMissing root viewAdd GestureHandlerRootView

---

Validation Checklist

  • [ ] Animations run at 60fps
  • [ ] Gestures respond smoothly
  • [ ] No frame drops on low-end devices
  • [ ] Layout animations don't cause jank

---

Usage

Skill("react-native-animations")

Bonded Agent: 05-react-native-animation

Related skills

How it compares

Use for generated RN animation boilerplate; hand-write Reanimated code when animations need highly custom physics or gesture choreography.

FAQ

What does react-native-animations output?

react-native-animations outputs production-ready animation configurations, presets, and component patterns in markdown format with examples, using version 1.0.0 defaults that enable git and linter integrations for existing React Native projects.

Does react-native-animations support environment-specific settings?

react-native-animations version 1.0.0 defines development and production environment overrides, toggling log levels and validation strict_mode so animation configs are lenient locally and strict before production builds.

Is React Native Animations safe to install?

skills.sh reports 3 of 3 security scanners passed. Review the Security Audits panel on this page before installing in production.

Frontend Developmentfrontendintegrations

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.