UI
UI for an Expo app, compared: NativeWind 4, NativeWind 5, Tamagui, Unistyles 3, StyleSheet (plain RN) - Expo Go support and what each option installs.
Hey - here's how UI works in ReadyNative. This category picks the styling engine behind your
screens: the primitives (Screen, Box, Text, Button, Input, Card, Switch, Toast
and friends), the theme provider and the dark-mode plumbing.
The contract is what makes the choice cheap. Every option implements the same token-typed
props (with style as the only escape hatch), so the screens are identical on all five. After
bun run setup the kit lives in src/components/ui and screens import @/components/ui; before
setup, or with --keep-modules, it's src/ui behind @/ui, and switching is
bun run setup --ui <option> --keep-modules. Colours live in src/theme/tokens.ts, and
bun run gen:theme regenerates whatever the stack needs. Styling
shows the day-to-day pattern; the option pages below cover setup and gotchas per stack.
- nativewind4 - the default. Stable NativeWind 4.2 on Tailwind 3 with React Native Reusables, biggest component ecosystem, Expo Go OK.
- nativewind5 - RC · Tailwind 4. NativeWind 5 is still a release candidate; pick it if you want Tailwind 4 today.
- stylesheet - no framework at all, plain
StyleSheet.createfrom the tokens. Zero extra dependencies and the clearest read of the contract. - tamagui - a typed styling API with variants and a compiler, still JS-only.
- unistyles - a C++/Nitro engine that re-themes without React re-renders. The fastest, and the only option that needs a dev build.
Options
One option per category - --ui <option> picks it:
bun run setup --ui nativewind4| Option | Label | Expo Go | Hint |
|---|---|---|---|
nativewind4 | NativeWind 4 (default) | yes | Stable · Tailwind 3 classes + RNR components behind @/ui · Expo Go OK |
nativewind5 | NativeWind 5 | yes | RC · Tailwind 4 classes behind @/ui · Expo Go OK |
tamagui | Tamagui | yes | Tamagui 2 (v5 config, optimising compiler) behind @/ui · Expo Go OK |
unistyles | Unistyles 3 | no - dev build required | C++ StyleSheet with themes/breakpoints behind @/ui · dev build required (no Expo Go) |
stylesheet | StyleSheet (plain RN) | yes | no style engine, tokens + StyleSheet.create · Expo Go OK |
Features
Every category and option bun run setup can install in the ReadyNative Expo template - auth, payments, push, analytics, i18n, UI and more, default first.
NativeWind 4
Set up NativeWind 4 for UI in an Expo app with ReadyNative: Stable · Tailwind 3 classes + RNR components behind @/ui · Expo Go OK