Use when customizing gluestack-ui themes and design tokens. Covers theme provider setup, design tokens, dark mode, NativeWind integration, and extending themes.
View on GitHubTheBushidoCollective/han
jutsu-gluestack
February 3, 2026
Select agents to install to:
npx add-skill https://github.com/TheBushidoCollective/han/blob/main/frameworks/gluestack/skills/gluestack-theming/SKILL.md -a claude-code --skill gluestack-themingInstallation paths:
.claude/skills/gluestack-theming/# gluestack-ui - Theming
Expert knowledge of gluestack-ui's theming system, design tokens, and NativeWind integration for creating consistent, customizable UI across React and React Native.
## Overview
gluestack-ui uses NativeWind (Tailwind CSS for React Native) for styling. The theming system provides design tokens, dark mode support, and customization through Tailwind configuration.
## Key Concepts
### Configuration File
gluestack-ui projects use `gluestack-ui.config.json` at the project root:
```json
{
"tailwind": {
"config": "tailwind.config.js",
"css": "global.css"
},
"components": {
"path": "components/ui"
},
"typescript": true,
"framework": "expo"
}
```
### Theme Provider Setup
Wrap your application with the GluestackUIProvider:
```tsx
// App.tsx
import { GluestackUIProvider } from '@/components/ui/gluestack-ui-provider';
import { config } from '@/components/ui/gluestack-ui-provider/config';
export default function App() {
return (
<GluestackUIProvider config={config}>
<YourApp />
</GluestackUIProvider>
);
}
```
For dark mode support:
```tsx
import { useColorScheme } from 'react-native';
import { GluestackUIProvider } from '@/components/ui/gluestack-ui-provider';
export default function App() {
const colorScheme = useColorScheme();
return (
<GluestackUIProvider mode={colorScheme === 'dark' ? 'dark' : 'light'}>
<YourApp />
</GluestackUIProvider>
);
}
```
### NativeWind Configuration
Configure Tailwind CSS via `tailwind.config.js`:
```javascript
// tailwind.config.js
const { theme } = require('@gluestack-ui/nativewind-utils/theme');
/** @type {import('tailwindcss').Config} */
module.exports = {
darkMode: 'class',
content: [
'./app/**/*.{js,jsx,ts,tsx}',
'./components/**/*.{js,jsx,ts,tsx}',
],
presets: [require('nativewind/preset')],
theme: {
extend: {
colors: theme.colors,
fontFamily: theme.fontFamily,
fontSize: theme.fontSize,
borderRa