Before utility classes, CSS-in-JS was React Native 36,878 's popular answer. styled-components 247,596 (https://github.com/styled-components/styled-components 41,103 ) (6.5.3) writes styles as tagged template literals, `const Card = styled.Viewpadding: 12px; `, parses the CSS at run time and themes through a React 7,897 context. Its maintainer put the library into maintenance mode in March 2025 and advised against it for new projects, so treat it as something you maintain rather than adopt. @emotion/native (11.11.0) is the same idea from the Emotion project.
A newer generation keeps the familiar StyleSheet shape or Tailwind 5,202 's vocabulary but moves the work elsewhere:
Unistyles 2,957 (https://github.com/jpudysz/react-native-unistyles 2,957 ) 3.3.0 extends StyleSheet.create() with themes, breakpoints and variants. A C++ core, reached through JSI with Nitro Modules 1,954 , updates styles when the theme or screen size changes, and its docs promise no re-renders for that.
Uniwind (https://github.com/uni-stack/uniwind 1,722 ) 1.12.0, from the same team, is a Tailwind binding built for Tailwind v4.
twrnc (https://github.com/jaredh159/tailwind-react-native-classnames 2,378 ) 4.16.0 turns a `twp-3 bg-white ` template into a style object at run time, with no Babel 41,624 or Metro setup at all.
NativeWind 5, in release candidate, rebuilds on a new react-native-css engine and Tailwind v4.
All of these are MIT-licensed.