Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
tristanmanchester avatar

Styling Nativewind V4 Expo

  • 362 installs
  • 3 repo stars
  • Updated June 29, 2026
  • tristanmanchester/agent-skills

styling-nativewind-v4-expo is a Claude Code skill that configures and troubleshoots NativeWind v4 with Tailwind CSS v3 in Expo React Native apps for developers who need className utilities working on iOS, Android, and we

About

styling-nativewind-v4-expo is a mobile styling skill from tristanmanchester/agent-skills focused on NativeWind v4 with Tailwind CSS v3 inside Expo React Native projects, including Expo Router. It enforces a three-path setup—one global.css entry, matching metro.config.js input, and an app entry import—and configures tailwind.config.js with nativewind/preset, babel.config.js with jsxImportSource and nativewind/babel preset, and metro.config.js with withNativeWind. The skill includes a ten-step quick-start checklist, deterministic config audit prompt, troubleshooting workflow ordered around npx expo start --clear, and patterns for dark mode via useColorScheme, cssInterop for third-party components, and safe-area utilities. Reach for styling-nativewind-v4-expo when className styles fail to apply, Metro cache causes stale Tailwind output, or a new Expo app needs NativeWind wired correctly across iOS, Android, and web targets.

  • styling-nativewind-v4-expo

Styling Nativewind V4 Expo by the numbers

  • 362 all-time installs (skills.sh)
  • +3 installs in the week ending Aug 5, 2026 (Skillselion tracking)
  • Ranked #1,170 of 4,347 Backend & APIs skills by installs in the Skillselion catalog
  • Data as of Aug 5, 2026 (Skillselion catalog sync)
npx skills add https://github.com/tristanmanchester/agent-skills --skill styling-nativewind-v4-expo

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs362
repo stars3
Last updatedJune 29, 2026
Repositorytristanmanchester/agent-skills

How do you fix NativeWind v4 className issues?

Use styling-nativewind-v4-expo for development tasks

Who is it for?

React Native developers building Expo apps who need NativeWind v4 Tailwind className utilities working across iOS, Android, and web.

Skip if: Plain React Native without Expo, web-only Tailwind projects, or teams already on NativeWind v2 migration paths unrelated to v4.

When should I use this skill?

className styles fail to apply in an Expo app, NativeWind v4 setup is new, or Metro cache and Tailwind CLI compilation errors appear.

What you get

Verified tailwind.config.js, global.css, babel.config.js, metro.config.js, app.json web bundler settings, and nativewind-env.d.ts TypeScript declarations.

  • tailwind.config.js
  • metro.config.js with withNativeWind
  • working className smoke test screen

By the numbers

  • Includes a 10-step quick-start checklist for NativeWind v4 Expo setup
  • Configures 5 core files: tailwind.config.js, global.css, babel.config.js, metro.config.js, app.json

Files

SKILL.mdMarkdownGitHub ↗

NativeWind v4 for Expo (React Native)

Non‑negotiables (v4)

  • Use Tailwind CSS v3 and include presets: [require("nativewind/preset")] in tailwind.config.js.
  • Keep exactly one Tailwind entry CSS file (commonly global.css) and keep its path consistent across:
  • metro.config.jswithNativeWind(..., { input: "./global.css" })
  • your app entry → import "./global.css" (or import "../global.css" from app/_layout.tsx)
  • Keep nativewind/babel in Babel `presets` and set jsxImportSource: "nativewind" on babel-preset-expo.
  • After any config change, restart Metro without cache: npx expo start --clear.

Quick start checklist

Copy/paste and tick off:

  • [ ] Install deps (NativeWind + Tailwind + peers). See references/expo-setup.md.
  • [ ] Create/verify tailwind.config.js (content globs + nativewind/preset).
  • [ ] Create/verify global.css with Tailwind directives.
  • [ ] Create/verify babel.config.js (jsxImportSource + nativewind/babel).
  • [ ] Create/verify metro.config.js (wrap config with withNativeWind, set input).
  • [ ] If targeting web, set app.jsonexpo.web.bundler = "metro".
  • [ ] If TypeScript, add nativewind-env.d.ts with /// <reference types="nativewind/types" />.
  • [ ] Start with cache cleared and validate on-device + web: npx expo start --clear.
  • [ ] Validate with an obvious “smoke test” screen: background colour + centred text.

Project type selection

  • Expo Router: entry is usually app/_layout.tsx → import CSS there (relative path is typically ../global.css).
  • Classic: entry is usually App.tsx → import CSS there (./global.css).

If unsure, search package.json for "main": "expo-router/entry".

Implementation patterns

Build reusable components (recommended)

Accept className, merge defaults, and optionally use a class-variance helper.

Read: references/patterns.md

Style third‑party components (only when necessary)

Use remapProps (multiple style props) or cssInterop (map a class prop to a style prop).

Read: references/third-party-components.md

Dark mode + theming

Use useColorScheme / colorScheme.set() and CSS variables via vars().

Read: references/theming-dark-mode.md

Safe area utilities

On Expo Router, do not add your own SafeAreaProvider (Router already does). Use p-safe, pt-safe, etc.

If you are not using Expo Router, wrap the root with SafeAreaProvider.

Troubleshooting workflow (always in this order)

1. Start Expo without cache: npx expo start --clear. 2. Verify Tailwind CLI works by compiling your CSS entry file to an output file. 3. Confirm the “three paths” match:

  • CSS file exists
  • metro.config.js input points to it
  • your app imports it from the entry component

4. Confirm tailwind.config.js content globs include every directory that contains className strings. 5. Only then debug platform-specific behaviour (web bundler, Router, safe area, etc).

Read: references/troubleshooting.md

THE EXACT PROMPT — NativeWind v4 config audit

Use this prompt to perform a deterministic audit of an existing repo:

You are auditing an Expo React Native repo for NativeWind v4 correctness.

1) Identify whether the project uses Expo Router (app/ directory + package.json main = expo-router/entry) or classic App.tsx.
2) Check and report on:
   - tailwind.config.js: presets + content globs
   - global.css: Tailwind directives exist
   - babel.config.js: jsxImportSource nativewind + nativewind/babel in presets; preserve any existing required plugins
   - metro.config.js: withNativeWind wrapper; input path matches the CSS file
   - app.json: web bundler metro when web is used
   - TypeScript: nativewind-env.d.ts present and correctly named
3) For every issue, propose the minimal diff needed to fix it.
4) End by listing the exact commands to restart Metro and validate the fix.

Related skills

How it compares

Pick styling-nativewind-v4-expo over generic React Native styling skills when debugging NativeWind v4's three-path CSS setup rather than StyleSheet or styled-components patterns.

FAQ

What files does styling-nativewind-v4-expo configure?

styling-nativewind-v4-expo configures tailwind.config.js with nativewind/preset, global.css with Tailwind directives, babel.config.js with jsxImportSource nativewind, metro.config.js with withNativeWind input path, app.json web bundler metro, and nativewind-env.d.ts for TypeScrip

Why do NativeWind className styles fail in Expo?

styling-nativewind-v4-expo diagnoses the most common cause: mismatched paths between global.css, metro.config.js input, and the app entry import. The skill restarts Metro without cache using npx expo start --clear and verifies Tailwind CLI compiles the CSS entry file.

Does styling-nativewind-v4-expo support Expo Router?

styling-nativewind-v4-expo supports both Expo Router and classic App.tsx entry points. For Router projects, global.css is imported from app/_layout.tsx, typically with a ../global.css relative path after detecting expo-router/entry in package.json.

Backend & APIsbackendintegrations

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.