Master React Native styling, navigation
React native design

Master React Native styling, navigation, and Reanimated animations for cross-platform mobile development. Use when building React Native apps, implementing navigation patterns, or creating performant animations.
--- name: react-native-design description: Master React Native styling, navigation, and Reanimated animations for cross-platform mobile development. Use when building React Native apps, implementing navigation patterns, or creating performant animations. --- # 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
Overview
Master React Native styling patterns, React Navigation, and Reanimated 3 to build performant, cross-platform mobile applications with native-quality user experiences.
Manual install (npx, ZIP)
Claude Code
npx skills add wshobson/agents --skill react-native-design -g -a claude-codeClaude Code (manual)
mkdir -p ~/.claude/skills && curl -sL https://codeload.github.com/wshobson/agents/tar.gz/4236bb91f839 \
| tar -xz -C ~/.claude/skills --strip-components=4 agents-4236bb91f839/plugins/ui-design/skills/react-native-designWindows (PowerShell)
New-Item -ItemType Directory -Force "$HOME\.claude\skills" | Out-Null; Invoke-WebRequest "https://m.agentalley.io/zip/31beb2078008e569711e/react-native-design.zip" -OutFile "$env:TEMP\react-native-design.zip"; Expand-Archive "$env:TEMP\react-native-design.zip" -DestinationPath "$HOME\.claude\skills" -ForceClaude.ai / desktop
Codex, Cursor, other agents
Connects with Agent Alley MCP · agentalley.io/mcp
Files included
SKILL.md3.9 KBreferences/4 files · 61.5 KB
Read the files here
wshobson/
SKILL.md
Show the full text130 lines
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
- Use TypeScript: Define navigation and prop types for type safety
- Memoize Components: Use
React.memoanduseCallbackto prevent unnecessary rerenders - Run Animations on UI Thread: Use Reanimated worklets for 60fps animations
- Avoid Inline Styles: Use StyleSheet.create for performance
- Handle Safe Areas: Use
SafeAreaVieworuseSafeAreaInsets - Test on Real Devices: Simulator/emulator performance differs from real devices
- Use FlatList for Lists: Never use ScrollView with map for long lists
- Platform-Specific Code: Use Platform.select for iOS/Android differences
Common Issues
- Gesture Conflicts: Wrap gestures with
GestureDetectorand usesimultaneousHandlers - Navigation Type Errors: Define
ParamListtypes for all navigators - Animation Jank: Move animations to UI thread with
runOnUIworklets - Memory Leaks: Cancel animations and cleanup in useEffect
- Font Loading: Use
expo-fontorreact-native-assetfor custom fonts - Safe Area Issues: Test on notched devices (iPhone, Android with cutouts)
| 1 | |
| 2 | name react-native-design |
| 3 | description Master React Native styling, navigation, and Reanimated animations for cross-platform mobile development. Use when building React Native apps, implementing navigation patterns, or creating performant animations. |
| 4 | |
| 5 | |
| 6 | # React Native Design |
| 7 | |
| 8 | Master React Native styling patterns, React Navigation, and Reanimated 3 to build performant, cross-platform mobile applications with native-quality user experiences. |
| 9 | |
| 10 | ## When to Use This Skill |
| 11 | |
| 12 | Building cross-platform mobile apps with React Native |
| 13 | Implementing navigation with React Navigation 6+ |
| 14 | Creating performant animations with Reanimated 3 |
| 15 | Styling components with StyleSheet and styled-components |
| 16 | Building responsive layouts for different screen sizes |
| 17 | Implementing platform-specific designs (iOS/Android) |
| 18 | Creating gesture-driven interactions with Gesture Handler |
| 19 | Optimizing React Native performance |
| 20 | |
| 21 | ## Detailed section: Core Concepts |
| 22 | |
| 23 | Originally a 6471-byte section in this SKILL.md. Moved to `references/details.md` to fit Codex's 8 KB skill body cap. |
| 24 | |
| 25 | ## Quick Start Component |
| 26 | |
| 27 | |
| 28 | import React from 'react'; |
| 29 | import { |
| 30 | View, |
| 31 | Text, |
| 32 | StyleSheet, |
| 33 | Pressable, |
| 34 | Image, |
| 35 | } from 'react-native'; |
| 36 | import Animated, { |
| 37 | useSharedValue, |
| 38 | useAnimatedStyle, |
| 39 | withSpring, |
| 40 | } from 'react-native-reanimated'; |
| 41 | |
| 42 | interface ItemCardProps { |
| 43 | title: string; |
| 44 | subtitle: string; |
| 45 | imageUrl: string; |
| 46 | onPress: () => void; |
| 47 | } |
| 48 | |
| 49 | const AnimatedPressable = Animated.createAnimatedComponent(Pressable); |
| 50 | |
| 51 | export function ItemCard({ title, subtitle, imageUrl, onPress }: ItemCardProps) { |
| 52 | const scale = useSharedValue(1); |
| 53 | |
| 54 | const animatedStyle = useAnimatedStyle(() => ({ |
| 55 | transform: [{ scale: scale.value }], |
| 56 | })); |
| 57 | |
| 58 | return ( |
| 59 | <AnimatedPressable |
| 60 | style={[styles.card, animatedStyle]} |
| 61 | onPress={onPress} |
| 62 | onPressIn={() => { scale.value = withSpring(0.97); }} |
| 63 | onPressOut={() => { scale.value = withSpring(1); }} |
| 64 | > |
| 65 | <Image source={{ uri: imageUrl }} style={styles.image} /> |
| 66 | <View style={styles.content}> |
| 67 | <Text style={styles.title} numberOfLines={1}> |
| 68 | {title} |
| 69 | </Text> |
| 70 | <Text style={styles.subtitle} numberOfLines={2}> |
| 71 | {subtitle} |
| 72 | </Text> |
| 73 | </View> |
| 74 | </AnimatedPressable> |
| 75 | ); |
| 76 | } |
| 77 | |
| 78 | const styles = StyleSheet.create({ |
| 79 | card: { |
| 80 | backgroundColor: '#ffffff', |
| 81 | borderRadius: 16, |
| 82 | overflow: 'hidden', |
| 83 | shadowColor: '#000', |
| 84 | shadowOffset: { width: 0, height: 2 }, |
| 85 | shadowOpacity: 0.1, |
| 86 | shadowRadius: 8, |
| 87 | elevation: 4, |
| 88 | }, |
| 89 | image: { |
| 90 | width: '100%', |
| 91 | height: 160, |
| 92 | backgroundColor: '#f3f4f6', |
| 93 | }, |
| 94 | content: { |
| 95 | padding: 16, |
| 96 | gap: 4, |
| 97 | }, |
| 98 | title: { |
| 99 | fontSize: 18, |
| 100 | fontWeight: '600', |
| 101 | color: '#1f2937', |
| 102 | }, |
| 103 | subtitle: { |
| 104 | fontSize: 14, |
| 105 | color: '#6b7280', |
| 106 | lineHeight: 20, |
| 107 | }, |
| 108 | }); |
| 109 | |
| 110 | |
| 111 | ## Best Practices |
| 112 | |
| 113 | **Use TypeScript**: Define navigation and prop types for type safety |
| 114 | **Memoize Components**: Use `React.memo` and `useCallback` to prevent unnecessary rerenders |
| 115 | **Run Animations on UI Thread**: Use Reanimated worklets for 60fps animations |
| 116 | **Avoid Inline Styles**: Use StyleSheet.create for performance |
| 117 | **Handle Safe Areas**: Use `SafeAreaView` or `useSafeAreaInsets` |
| 118 | **Test on Real Devices**: Simulator/emulator performance differs from real devices |
| 119 | **Use FlatList for Lists**: Never use ScrollView with map for long lists |
| 120 | **Platform-Specific Code**: Use Platform.select for iOS/Android differences |
| 121 | |
| 122 | ## Common Issues |
| 123 | |
| 124 | **Gesture Conflicts**: Wrap gestures with `GestureDetector` and use `simultaneousHandlers` |
| 125 | **Navigation Type Errors**: Define `ParamList` types for all navigators |
| 126 | **Animation Jank**: Move animations to UI thread with `runOnUI` worklets |
| 127 | **Memory Leaks**: Cancel animations and cleanup in useEffect |
| 128 | **Font Loading**: Use `expo-font` or `react-native-asset` for custom fonts |
| 129 | **Safe Area Issues**: Test on notched devices (iPhone, Android with cutouts) |
| 130 |
Details
- Updated
- Sep 21, 2026
- License
- MIT
- Stars on the repo
- ★ 39,857
- Checked
- Source
- wshobson/agents ↗
- Creator
- wshobson · 179 listings
Similar skills
See all →
SkillEntry point and router for every Expo or EAS task`expo-overview` — router & shared rules for Expo / EAS
SkillAdd an iOS App Clip target to an Expo appAdd an App Clip to an Expo App
SkillBuild and submit iOS and Android apps with EAS to TestFlightApp Store Deployment
SkillDesigns with sleekDesigning with Sleek
PromptCreate an advanced music app for Android with featuresBuild an advanced music app for android
PromptAct as an expert mobile application developer with masteryMobile app builderMore from wshobson
SkillMaster C/.NET backend development patterns for building
SkillImplement WCAG 2.2 compliant interfaces with mobileAccessibility compliance
SkillMaster Material Design 3 and Jetpack Compose patternsAndroid Mobile Design
SkillMigrate from AngularJS to Angular using hybrid modeAngular migration
SkillUnderstand anti-reversing, obfuscationAnti reversing techniques
SkillBuild production Apache Airflow DAGs with best practicesApache Airflow DAG Patterns