New to Claude Skills? Learn how to install them →

wshobson on GitHub

React Native Design

Free

Master styling, navigation, and animations for React Native apps.

by wshobson38.7k stars on wshobson/agents
3 views
Updated Jul 18, 2026
Get this skill

Free · Opens the source repo

What React Native Design does

React Native Design is a comprehensive skill aimed at developers looking to enhance their mobile applications with native-quality user experiences. This skill focuses on three core areas: styling patterns, navigation techniques, and creating animations using Reanimated 3. By leveraging these concepts, developers can build performant, cross-platform applications that feel seamless on both iOS and Android devices.

The skill provides guidance on implementing React Navigation 6+, which is essential for managing transitions between different screens in your app. It also covers the use of styled-components and StyleSheet for styling, ensuring that your UI is not only visually appealing but also optimized for performance. Additionally, the skill emphasizes the importance of responsive design, allowing applications to adapt to various screen sizes and orientations.

A key feature of this skill is its focus on animations, which can significantly enhance user engagement. By utilizing Reanimated 3, developers can create smooth, gesture-driven interactions that run at 60 frames per second, ensuring a fluid experience. The skill also includes best practices for handling common issues, such as gesture conflicts and memory leaks, providing developers with the tools they need to troubleshoot effectively.

Overall, React Native Design is ideal for developers and designers who are building or enhancing mobile applications using React Native. Whether you are new to the framework or looking to refine your skills, this skill offers valuable insights and practical examples to elevate your app development process.

When to use it

Use this skill when building cross-platform mobile apps that require robust navigation, responsive design, and engaging animations.

When not to use it

This skill may not be suitable for developers working with non-React Native frameworks or those who do not require advanced animation techniques.

What you can build with it

Building a New Mobile App

Leverage this skill to implement best practices in styling and navigation while developing a new cross-platform mobile application.

Enhancing an Existing App

Use the skill to refine the user experience of an existing React Native app by adding animations and optimizing performance.

Creating Responsive Designs

Utilize the guidelines provided to ensure your app looks great on all devices, adapting layouts for various screen sizes.

How to install React Native Design

View source

1. Install with the skills CLI

npx skills add wshobson/agents/react-native-design --agent claude-code

2. Or install it manually

Download the skill folder and drop it into ~/.claude/skills/ for all projects, or .claude/skills/ to scope it to one repo. Restart Claude Code so it picks up the new skill.

Anthropic's agentic coding CLI, and the reference implementation of Agent Skills. Drop a skill folder into ~/.claude/skills and Claude Code loads it automatically whenever a task matches the skill's description. Claude Code docs

Inside SKILL.md

Written by wshobson

React Native Design

Master React Native styling patterns, React Navigation, and Reanimated 3 to build performant, cross-platform mobile applications with native-quality user experiences.

When to Use This Skill

  • Building cross-platform mobile apps with React Native
  • Implementing navigation with React Navigation 6+
  • Creating performant animations with Reanimated 3
  • Styling components with StyleSheet and styled-components
  • Building responsive layouts for different screen sizes
  • Implementing platform-specific designs (iOS/Android)
  • Creating gesture-driven interactions with Gesture Handler
  • Optimizing React Native performance

Detailed section: Core Concepts

Originally a 6471-byte section in this SKILL.md. Moved to references/details.md to fit Codex's 8 KB skill body cap.

Quick Start Component

import React from 'react';
import {
  View,
  Text,
  StyleSheet,
  Pressable,
  Image,
} from 'react-native';
import Animated, {
  useSharedValue,
  useAnimatedStyle,
  withSpring,
} from 'react-native-reanimated';

interface ItemCardProps {
  title: string;
  subtitle: string;
  imageUrl: string;
  onPress: () => void;
}

const AnimatedPressable = Animated.createAnimatedComponent(Pressable);

export function ItemCard({ title, subtitle, imageUrl, onPress }: ItemCardProps) {
  const scale = useSharedValue(1);

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

  return (
    <AnimatedPressable
      style={[styles.card, animatedStyle]}
      onPress={onPress}
      onPressIn={() => { scale.value = withSpring(0.97); }}
      onPressOut={() => { scale.value = withSpring(1); }}
    >
      <Image source={{ uri: imageUrl }} style={styles.image} />
      <View style={styles.content}>
        <Text style={styles.title} numberOfLines={1}>
          {title}
        </Text>
        <Text style={styles.subtitle} numberOfLines={2}>
          {subtitle}
        </Text>
      </View>
    </AnimatedPressable>
  );
}

const styles = StyleSheet.create({
  card: {
    backgroundColor: '#ffffff',
    borderRadius: 16,
    overflow: 'hidden',
    shadowColor: '#000',
    shadowOffset: { width: 0, height: 2 },
    shadowOpacity: 0.1,
    shadowRadius: 8,
    elevation: 4,
  },
  image: {
    width: '100%',
    height: 160,
    backgroundColor: '#f3f4f6',
  },
  content: {
    padding: 16,
    gap: 4,
  },
  title: {
    fontSize: 18,
    fontWeight: '600',
    color: '#1f2937',
  },
  subtitle: {
    fontSize: 14,
    color: '#6b7280',
    lineHeight: 20,
  },
});

Best Practices

  1. Use TypeScript: Define navigation and prop types for type safety
  2. Memoize Components: Use React.memo and useCallback to prevent unnecessary rerenders
  3. Run Animations on UI Thread: Use Reanimated worklets for 60fps animations
  4. Avoid Inline Styles: Use StyleSheet.create for performance
  5. Handle Safe Areas: Use SafeAreaView or useSafeAreaInsets
  6. Test on Real Devices: Simulator/emulator performance differs from real devices
  7. Use FlatList for Lists: Never use ScrollView with map for long lists
  8. Platform-Specific Code: Use Platform.select for iOS/Android differences

Common Issues

  • Gesture Conflicts: Wrap gestures with GestureDetector and use simultaneousHandlers
  • Navigation Type Errors: Define ParamList types for all navigators
  • Animation Jank: Move animations to UI thread with runOnUI worklets
  • Memory Leaks: Cancel animations and cleanup in useEffect
  • Font Loading: Use expo-font or react-native-asset for custom fonts
  • Safe Area Issues: Test on notched devices (iPhone, Android with cutouts)

Frequently asked questions about React Native Design

Similar skills