migrate-nativewind-to-uniwind

migrate-nativewind-to-uniwind is a skill for Claude Code, Codex from uni-stack/uniwind. It costs 82 tokens per session (6,232 once invoked), scanned C, original, MIT.

A migration procedure for moving a React Native project from NativeWind to Uniwind, including the related Tailwind CSS and configuration changes.

In plain words
What is it for?
Removing NativeWind dependencies, upgrading to Tailwind CSS 4, updating Metro and Babel configuration, converting themes, and replacing NativeWind-specific code.
Why use it?
It helps avoid leftover packages, imports, settings, or theme code that can break the project after the migration.

Skill for Claude CodeCodex

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add skills/uni-stack/uniwind/migrate-nativewind-to-uniwind
Any agent
npx skills add uni-stack/uniwind --skill migrate-nativewind-to-uniwind
Clone the repo
git clone --depth 1 https://github.com/uni-stack/uniwind

Made for: Claude Code, Codex.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for migrate-nativewind-to-uniwind

README.md
[![agentmods](https://agentmods.dev/badge/skills/uni-stack/uniwind/migrate-nativewind-to-uniwind.svg)](https://agentmods.dev/skills/uni-stack/uniwind/migrate-nativewind-to-uniwind)
Your own site
<a href="https://agentmods.dev/skills/uni-stack/uniwind/migrate-nativewind-to-uniwind"><img src="https://agentmods.dev/badge/skills/uni-stack/uniwind/migrate-nativewind-to-uniwind.svg" alt="Measured on agentmods" height="20"></a>
Per session 82 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 6,232 The whole file, excluding the scripts and references it only reads on demand.
Security scan C 1 finding. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5 $0.00082 $0.06232
Opus 5 $0.00041 $0.03116
Sonnet 5 $0.00016 $0.01246
Haiku 4.5 $0.00008 $0.00623

Measured 4d ago against content hash 8eab2d66eb25, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade C, and why

migrate-nativewind-to-uniwind scanned grade C with 1 finding against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 4d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Recursive force deletehighDestructive command

rm -rf with a variable or a broad path is one typo away from removing the wrong tree.

**Serialization Errors** (`Failed to serialize javascript object`): Clear caches: `watchman watch-del-all 2>/dev/null; rm -rf node_modules/.cache && npx expo start --clear`. Common causes: complex `@theme` configs, circu
Origin

Copies of this mod

2 near-identical copies found in the catalogue:

skills/migrate-nativewind-to-uniwind/SKILL.md · 735 lines

How it starts

The opening of the file, as written. The whole thing — 735 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Migrate NativeWind to Uniwind

Uniwind replaces NativeWind with better performance and stability. It requires Tailwind CSS 4 and uses CSS-based theming instead of JS config.

Pre-Migration Checklist

Before starting, read the project's existing config files to understand the current setup:

  • package.json (NativeWind version, dependencies)
  • tailwind.config.js / tailwind.config.ts
  • metro.config.js
  • babel.config.js
  • global.css or equivalent CSS entry file
  • nativewind-env.d.ts or nativewind.d.ts
  • Any file using cssInterop or remapProps from nativewind
  • Any file importing from react-native-css-interop
  • Any ThemeProvider from NativeWind (vars() usage)

Uninstall ALL of these packages (if present):

npm uninstall nativewind react-native-css-interop
# or
yarn remove nativewind react-native-css-interop
# or
bun remove nativewind react-native-css-interop

CRITICAL: react-native-css-interop is a NativeWind dependency that must be removed. It is commonly missed during migration. Search the entire codebase for any imports from it:

rg "react-native-css-interop" -g "*.{ts,tsx,js,jsx}"

Remove every import and usage found.

Step 2: Install Uniwind and Tailwind 4

npm install uniwind tailwindcss@latest
# or
yarn add uniwind tailwindcss@latest
# or
bun add uniwind tailwindcss@latest

Ensure tailwindcss is version 4+.

Step 3: Update babel.config.js

Remove the NativeWind babel preset:

// REMOVE this line from presets array:
// 'nativewind/babel'

No Uniwind babel preset is needed.

Step 4: Update metro.config.js

Replace NativeWind's metro config with Uniwind's. withUniwindConfig must be the outermost wrapper.

Before (NativeWind):

const { withNativeWind } = require('nativewind/metro');
module.exports = withNativeWind(config, { input: './global.css' });

After (Uniwind):

const { getDefaultConfig } = require('expo/metro-config');
// For bare RN: const { getDefaultConfig } = require('@react-native/metro-config');
const { withUniwindConfig } = require('uniwind/metro');

const config = getDefaultConfig(__dirname);

module.exports = withUniwindConfig(config, {
  cssEntryFile: './global.css',
  polyfills: { rem: 14 },
});

Read the full file on GitHub · 735 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 4d ago First seen · 735 lines · 82 tokens per session scan C 8eab2d66eb25

Subscribe to this mod's changes

migrate-nativewind-to-uniwind is a skill published in the GitHub repository uni-stack/uniwind (1,695 stars, last pushed today), licensed MIT. It adds 82 tokens to every session and 6,232 once invoked, about $0.0004 per session on Opus 5. A static security scan graded it C with 1 finding (recursive force delete). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.

Related

Other skills, from other repositories

react-native-docs

Comprehensive React Native reference covering core components, APIs, styling, flexbox, navigation, networking, animations, platform-specific code, debugging, performance, TypeScript integration, Fast Refresh, environment setup, React fundamentals, running on devices, and the New Architecture (Fabric, JSI…

pledgeandgrow/pledge-skills · 97 tokens

mobile

Mobile development with React Native, Flutter, and native patterns.

miles990/claude-software-skills · 13 tokens

mobile-developer

Expert in React Native, Expo, and cross-platform mobile development.

daffy0208/ai-dev-standards · 16 tokens

expo-native-ui

Build beautiful native iOS/Android apps with Expo Router. Covers route structure, native tabs, animations, blur effects, liquid glass, SF Symbols, and platform patterns.

wpank/ai · 38 tokens

maestro-mobile-testing

Maestro mobile E2E testing patterns for React Native/Expo apps: YAML test flows, testID selectors, adaptive auth state, optimistic update verification, GraalJS scripting, cross-platform stability, CI/CD integration, Maestro Cloud, and MCP server integration.

tovimx/maestro-mobile-testing-skill · 56 tokens

react-native

Use when writing the JS/TS inside a React Native or Expo app — screens, Expo Router navigation, lists, Reanimated gestures, platform forks, offline state, native modules — or killing jank and render storms. NOT eas build/submit/OTA/config-plugin (that is expo), NOT a Dart app (that is flutter), NOT web React/DOM (that…

ericrisco/rsc-harness · 90 tokens