Skip to main content

SxProps References

All available style props for SxProps and TextSxProps. When both a shortcut and its full name are provided (e.g. marginTop and mt), the full name takes priority.

All props except transform support responsive arrays (Responsive<T> = T | T[]). Pass an array to apply different values at each breakpoint. See Responsive Breakpoints for details.

colors

backgroundColor: Token<'colors'>;
bg: Token<'colors'>; // backgroundColor
borderColor: Token<'colors'>;

space

margin: Token<'space'>;  
m: Token<'space'>; // margin
marginTop: Token<'space'>;
mt: Token<'space'>; // marginTop
marginRight: Token<'space'>;
mr: Token<'space'>; // marginRight
marginBottom: Token<'space'>;
mb: Token<'space'>; // marginBottom
marginLeft: Token<'space'>;
ml: Token<'space'>; // marginLeft
marginX: Token<'space'>;
mx: Token<'space'>; // marginX
marginY: Token<'space'>;
my: Token<'space'>; // marginY
padding: Token<'space'>;
p: Token<'space'>; // padding
paddingTop: Token<'space'>;
pt: Token<'space'>; // paddingTop
paddingRight: Token<'space'>;
pr: Token<'space'>; // paddingRight
paddingBottom: Token<'space'>;
pb: Token<'space'>; // paddingBottom
paddingLeft: Token<'space'>;
pl: Token<'space'>; // paddingLeft
paddingX: Token<'space'>;
px: Token<'space'>; // paddingX
paddingY: Token<'space'>;
py: Token<'space'>; // paddingY
top: Token<'space'>;
right: Token<'space'>;
bottom: Token<'space'>;
left: Token<'space'>;
gap: Token<'space'>; // only works if parsed result is number
gapX: Token<'space'>; // only works if parsed result is number
gapY: Token<'space'>; // only works if parsed result is number

sizes

width: Token<'sizes'>;  
w: Token<'sizes'>; // width
minWidth: Token<'sizes'>;
minW: Token<'sizes'>; // minWidth
maxWidth: Token<'sizes'>;
maxW: Token<'sizes'>; // maxWidth
height: Token<'sizes'>;
h: Token<'sizes'>; // height
minHeight: Token<'sizes'>;
minH: Token<'sizes'>; // minHeight
maxHeight: Token<'sizes'>;
maxH: Token<'sizes'>; // maxHeight

radii

borderRadius: Token<'radii'>;
radius: Token<'radii'>; // borderRadius
borderTopLeftRadius: Token<'radii'>;
topLeftRadius: Token<'radii'>; // borderTopLeftRadius
borderTopRightRadius: Token<'radii'>;
topRightRadius: Token<'radii'>; // borderTopRightRadius
borderBottomLeftRadius: Token<'radii'>;
bottomLeftRadius: Token<'radii'>; // borderBottomLeftRadius
borderBottomRightRadius: Token<'radii'>;
bottomRightRadius: Token<'radii'>; // borderBottomRightRadius

ViewStyle & ViewProps

flex: ViewStyle['flex'];  
alignItems: ViewStyle['alignItems'];
alignContent: ViewStyle['alignContent'];
justifyContent: ViewStyle['justifyContent'];
flexWrap: ViewStyle['flexWrap'];
flexDirection: ViewStyle['flexDirection'];
flexGrow: ViewStyle['flexGrow'];
flexShrink: ViewStyle['flexShrink'];
flexBasis: ViewStyle['flexBasis'];
alignSelf: ViewStyle['alignSelf'];
position: ViewStyle['position'];
pos: ViewStyle['position']; // position
borderWidth: ViewStyle['borderWidth'];
borderTopWidth: ViewStyle['borderTopWidth'];
borderRightWidth: ViewStyle['borderRightWidth'];
borderBottomWidth: ViewStyle['borderBottomWidth'];
borderLeftWidth: ViewStyle['borderLeftWidth'];
opacity: ViewStyle['opacity'];
overflow: ViewStyle['overflow'];
transform: ViewStyle['transform'];
aspectRatio: ViewStyle['aspectRatio'];
display: ViewStyle['display'];
elevation: ViewStyle['elevation'];
zIndex: ViewStyle['zIndex'];
absoluteFill?: boolean; // shortcut - position: absoulte, t,r,b,l: 0
center?: boolean; // shortcut - justifyContent, alignItems: center
warning

In the case of shortcuts such as absoluteFill or center, it is required to not reuse the affected style fields.

The priority for individual fields in shortcut fields is lower than the prop for that field alone.

For example, absoluteFill affects position, top, left, right, and bottom.

If you have absoluteFill: true and you pass top: 5, the result is: top has higher priority, so the result is:

{
"position": "absolute",
"top": 5,
"left": 0,
"right": 0,
"bottom": 0,
}