plugins/smedjen/skills/expo-tailwind/SKILL.md
NativeWind / Tailwind CSS in React Native — setup, styling patterns, theme config, and platform differences for Expo projects.
npx skillsauth add hjemmesidekongen/ai expo-tailwindInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
NativeWind brings Tailwind CSS to React Native via a Babel transform that converts className props to StyleSheet objects at compile time. Same API as web Tailwind, running on the RN style engine.
npx expo install nativewind tailwindcss && npx tailwindcss init
tailwind.config.js: set content to your source globs, add presets: [require('nativewind/preset')]. babel.config.js: add 'nativewind/babel' to plugins. global.css: @import "tailwindcss" — import in root _layout.tsx.
<View className="flex-1 bg-white px-4">
<Text className="text-xl font-bold text-gray-900">Hello</Text>
</View>
NativeWind extends React Native's TypeScript types — className is typed on all core components after setup.
Built-in: ios:, android:, web:. Use for platform-specific spacing, font weights, or shadows.
<View className="p-4 ios:pt-8 android:pt-6" />
darkMode: 'media' (follows system) or 'class' (manual toggle) in tailwind.config.js. Usage: className="bg-white dark:bg-gray-900". Extend colors, fonts, and spacing under theme.extend. For custom fonts, pair with expo-font — font family name in config must match the loaded font name.
className works on layouts and screens. Safe-area utilities via nativewind/safe-area: pt-safe, pb-safe. No special router config needed.
See references/process.md for responsive design, CSS variables, web compatibility, StyleSheet migration, performance, NativeWind v4 vs v2 differences, limitations vs web Tailwind, and anti-patterns.
development
Creates a brand from scratch through market research and interactive sparring. Runs competitive research via Perplexity, then guides the user through positioning, audience, voice, values, and content pillars. Produces the full brand guideline set at .ai/brand/{name}/. Use when building a new brand, defining brand strategy for a product, or when /våbenskjold:create is invoked.
testing
Loads brand guidelines from .ai/brand/{name}/ and makes them available to the current context. Progressive disclosure: L1 confirms brand exists, L2 loads summary, L3 loads specific files on demand. Use when a downstream skill or user needs brand context, or when /våbenskjold:apply is invoked.
documentation
Guided reinvention of an existing brand guideline. Loads current brand from .ai/brand/{name}/, identifies what to keep vs change, and walks the user through targeted evolution. Preserves brand equity while updating positioning, voice, or values. Use when refreshing a brand or when /våbenskjold:evolve is invoked.
development
Codifies an existing brand from materials, samples, and references. Analyzes provided content to extract voice patterns, values, and positioning. Produces the same guideline format as brand-strategy. Use when a brand already exists but isn't documented, or when /våbenskjold:audit is invoked.