Components
A number of built-in UI components are available for layouts, grids, buttons, form elements, and more.
Components
Variants
Theme UI components can be customized by adding styles to your theme.
Each component accepts a variant prop to quickly
change custom stylistic variations that you define.
// example theme{// base theme...buttons: {primary: {fontWeight: 'bold',color: 'white',bg: 'primary','&:hover': {bg: 'dark',},},},text: {caps: {textTransform: 'uppercase',letterSpacing: '.2em',},heading: {fontFamily: 'heading',fontWeight: 'heading',lineHeight: 'heading',},display: {// extends the text.heading stylesvariant: 'text.heading',fontSize: [6, 7, 8],fontWeight: 'display',},},cards: {primary: {padding: 2,borderRadius: 4,boxShadow: '0 0 4px 1px rgba(0, 0, 0, 0.5)',},},}
Props
All Theme UI components include the following props.
| Name | Type | Description | 
|---|---|---|
| sx | Object | Theme-aware styles | 
| variant | String | Applies a theme variant style | 
| as | String | Changes the underlying HTML element | 
Style Props
Each Theme UI component includes shorthand props for applying margin, padding, and color styles.
These props work the same as properties within the sx prop, but allow for a more terse syntax for readability.
| Name | Description | 
|---|---|
| color | Foreground color | 
| bg | Background color | 
| margin,m | Margin | 
| marginTop,mt | Margin Top | 
| marginRight,mr | Margin Right | 
| marginBottom,mb | Margin Bottom | 
| marginLeft,ml | Margin Left | 
| marginX,mx | Margin Left & Right | 
| marginY,my | Margin Top & Bottom | 
| padding,p | Padding | 
| paddingTop,pt | Padding Top | 
| paddingRight,pr | Padding Right | 
| paddingBottom,pb | Padding Bottom | 
| paddingLeft,pl | Padding Left | 
| paddingX,px | Padding Left & Right | 
| paddingY,py | Padding Top & Bottom |