E

expo-tailwind-setup

by expo

expo-tailwind-setup is a practical guide for installing and configuring Tailwind CSS v4 in Expo with react-native-css and NativeWind v5 for iOS, Android, and web.

Stars1.6k
Favorites0
Comments0
AddedMar 30, 2026
CategoryFrontend Development
Install Command
npx skills add https://github.com/expo/skills --skill expo-tailwind-setup
Curation Score

This skill scores 78/100, which means it is a solid directory listing candidate: it gives agents and users a concrete, real setup workflow for adding Tailwind CSS v4 to Expo, with enough implementation detail to reduce guesswork versus a generic prompt, though adopters should still expect some manual interpretation around version sensitivity and project-specific adjustments.

78/100
Strengths
  • Strong triggerability: the name, description, and overview clearly target one job—setting up Tailwind CSS v4 in Expo with react-native-css and NativeWind v5.
  • Operationally useful: it includes specific dependency install commands, package resolution guidance, and concrete config examples such as `metro.config.js` updates.
  • Good workflow substance: the document is substantial and structured, with multiple headings, code fences, and repo/file references rather than placeholder content.
Cautions
  • Version risk is non-trivial: the setup depends on preview/nightly packages (`nativewind@5.0.0-preview.2`, `react-native-css@0.0.0-nightly...`) and a forced `lightningcss` resolution.
  • Adoption clarity is limited by packaging: despite having an Installation section in content, the structural signal says there is no install command in SKILL.md metadata/support files, and there are no scripts or reference assets to automate verification.
Overview

Overview of expo-tailwind-setup skill

What expo-tailwind-setup actually does

The expo-tailwind-setup skill is an installation and configuration guide for wiring Tailwind CSS v4 into an Expo app using react-native-css and nativewind v5. Its job is not to teach Tailwind broadly; it helps you get a modern Expo styling stack working across iOS, Android, and web with the right config files and compatibility choices.

Who this skill is best for

This skill is best for frontend developers who:

  • already have an Expo project or are starting one now
  • want utility-class styling instead of hand-written StyleSheet objects everywhere
  • need a setup that works in React Native and web, not web only
  • want a concrete Tailwind v4 path instead of mixing older NativeWind examples

If you are comparing setup options, expo-tailwind-setup for Frontend Development is most useful when you specifically want Expo plus Tailwind-style classes, not a generic React Native styling discussion.

The real job-to-be-done

Users typically come to expo-tailwind-setup with a practical goal: “Make Tailwind classes work correctly in my Expo app without spending hours reconciling outdated blog posts.” This skill reduces that setup risk by centering the current package combination, Metro config, and file-level changes that tend to break first.

Why users choose this over a generic prompt

A generic AI prompt often mixes:

  • old Tailwind v3 config patterns
  • stale NativeWind setup steps
  • web-oriented PostCSS assumptions
  • incorrect Expo Metro examples

The expo-tailwind-setup skill is more valuable because it narrows the stack to a specific, opinionated path: Tailwind v4 + react-native-css + NativeWind v5 preview. That specificity matters if your priority is getting a working build quickly.

Biggest adoption caution

The main tradeoff is version sensitivity. This setup uses preview and nightly packages in the documented stack, plus a lightningcss resolution. That makes expo-tailwind-setup install guidance high-value for speed, but it also means teams that require only stable dependencies may want to evaluate risk before adopting it.

How to Use expo-tailwind-setup skill

Install the skill in your AI environment

If your client supports Skills, install expo-tailwind-setup from the Expo skills repository:

npx skills add https://github.com/expo/skills --skill expo-tailwind-setup

After installation, invoke it when you want the model to generate or validate an Expo Tailwind setup, update an existing project, or troubleshoot configuration drift.

Know what the skill expects as input

The expo-tailwind-setup usage pattern works best when you provide:

  • your Expo SDK version
  • whether the project is managed Expo or customized
  • package manager: npm, pnpm, yarn, or bun
  • whether the app already uses NativeWind, Tailwind, or CSS files
  • whether you need web support
  • the files you already have: metro.config.js, babel.config.js, global.css, package.json, app entry file

