What is the react-native-design skill?
react-native-design is a skill in the ui-design plugin of wshobson/agents. It covers StyleSheet and styled-components styling, React Navigation 6 and newer, Reanimated 3 spring animations run on the UI thread, responsive layout and platform-specific code through Platform.select, and common pitfalls such as gesture handler conflicts and memory leaks from unremoved listeners.
react-native-design is one skill inside the ui-design plugin of wshobson/agents, a marketplace of plugins, agents and skills built to work across several AI coding tools.
It covers eight use cases for cross-platform mobile work: building Expo and bare React Native apps, React Navigation 6 and newer, Reanimated 3 animation, StyleSheet and styled-components styling, responsive layouts, platform-specific code, gesture handling and performance work.
What changes in the agent's output
- Navigation and prop types get defined in TypeScript rather than left loosely typed, matching the skill's first best practice.
- Animations run on Reanimated's shared values and the UI thread instead of the older Animated API driven from JavaScript.
- Inline styles get replaced with StyleSheet objects, and React.memo wraps components that re-render often.
- OS-specific code branches through Platform.select rather than scattered if-checks against Platform.OS.
Common issues it covers
The skill documents five recurring problems: gesture handler conflicts between nested pan responders, navigation type errors from loose prop typing, animation performance loss from JavaScript-driven updates, memory leaks from listeners that are never removed, and font loading or safe area inconsistencies across devices.
Who the react-native-design skill is for
Best for
- Teams building a cross-platform mobile app with React Navigation and Reanimated already in the stack.
- Screens that need spring-based press or gesture animations running smoothly on real devices.
- Projects standardizing on TypeScript for navigation and component props.
Not for
- If your job is mostly building Reanimated gesture animation for Expo apps, the animate-expo skill is the better fit for that.
- When the task is turning Stitch HTML designs into native components with navigation wiring, the stitch-react-native skill is the better fit for that.
- If your job is mostly building native Expo screens with platform styling, the building-native-ui skill is the better fit for that.
Use it with UiChemy
React Native targets a mobile app shell, not a web page. For a web build from the same design language, UiChemy AI to WordPress carries a front-end build into an editable WordPress page instead.
How to install React Native Design Skill for AI Coding Agents
gh skill install wshobson/agents react-native-designBoth single-skill installers skip the plugin's bundled agents, commands and hooks, installing only the skill itself.Install the single skill
Run
gh skill install wshobson/agents react-native-designto pull in just this skill without the rest of the ui-design plugin's agents or commands.Or use the npx installer
Run
npx skills add wshobson/agents --skill react-native-designas an alternative that also reads the skill from GitHub without cloning the repository.Or install the full plugin
In Claude Code, run
/plugin marketplace add wshobson/agentsthen/plugin install ui-design@claude-code-workflowsfor the whole ui-design plugin, react-native-design included.
Check that it loaded
Ask the agent to build a React Native screen with a press animation and check that it uses Reanimated shared values on the UI thread rather than the older JavaScript-driven Animated API.
Key features
- TypeScript navigation typingNavigation params and component props get explicit types, catching a wrong param name or missing prop at compile time instead of at runtime.
- Reanimated 3 shared valuesPress and gesture animations use Reanimated's shared values and spring configs, running on the UI thread instead of blocking on JavaScript.
- StyleSheet over inline stylesStyles move into StyleSheet.create objects rather than inline style props, which keeps style objects stable across re-renders.
- React.memo for frequent re-rendersComponents that re-render often, such as list items, get wrapped in React.memo to skip unnecessary re-renders when props have not changed.
- Platform.select for OS branchingOS-specific values and components branch through Platform.select rather than scattered conditional checks against Platform.OS throughout a screen.
- FlatList for long listsLong or dynamic lists render through FlatList instead of mapping over an array inside a ScrollView, avoiding the memory and performance cost of rendering every item at once.
- Safe area handlingSafe area insets get applied explicitly so content clears notches and home indicators consistently across different device shapes.
- Real-device testing guidanceGesture and animation behavior gets verified on physical devices, since simulator behavior can differ from how gestures and spring physics feel on real hardware.
Frequently asked questions
What is the react-native-design skill?
It is a skill inside the ui-design plugin of wshobson/agents that covers React Native styling, React Navigation 6 and newer, and Reanimated 3 animation for building cross-platform mobile screens, along with common pitfalls like gesture conflicts and memory leaks.
How do I install the react-native-design skill?
Run gh skill install wshobson/agents react-native-design or npx skills add wshobson/agents --skill react-native-design to pull in just this skill, or install the full ui-design plugin through the Claude Code plugin marketplace for the complete set.
Does react-native-design use the older Animated API or Reanimated?
Reanimated 3. The skill's quick-start component and best practices run animations through Reanimated's shared values and spring configs on the UI thread, rather than driving them from JavaScript the way the older Animated API does.
What navigation library does react-native-design assume?
React Navigation 6 or newer. The skill recommends defining navigation and prop types in TypeScript so a wrong parameter name surfaces as a type error instead of a runtime crash deep in a screen.
How does react-native-design handle platform-specific code?
Through Platform.select, which branches a value or component by OS in one place, rather than scattering Platform.OS conditional checks throughout a screen. The same approach applies to platform-specific styling choices.
What memory leak does react-native-design warn about?
Listeners and subscriptions that are added in a component but never removed on unmount. The skill lists this among five common issues, alongside gesture handler conflicts and navigation type errors, that show up after a screen has shipped.
Does react-native-design cover list performance?
Yes. It recommends FlatList for long or dynamic lists instead of mapping over an array inside a ScrollView, since FlatList only renders the items currently visible rather than the entire list at once.


