Scoped Themes & Stability Fixes
- Scoped Themes đ - Added
ScopedThemesupport for applying themes to a subtree without changing the global app theme. See Scoped Themes - Migration skill update - Updated the Nativewind-to-Uniwind migration skill to include
ScopedThemeguidance - JS expression fallback fix - Invalid JavaScript expressions are now treated as plain strings instead of failing parsing
- Gradient parsing fix - Fixed gradient parsing with
%values and CSS variables - Border opacity shadow tree fix - Fixed missing shadow tree updates for borders with opacity
- Android hard reload memory leak fix - Resolved an Android memory leak during hard reloads
- Reanimated theme transition crash fix - Fixed app crashes when repeatedly switching themes with reanimated transitions
New Utilities & Fixes
- Start/end spacing properties - Added support for
ps,pe,ms, andmelogical spacing utilities by @khaled-hamam - fontScale and pixelRatio without arguments - Both
fontScale()andpixelRatio()functions can now be called without arguments - FlatList crash fix - Fixed a crash for undefined ShadowNode while unmounting components in nested
FlatListandVirtualizedList - Android IME insets - Android now ignores IME insets and correctly respects system bars
Public Release
Weâre thrilled to announce the first public release of Uniwind Pro. Battle-tested by dozens of companies and ready to be used in your unique project.
- Insets safety with keyboard management - Bottom safe area insets are now protected from IME insets when using keyboard management packages
- Nitro Modules upgrade - Upgraded to
react-native-nitro-modules0.33.9 - Migration skill released - Added a migration skill from Nativewind to Uniwind. Give it a try in Skills
- Metro config cleanup - Removed
.mjsexport from Metro config - Hermes v1 fix - Insets updates now subscribe before triggering listeners
Cache & Fixes
This release focuses on download efficiency, platform fixes, and improved package manager compatibility:- Local cache for worktrees - Implemented local cache to reduce repeated downloads when working across Git worktrees
- Android color scheme fix - Fixed an issue where the initial color scheme could be locked to light on Android
- Nitro Modules support update - Support
react-native-nitro-modules0.33.7 - FlashList and LegendList safety fix - Prevented nullable
__nativeTagfor FlashList and LegendList - pnpm installation fix - Added a
uniwind-propostinstall script to fix an issue in pnpm environments - Animated Pressable restored - Brought back Animated Pressable after a regression in beta.10
- RNW + Vite Tailwind fix - Fixed Tailwind classes not applying to React Native Web and Vite by @dannyhw
This is most likely the latest beta release. Uniwind Pro is expected to become generally available for everyone with the first RC release.
Data attributes
This release includes engine upgrades, rendering fixes, and improved web compatibility:- Data attribute selectors - Added support for styling with
data-*attributes. See Data Selectors - Nitro Modules upgrade - Upgraded to
react-native-nitro-modules0.33.3 - hairlineWidth support - Add missing implementation on the C++ side
- Nested Text classNames - Fixed missing
classNamepropagation for nestedTextcomponents - CSS variables isolation - Fixed an issue with
updateCSSVariableswhile updating the current theme - React Native Web fixes - Resolved minor issues where some styles didnât apply correctly on the web
- Insets parsing - Fixed an issue with parsing insets values
Features & Bug Fixes
This release brings iOS static frameworks support and important web platform fixes:- iOS static frameworks support - Full compatibility with
useFrameworks: "static" - Simpler CI/CD setup -
libsecretinstallation is no longer needed to verify the license on cloud platforms - React Native Web CSS layer fix - Patched React Native Web to wrap default styles with CSS layer for better style isolation
- Vite Animated components fix - Fixed resolution of Animated components in Vite builds
- ColorSchemeName compatibility - Added support for both new and old ColorSchemeName types in React Native
Bug Fixes
This release includes important fixes for build and path resolution:- Resolver internal path check - Fixed internal path resolution in the custom resolver that was causing errors on the web platform
- CMakeLists.txt autolinking - Corrected the autolinking file path in CMakeLists.txt for better build compatibility
More Power, More Flexibility
This release brings exciting new features and important fixes to make your development experience even smoother.- Custom safe area spacings - You can now combine safe area utilities with custom spacing values (e.g.,
pt-safe-[20px],pb-safe-4) for pixel-perfect layouts - parseColor runtime support - New
parseColorfunction lets you parse Tailwind colors at runtime, perfect for dynamic theming and color manipulation - Linux build fix - Fixed a case-sensitive filename issue that caused Android builds to fail on Expo EAS (Linux environments)
- Improved Metro stability - Resolved a âmaximum call stack size exceededâ error that could crash the Metro bundler
- Better path resolution - Fixed React Native directory resolution for non-standard project structures
Experimental iOS Static Frameworks Support: If youâre using
useFrameworks: "static" in your Expo config, try the experimental version uniwind-pro-1.0.0-beta.7-22012026. This build includes fixes for iOS static framework compatibility.Bug Fixes & CLI Improvements
- numberOfLines fix - Fixed an issue where
numberOfLinesprop didnât work correctly - Uniwind.updateInsets noop - Added noop function for
Uniwind.updateInsetsfor better compatibility with open source version - CLI light theme support - The CLI now supports light terminal themes
Welcome Waitlist Users!
This is the first release available to users from the waitlist. Weâre excited to have you on board!- Team license package name support - You can now use package names with
/in team licenses (e.g.,@repo/example)
Under the hood
- Changed imports for some Nitro headers to be found in different C++ environments
CLI Improvements
- pnpm support - The
uniwind-proCLI now supports pnpm package manager
Smoother Than Ever
Weâve been obsessing over the small details that make a big difference. This release focuses on making Uniwind Pro feel buttery smooth.- Revamped Shadow Tree algorithm - Weâve rewritten how style updates propagate through the Shadow Tree. The result? Even snappier UI updates with less overhead
- Smarter snapshot handling - Pending snapshots are now canceled when no Shadow Tree update occurs, avoiding unnecessary UI blocks
- Theme transitions fixed on iOS - Native props now update correctly when theme transition is set to
none - One-line upgrade - Transitioning from Uniwind to Uniwind Pro is now a single line change in your
package.json. Less config, more building
Under the hood
- Upgraded to
react-native-nitro-modules>= 0.33.2
Bug Fixes & Improvements
This release includes all fixes from Uniwind Free v1.2.4:- Animated components now work correctly - Fixed an issue where Animated components were incorrectly skipped by the custom resolver
- Improved CSS class parsing - Fixed whitespace handling around dots in class names
- Theme change API improvements - The
onThemeChangecallback is now properly protected - Nitro Modules upgrade - Now requires
react-native-nitro-modules>= 0.33.0 - CLI dependencies update - Moved CLI packages from
devDependenciestodependenciesfor better compatibility
Uniwind Pro Beta
Weâre thrilled to announce the first beta release of Uniwind Pro! This release is powered by the brand new Unistyles 2nd generation C++ engine with full Fabric support.All Pro features are now available:- Zero re-renders - Shadow Tree updates happen directly in C++ without triggering React re-renders
- Built-in safe area insets - Automatically injected from the native layer, no setup required
- Reanimated 4 support - Use Tailwind classes for animations via
className - Full Fabric support - Built from the ground up for the new React Native architecture
All features listed on the pricing page have been implemented in this beta release.