Without that context, the model can still help, but it may generate steps that conflict with your existing setup.

Start with the repository file that matters most

Read SKILL.md first. This repository appears to ship the guidance almost entirely in that file, so you do not need to hunt through helper resources. For installation decisions, focus on these parts in order:

  1. dependency install command
  2. package.json resolution note
  3. metro.config.js
  4. Tailwind/PostCSS setup
  5. app-level CSS import and className usage

This reading order is faster than skimming top to bottom if your main question is “Will this work in my app?”

Use expo-tailwind-setup for new projects

For a fresh Expo app, ask the skill to produce a complete setup plan with exact file contents. Example prompt:

Use expo-tailwind-setup to configure a new Expo app for Tailwind CSS v4 with web support.
Package manager: pnpm.
Expo SDK: 51.
I want the exact install command, every file to create or edit, and a short verification checklist.

This works well because it gives the model the environment, the desired outcome, and the expected output format.

Use expo-tailwind-setup on existing apps

For existing projects, ask for a diff-oriented answer instead of a clean-room setup. Example:

Use expo-tailwind-setup for this existing Expo app.
We already have babel, metro, and some NativeWind-related packages.
Please inspect the files below and tell me exactly what to change, what to remove, and any version conflicts.

Then paste package.json, metro.config.js, and your main entry file. This is the fastest way to avoid duplicate or outdated config.

Understand the install stack before you adopt it

The documented dependency stack includes:

  • tailwindcss@^4
  • nativewind@5.0.0-preview.2
  • react-native-css@0.0.0-nightly...
  • @tailwindcss/postcss
  • tailwind-merge
  • clsx

That tells you this is not a minimal Tailwind-only setup. It is a coordinated stack where Metro transformation, CSS runtime support, and utility merging all matter.

Watch the key Metro config details

One of the highest-value parts of expo-tailwind-setup guide content is the Metro configuration. The skill highlights withNativewind(config, { ... }) with notable options such as:

  • inlineVariables: false
  • globalClassNamePolyfill: false

Those are not decorative defaults. They affect runtime behavior and compatibility. If an AI answer omits or changes them without explanation, treat that as a warning sign and verify before applying.

Do not cargo-cult old Tailwind examples

A common mistake is asking for “Tailwind in Expo” and receiving advice that includes:

  • outdated tailwind.config.js assumptions
  • unnecessary autoprefixer
  • Babel/plugin steps from older NativeWind versions
  • web-only CSS tooling guidance

The source explicitly notes that autoprefixer is not needed in Expo because of lightningcss, and that PostCSS is already included in Expo. This is exactly the kind of detail that makes expo-tailwind-setup usage better than generic setup prompts.

Transform a rough goal into a strong prompt

Weak prompt:

Set up Tailwind in Expo.

Stronger prompt:

Use expo-tailwind-setup to configure Tailwind CSS v4 in my Expo app.
Constraints:
- existing project, not a new app
- must support iOS, Android, and web
- package manager is yarn
- prefer minimal file churn
- keep any working aliases and custom Metro settings
Output:
1. install commands
2. exact file edits
3. why each change is needed
4. a verification test using one sample screen

The stronger version improves output quality because it defines environment, constraints, and desired answer structure.

Verify the result with a small test screen

After applying the setup, ask the skill for a minimal verification component, such as a screen using className with spacing, colors, and layout utilities. A tiny test catches most failures quickly:

  • CSS not imported
  • Metro not wrapped correctly
  • NativeWind classes not transforming
  • web and native rendering mismatches

Best workflow for troubleshooting

If the first setup fails, use this debugging order:

  1. confirm installed versions in package.json
  2. confirm lightningcss resolution
  3. inspect metro.config.js
  4. confirm the CSS entry file exists and is imported
  5. test one component with a simple className
  6. only then ask for deeper troubleshooting

When using the expo-tailwind-setup skill, paste the actual failing file contents and error output. That produces much better fixes than asking from memory.

expo-tailwind-setup skill FAQ

Is expo-tailwind-setup good for beginners?

