Loading...
Loading...
Guides building Expo/React Native apps with TypeScript using a consistent architecture and library stack (NativeWind, React Navigation static config, TanStack Query, Zustand, Axios, React Native Reusables-style primitives in src/ui). Use when creating an Expo app, or changing code in an app whose `package.json` has `expo`, `@react-navigation/native`, and `nativewind`, to follow these conventions.
npx skill4agent add cedmandocdoc/awesome-skills building-react-native-applicationsrc/ui| Layer | Choice |
|---|---|
| Runtime | Expo |
| Language | TypeScript |
| Styling | NativeWind, Tailwind CSS, class-variance-authority |
| Routing | React Navigation (static config, |
| Server state | TanStack Query |
| Client global state | Zustand |
| HTTP | Axios |
| Dates | date-fns ( |
| Presentational UI | React Native Reusables-style primitives in |
| Item | Required | When | How |
|---|---|---|---|
| Standing rule | required | Scaffold new app | Add |
| Entry | When | Go to |
|---|---|---|
| Component | Building, moving, or recategorizing any component | creating-component |
| Structure | Folder roles, dependency flow, or where a module belongs | managing-project-structure |
| Task bundle | API, forms, styling, bootstrap, navigation, keyboard, fonts, splash | Task types table |
| Lookup | Known doc name or single reference | Reference index |
| Task type | Docs |
|---|---|
| New screen / feature | managing-project-structure, creating-feature, creating-route-component, creating-screen-component, creating-component |
UI primitive ( | creating-component, creating-ui-component, discovering-registry-components, managing-wrapper-components, add-registry-component.cjs |
| Feature component | creating-component, creating-feature-component, managing-wrapper-components |
| Bottom sheet | creating-component, creating-bottom-sheet-component, managing-wrapper-components |
| Async / list UI | creating-component, creating-async-component, creating-api, managing-state |
| Form (single step) | creating-form-component, managing-form-error, managing-state, managing-date |
| Multi-step form | managing-stepper-hook, managing-stepper-form, creating-form-component, managing-form-error |
| API + data hooks | creating-api, setting-up-axios, managing-api-error, managing-state, managing-date |
| Date / time | managing-date |
| Refactor / move component | creating-component |
| Styling / theme | setting-up-nativewind, managing-styling, setting-up-theming, setting-up-tailwind-theme, setting-up-navigation-theme, overriding-classname |
| Navigation components & backgrounds | creating-navigation-component, setting-up-navigation-theme, managing-screen-background |
| Navigation hooks | creating-route-component, creating-navigation-component |
| Keyboard | Keyboard controller — Components |
| Fonts | setting-up-theming, setting-up-tailwind-theme, Expo — Fonts |
| Splash screen | Expo — SplashScreen |
| Scaffold new app | scaffolding-application |
| Project bootstrap | managing-project-structure, managing-environment, managing-linting, managing-package-installs, setting-up-nativewind, setting-up-registry-components |
| Routing only | creating-route-component, creating-navigation-component |
| Reference | Entry | Layer | Purpose |
|---|---|---|---|
| creating-api | API | HTTP modules under | |
| creating-async-component | Component | Loading, error, and list UI wrappers | |
| creating-bottom-sheet-component | Component | Bottom sheet UI in | |
| creating-component | Component | Component | Decision tree for any component work |
| creating-feature | Feature | Feature module folders and barrels | |
| creating-feature-component | Component | Domain UI blocks in features | |
| creating-form-component | Form | Form fields and form shells | |
| creating-navigation-component | Route | Reusable headers, tab bars, drawer content | |
| creating-route-component | Route | | |
| creating-screen-component | Feature | Route-facing | |
| creating-ui-component | Component | Shared primitives in | |
| discovering-registry-components | Component | Registry lookup by intent and labels | |
| managing-api-error | API | API error handling patterns | |
| managing-date | Date | date-fns and | |
| managing-environment | Setup | Feature | |
| managing-form-error | Form | Form validation and error display | |
| managing-linting | Setup | ESLint and Prettier setup | |
| managing-package-installs | Setup | Package manager detection and install scripts | |
| managing-project-structure | Structure | Architecture | Folder layout and dependency flow |
| managing-screen-background | Route | Screen background vs navigation theme | |
| managing-state | State | TanStack Query hooks and Zustand stores | |
| managing-stepper-form | Form | Multi-step form UI | |
| managing-stepper-hook | Form | Multi-step form state hook | |
| managing-styling | Styling | Styling conventions and tokens | |
| managing-wrapper-components | Component | Wrapper and composition patterns | |
| overriding-classname | Styling | | |
| scaffolding-application | Setup | Expo | |
| setting-up-axios | API | Axios client setup | |
| setting-up-nativewind | Styling | NativeWind install; pnpm isolated JSX runtime | |
| setting-up-navigation-theme | Styling | React Navigation theme objects | |
| setting-up-registry-components | Setup | Registry / | |
| setting-up-theming | Styling | Design tokens and theme CSS | |
| setting-up-tailwind-theme | Styling | Tailwind / NativeWind theme config |