This is documentation for the next SDK version. For up-to-date documentation, see the latest version (SDK 55).
IconButton
Jetpack Compose IconButton components for displaying native Material3 icon buttons.
Expo UI provides four icon button components that match the official Jetpack Compose IconButton API: IconButton, FilledIconButton, FilledTonalIconButton, and OutlinedIconButton. All variants share the same props and accept composable children for content.
Installation
- npx expo install @expo/uiIf you are installing this in an existing React Native app, make sure to install expo in your project.
Usage
Basic icon button
A standard icon button with no background, typically used for toolbar actions.
import { Host, IconButton, Icon } from '@expo/ui/jetpack-compose'; export default function BasicIconButtonExample() { return ( <Host matchContents> <IconButton onClick={() => alert('Pressed!')}> <Icon source={require('./assets/settings.xml')} size={24} /> </IconButton> </Host> ); }
Icon button variants
Use different icon button components to convey varying levels of emphasis.
import { Host, IconButton, FilledIconButton, FilledTonalIconButton, OutlinedIconButton, Icon, Row, } from '@expo/ui/jetpack-compose'; export default function IconButtonVariantsExample() { return ( <Host matchContents> <Row horizontalArrangement={{ spacedBy: 8 }}> <IconButton onClick={() => {}}> <Icon source={require('./assets/star.xml')} size={24} /> </IconButton> <FilledIconButton onClick={() => {}}> <Icon source={require('./assets/star.xml')} size={24} /> </FilledIconButton> <FilledTonalIconButton onClick={() => {}}> <Icon source={require('./assets/star.xml')} size={24} /> </FilledTonalIconButton> <OutlinedIconButton onClick={() => {}}> <Icon source={require('./assets/star.xml')} size={24} /> </OutlinedIconButton> </Row> </Host> ); }
API
import { IconButton, FilledIconButton, FilledTonalIconButton, OutlinedIconButton, } from '@expo/ui/jetpack-compose';
Components
Type: React.Element<IconButtonProps>
A filled icon button with a solid background.
Type: React.Element<IconButtonProps>
A filled tonal icon button with a muted background.
Type: React.Element<IconButtonProps>
A standard icon button with no background.
boolean • Default: trueWhether the icon button is enabled for user interaction.
Type: React.Element<IconButtonProps>
An outlined icon button with a border and no fill.
Types
Colors for icon button elements.
| Property | Type | Description |
|---|---|---|
| containerColor(optional) | ColorValue | - |
| contentColor(optional) | ColorValue | - |
| disabledContainerColor(optional) | ColorValue | - |
| disabledContentColor(optional) | ColorValue | - |