Migrate a React Native project from NativeWind to Uniwind. Use when the user wants to replace NativeWind with Uniwind, upgrade from NativeWind, switch to Uniwind, or mentions NativeWind-to-Uniwind migration. Handles package removal, config migration, Tailwind 4 upgrade, cssInterop removal, theme conversion, and all breaking changes.
The migrate-nativewind-to-uniwind skill is a step-by-step migration guide for moving a React Native project from NativeWind to Uniwind, a styling library the skill positions as offering better performance and stability. It solves the friction of a breaking migration that requires Tailwind CSS 4 and switches from JS-config theming to CSS-based theming, walking through package removal, config migration, cssInterop removal, theme conversion, and other breaking changes so nothing is silently missed.
The workflow is a single detailed SKILL.md with a pre-migration checklist and numbered steps. It has the user audit existing config (package.json, tailwind.config, metro.config, babel.config, global.css, type definitions, and cssInterop/remapProps usage), then uninstall nativewind and its commonly missed react-native-css-interop dependency, install uniwind and Tailwind 4, update the Babel and Metro configs (with withUniwindConfig as the outermost wrapper and a relative cssEntryFile path), convert global.css to Tailwind 4 imports, fix the CSS entry import location, delete NativeWind type definitions and tailwind.config, migrate theme values to Tailwind 4's @theme directive, and replace every cssInterop/remapProps call with Uniwind's withUniwind wrapper defined at module level. It highlights common pitfalls such as the missed react-native-css-interop dependency, path.resolve misuse for cssEntryFile, and setting polyfills.rem to 14 to preserve spacing. The operations it recommends, ripgrep searches, npm/yarn/bun add and remove, and deleting migration-obsolete config files, are all standard, scoped development actions.
Target users are React Native developers with existing NativeWind projects who want to switch to Uniwind. It is benign developer tooling that only touches project dependencies and config within the project directory.
Uniwind requires Tailwind CSS 4 and uses CSS-based theming instead of NativeWind's JS config, so the migration upgrades Tailwind and moves theme values into CSS via the @theme directive.
Two are called out: removing the react-native-css-interop dependency that NativeWind pulls in, and replacing all cssInterop/remapProps usage with Uniwind's withUniwind wrapper. The skill has you ripgrep the codebase for both.
To match NativeWind's default rem base value so spacing and sizing don't shift after migration. The skill marks it as required for a clean migration.
NativeWind type definitions (nativewind-env.d.ts / nativewind.d.ts) and tailwind.config.js/ts, since Uniwind auto-generates its own types and all theme config moves to CSS. These are migration-obsolete project files.
Yes. Custom themes beyond light/dark are registered via the extraThemes option in withUniwindConfig, and light/dark must not be included because they are added automatically.
Quick Setup:
.claude/skills/Repository
uni-stack/uniwind