Expo and React Native
Use UITheme with native StyleSheet controls and Expo Router.
Install
Use uitheme-rn for native apps. The web runtime and web registry controls are separate.
Add the provider
Wrap the root layout or application in UIThemeProvider. With Expo Router, keep the router inside the provider.
Use native colors
Use StyleSheet or normal native style props. Pass custom palettes through the provider when needed. Configure a storage adapter to persist preferences, and wait for isHydrated before hiding a launch splash screen when your app uses saved theme state.
For snapshot-based screen transitions, follow the example's transition provider and native dependency setup. Keep native navigation transitions coordinated with theme transitions.
Styling adapters
Use the NativeWind guide or Uniwind guide when your app uses utility classes. The native examples own their controls; the web registry does not install native components.
Example
Open the Expo example. Review src/app/_layout.tsx, src/storage.ts, and src/theme/ for navigation, persistence, and custom palettes.

