Reference version

This documentation is available as Markdown for AI agents and LLMs. See the full Markdown index or append .md to any documentation URL.

Expo UI

A set of components that allow you to build UIs directly with Jetpack Compose and SwiftUI from React.

Android
iOS
tvOS
Included in Expo Go
Recommended version:
~57.0.9

@expo/ui is a set of native input components that allows you to build fully native interfaces with Jetpack Compose and SwiftUI. It aims to provide the commonly used features and components that a typical app will need.

Available platforms

Components are available for the following platforms:

  • Jetpack Compose: Build native Android interfaces with Jetpack Compose components
  • SwiftUI: Build native iOS interfaces with SwiftUI components
  • Universal: Cross-platform components that run on Android, iOS, and web from a single source

Drop-in replacements

See Drop-in replacements for API-compatible replacements for popular React Native community libraries.

Available components

Jetpack Compose

SwiftUI

Drop-in replacements

ComponentDescription
BottomSheetA bottom sheet compatible with @gorhom/bottom-sheet.
DateTimePickerA date and time picker compatible with @react-native-community/datetimepicker.
MaskedViewA masked view compatible with @react-native-masked-view/masked-view.
MenuA menu compatible with @react-native-menu/menu.
PagerViewA horizontally paged view compatible with react-native-pager-view.
PickerA picker compatible with @react-native-picker/picker.
SegmentedControlA segmented control compatible with @react-native-segmented-control/segmented-control.
SliderA slider compatible with @react-native-community/slider.

Universal

ComponentDescription
BottomSheetA modal sheet that slides up from the bottom of the screen.
ButtonA pressable button with multiple visual variants.
CheckboxA toggle control that represents a checked or unchecked state.
CollapsibleA labelled tappable header that toggles visibility of its content.
ColumnA vertical layout container for universal @expo/ui components.
FieldGroupA scrollable container of grouped settings-style rows.
HostA cross-platform Host component that wraps universal @expo/ui content.
IconA platform-native icon — SF Symbol on iOS, Material Symbol on Android.
ListA virtualized vertical container of rows, paired with a tappable ListItem primitive.
PickerA single-selection input with menu and wheel appearances.
RNHostViewA cross-platform component for hosting React Native views inside @expo/ui views.
RowA horizontal layout container for universal @expo/ui components.
ScrollViewA scrollable container that supports vertical or horizontal scrolling.
SliderA control for selecting a value from a continuous or stepped range.
SpacerA layout spacer that produces empty space between siblings.
SwitchA toggle control that switches between on and off states.
TextA component for displaying styled text content.
TextInputA text input backed by native SwiftUI and Jetpack Compose components, with a React Native-compatible API.