Yes, if you are comfortable editing a few config files. It is more beginner-friendly than piecing together random posts, but it still assumes you can modify Expo project files and understand package installation.

When is expo-tailwind-setup the right choice?

Use expo-tailwind-setup when you want a current Expo-first Tailwind setup with NativeWind and cross-platform intent. It is especially useful if generic setup instructions have already conflicted with your project.

When should I avoid this skill?

Skip it if:

  • you do not want preview or nightly package dependencies
  • you prefer pure StyleSheet or another styling system
  • your team needs a fully stable, long-term-pinned dependency story before adopting

In those cases, treat the skill as a reference point, not an automatic install decision.

How is this different from asking an AI to set up Tailwind manually?

The difference is scope control. A normal prompt may pull in stale React Native, Tailwind, or NativeWind patterns. The expo-tailwind-setup skill constrains the answer to a specific stack that better matches the source guidance.

Does expo-tailwind-setup cover web too?

Yes. The setup is positioned as universal styling across iOS, Android, and web. If web support matters, say so in your prompt so the model does not optimize only for native screens.

Do I need autoprefixer or extra PostCSS setup?

Not usually in this documented path. The source specifically notes that autoprefixer is not needed in Expo because of lightningcss, and PostCSS is already included by Expo.

Is expo-tailwind-setup only for new Expo apps?

No. It is often more valuable for upgrading or repairing an existing app, because that is where conflicting Tailwind and NativeWind advice tends to cause the most friction.

How to Improve expo-tailwind-setup skill

Give the skill your real project state

The fastest way to improve expo-tailwind-setup results is to provide actual files instead of summaries. Best inputs:

  • package.json
  • metro.config.js
  • babel.config.js if present
  • your global CSS file
  • app entry file such as App.tsx or router root layout

This lets the model produce exact edits rather than generic setup text.

State your risk tolerance up front

Because this setup includes preview and nightly components, say whether you:

  • accept preview dependencies
  • need the closest stable alternative
  • want a proof-of-concept only
  • need a migration plan with rollback points

That changes whether the best output is a direct install, a cautious evaluation, or a staged adoption plan.

Ask for version-aware guidance

A strong expo-tailwind-setup guide prompt includes package versions already in your repo and asks the model to preserve compatibility. Example:

Use expo-tailwind-setup, but do not overwrite unrelated Metro config.
Compare the recommended versions with my current package.json and flag any risky upgrades before suggesting edits.

This avoids the common failure mode where the model rewrites config too aggressively.

Request diffs, not just final files

For existing apps, ask for:

  • exact added dependencies
  • exact removed dependencies
  • before/after file diffs
  • reasons for each change

That makes review easier and lowers the chance of silently breaking other tooling.

Watch for these common failure modes

The most common problems when using expo-tailwind-setup for Frontend Development are:

  • mixing old NativeWind instructions with this v5 path
  • missing the lightningcss resolution
  • changing Metro config incorrectly
  • forgetting to import the CSS entry file
  • assuming web-only Tailwind docs apply unchanged to Expo

If the output does any of those, ask for a correction before editing files.

Ask the skill to separate required vs optional steps

A useful refinement prompt is:

Use expo-tailwind-setup and label each step as required, recommended, or optional.
I only want the minimum needed for a working Expo app first.

This improves clarity because setup guides often blend must-have changes with convenience additions like class-merging helpers.

Improve first-pass output with a validation checklist

Ask for a post-install checklist that includes:

  • one successful app start
  • one component rendering with className
  • one web check if applicable
  • one note on how to confirm Metro is using the intended transformer path

This turns the skill from “write config” into “help me know it actually works.”

Iterate after the first answer

If the first output is close but not safe to apply, do a second pass with this structure:

  1. paste current files
  2. paste proposed files
  3. ask the skill to identify only the risky differences
  4. ask for the smallest working patch

That iteration pattern usually produces better results than requesting a full rewrite again.

Ratings & Reviews

No ratings yet
Share your review
Sign in to leave a rating and comment for this skill.
G
0/10000
Latest reviews
Saving...