Release 3.1.0-rc.0
Pre-releaseThis is the react-native-css 3.1.0-rc.0 release candidate for Expo SDK 57. It targets Expo 57.0.22, React Native 0.86.3, React 19.2.3, Reanimated 4.5.1, and Worklets 0.10.1.
Fixes selectors, CSS variables, logical properties, prop mapping, reactive updates, and animations. Also fixes Babel imports, Node ESM exports, Metro cache invalidation, and TypeScript declarations.
npm install --save-exact react-native-css@3.1.0-rc.0The rc tag points to this candidate. The stable latest tag stays on 3.0.7. Nativewind 5.0.0-rc.0 is also available and requires this exact engine version.
Upgrading from 3.0.7
If you're using react-native-css on its own, update the engine with the command above. Your existing withReactNativeCSS integration can stay. If you're using it with Nativewind, install the matching pair:
npm install --save-exact nativewind@5.0.0-rc.0 react-native-css@3.1.0-rc.0A few cases need attention:
- Legacy CSS configuration:
@cssInteropand@react-nativeconfiguration now produce explicit errors instead of being silently ignored. Use React Native Appearance for native theme selection andinlineVariables.excludeto preserve runtime variables. - Native root theme selectors: selectors like
:root.darknow produce an error on native. Useprefers-color-schememedia queries and Appearance there. Custom browser theme behavior should be handled separately. - Old TypeScript declarations: props like
placeholderClassName,indicatorClassName,presentationClassName,cssInteropand StatusBarclassNameno longer have declarations for mappings that weren't supported by the v5 runtime. Use supported native props or explicitstyledmappings. For TextInput placeholder color, useplaceholderTextColoror a supported mapping.
For native theme overrides, use Appearance.setColorScheme('dark') or 'light' and read useColorScheme from react-native. On the Expo 57 target, Appearance.setColorScheme('unspecified') restores the system preference. Set inlineVariables: { exclude: ['--your-variable'] } in the compiler options when a variable must remain available at runtime.
vars() and the deprecated nativeStyleToProp mapping option remain available. Replacing them is not required for this update.
Check any local workarounds for prop mapping, selectors, CSS variables and style resolution against the corrected behavior. Restart Metro after updating, and rebuild the app if native dependencies change.
Expo 57 is the tested target. The declared minimums remain React Native >=0.81 and @expo/metro-config >=54; this does not establish full compatibility with every older Expo SDK.
Verification and known limitations
The audited engine passed 1,335 tests and 42 Node tooling tests with no skips. The combined Nativewind compatibility audit passed all 4,985 required checks across a physical iPhone, an Android emulator, Chromium, Firefox, and WebKit. Physical Android was not tested.
Android animation cancellation remains affected by Reanimated #10507. It also reproduces without Nativewind or react-native-css. See the compatibility notes for the audited scope and accepted limitations.
Source changes: #451.
The attached archive is the exact audited package. Its SHA256 is a03235e206ef49e48fb960e59eebea14bbb69e623aa168250d8ccca2ff200072.