Compatibility
React Native, architecture, web, Expo Go, and CSS support boundaries.
Compatibility
Nitrowind supports React Native 0.85 through 0.87, Nitro Modules 0.37, Fabric, bridgeless, and the new architecture.
Validated versions
The 1.0.0-beta.1 release was validated in clean TypeScript projects through package
installation, CocoaPods, iOS compilation, simulator launch, and visual className styling.
| Project type | Version | React Native | Validation |
|---|---|---|---|
| React Native Community CLI | 0.87.0 | 0.87.0 | Supported |
| React Native Community CLI | 0.86.2 | 0.86.2 | Supported |
| React Native Community CLI | 0.85.3 | 0.85.3 | Supported |
| Expo | SDK 57.0.15 | 0.86.2 | Supported with a development build |
| Expo | SDK 56.0.20 | 0.85.3 | Supported with a development build |
These are the exact patch versions exercised by the compatibility audit. React Native 0.84 and
Expo SDK 55 or earlier are outside the current react-native >=0.85.0 package boundary. Do not
bypass that boundary with forced or legacy peer-dependency installation.
Expo SDK 57 passed clean TypeScript and Expo Doctor checks, native generation, CocoaPods, Android and iOS compilation, simulator/emulator launch, and visual checks for gradients, gradient borders, masks, background images, clip paths, and container queries. No Podfile, AppDelegate, Gradle, static-framework, or application-specific native changes are required.
Native engine
The native engine is built through nitrocss:
- iOS uses the
NitroCsspod. - Android uses the
:nitrocssGradle project. - Nitro modules generate the native bindings from
*.nitro.tsspecs.
Fallback environments
When the native engine is unavailable, the JS resolver handles styles. This is useful for:
- Web builds.
- Tests.
- Expo Go.
- Early integration before native rebuilds.
Expo Go can exercise the JavaScript fallback, but it cannot contain NitroCSS's custom native code.
Use npx expo run:ios or npx expo run:android to validate the native engine.
CSS support boundary
Nitrowind supports CSS that can map cleanly to React Native styles or native effect descriptors. Browser-only features that React Native cannot represent are skipped. The compiler also intentionally avoids arbitrary CSS URL background images except where native support exists in the package.