Getting Started
React Native Styled System brings token-driven styling to React Native. Pass design tokens as props, resolve them from a centralized theme, and ship consistent UI faster.
Features
- Pass style props like
m,px,py,bg,flex,flexDirection,positiondirectly to components - All styles are cacheable, preventing unnecessary re-renders when values haven't changed
- Define and deliver custom design systems through themes
- Full TypeScript support via CLI-generated type augmentations
- Inject logical or responsive values (e.g.
safeAreaTop,sidePadding) into theme tokens - Text typography support
- Dark theme integration
- Built-in Tailwind CSS v4 palette + shadcn/ui semantic colors via
defaultTheme - Responsive breakpoint arrays for adaptive layouts
Why
Typical React Native styling requires manually referencing theme values everywhere:
const Sample = () => {
const theme = useTheme();
return (
<View style={{
backgroundColor: theme.colors['red.500'],
borderRadius: theme.radii.lg,
}}>
<Text style={[theme.typography.h1, { marginTop: theme.spaces[4] }]}>
React Native
</Text>
</View>
);
};
With Styled System, design tokens become props:
const Sample = () => {
return (
<Box bg={'red.500'} radius={'lg'}>
<Txt t={'h1'} mt={4}>
React Native
</Txt>
</Box>
);
};
info
Not all styled-system grammar is supported yet. Unsupported grammar is not a technical limitation and can be added as needed.
Styles like justifySelf that React Native does not support cannot be added.