Overview
Uniwind supports the vast majority of Tailwind CSS utility classes out of the box. This page documents special cases, platform-specific classes, and differences between the free and pro versions.Most Tailwind classes just work! If a class name isn’t listed below as unsupported or with special behavior, you can assume Uniwind fully supports it.
Standard Tailwind Classes
All standard Tailwind utility classes are supported, including:- Layout:
container,flex,block,hidden, etc. - Spacing:
p-*,m-*,space-*,gap-* - Sizing:
w-*,h-*,min-w-*,max-w-*, etc. - Typography:
text-*,font-*,leading-*,tracking-*, etc. - Colors:
bg-*,text-*,border-*,shadow-*, etc. - Borders:
border-*,rounded-*,ring-* - Effects:
shadow-*,opacity-* - Flexbox:
justify-*,items-*,content-*, etc. - Positioning:
absolute,relative,top-*,left-*, etc. - Transforms:
translate-*,rotate-*,scale-*,skew-* - State selectors:
active:,disabled:,focus:
Platform-Specific Variants
Uniwind extends Tailwind with platform-specific variants for React Native:The accent-* Prefix
React Native components often have color props that are separate from the style prop (like color, tintColor, underlayColor). These props expect a plain color string, not a style object. Uniwind uses the accent-* prefix to handle these cases.
Why Use accent-*?
When you use a *ClassName prop that maps to a color prop (e.g., colorClassName, tintColorClassName), you must use the accent-* prefix to indicate that you want to extract a color value, not a style object.
For style props: Use regular Tailwind classes directly (e.g.,
className="bg-blue-500").For non-style color props: Use the accent- prefix (e.g., colorClassName="accent-blue-500").How It Works
Under the hood, Uniwind resolvesaccent-* classes to the accentColor style property, then extracts the raw color value and passes it as a string to the native prop.
Common Color Props Requiring accent-*
| Prop | Component Examples |
|---|---|
colorClassName | ActivityIndicator, Button, Image |
tintColorClassName | Image, RefreshControl |
underlayColorClassName | TouchableHighlight |
selectionColorClassName | TextInput, Text |
cursorColorClassName | TextInput |
placeholderTextColorClassName | TextInput |
thumbColorClassName | Switch |
trackColorOnClassName / trackColorOffClassName | Switch |
backdropColorClassName | Modal |
endFillColorClassName | ScrollView, FlatList, SectionList |
Selector Support
accent-* classes support all the same selectors as regular Tailwind classes — including theme variants, platform variants, and state selectors:
Safe Area Classes
Safe area utilities are fully supported in Uniwind:| Class | Description |
|---|---|
p-safe, pt-safe, pb-safe, pl-safe, pr-safe, px-safe, py-safe | Padding based on safe area insets |
m-safe, mt-safe, mb-safe, ml-safe, mr-safe, mx-safe, my-safe | Margin based on safe area insets |
inset-safe, top-safe, bottom-safe, left-safe, right-safe, x-safe, y-safe | Positioning based on safe area insets |
{property}-safe-or-{value} | Uses Math.max(inset, value) - ensures minimum spacing |
{property}-safe-offset-{value} | Uses inset + value - adds extra spacing on top of inset |
- Free Version
- Pro Version
Work in Progress
The following classes are currently being worked on:| Class | Status | Notes |
|---|---|---|
group-* | 🚧 WIP | Group variants for parent-child styling |
grid-* | 🚧 WIP | CSS Grid support is being added by the React Native / Expo team |
Data Selectors
Data selectors are supported. Use
data-[prop=value]:... to style based on component props. See the full guide in Data Selectors.Unsupported Classes
Some Tailwind classes are not applicable to React Native and will be ignored:- Pseudo-classes:
hover:*,visited:*(useactive:andfocus:state selectors instead) - Pseudo-elements:
before:*,after:*,placeholder:* - Media queries:
print:*,screen:* - Float & Clear:
float-*,clear-* - Break:
break-before-*,break-after-*,break-inside-* - Columns:
columns-*,break-* - Aspect Ratio: Some variants may have limited support
Need More Information?
This page is continuously updated as we expand Uniwind’s capabilities.Request Documentation Updates
Help us improve this documentation by reporting missing or incorrect information.