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
@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








































Host












Modifiers








RNHostView


























useNativeState
SwiftUI
AccessoryWidgetBackground
























Group
Host






LazyHStack
LazyVStack






Modifiers
Namespace








RNHostView










SwipeActions








useNativeState




Drop-in replacements
| Component | Description |
|---|---|
BottomSheet | A bottom sheet compatible with @gorhom/bottom-sheet. |
DateTimePicker | A date and time picker compatible with @react-native-community/datetimepicker. |
MaskedView | A masked view compatible with @react-native-masked-view/masked-view. |
Menu | A menu compatible with @react-native-menu/menu. |
PagerView | A horizontally paged view compatible with react-native-pager-view. |
Picker | A picker compatible with @react-native-picker/picker. |
SegmentedControl | A segmented control compatible with @react-native-segmented-control/segmented-control. |
Slider | A slider compatible with @react-native-community/slider. |
Universal
| Component | Description |
|---|---|
BottomSheet | A modal sheet that slides up from the bottom of the screen. |
Button | A pressable button with multiple visual variants. |
Checkbox | A toggle control that represents a checked or unchecked state. |
Collapsible | A labelled tappable header that toggles visibility of its content. |
Column | A vertical layout container for universal @expo/ui components. |
FieldGroup | A scrollable container of grouped settings-style rows. |
Host | A cross-platform Host component that wraps universal @expo/ui content. |
Icon | A platform-native icon — SF Symbol on iOS, Material Symbol on Android. |
List | A virtualized vertical container of rows, paired with a tappable ListItem primitive. |
Picker | A single-selection input with menu and wheel appearances. |
RNHostView | A cross-platform component for hosting React Native views inside @expo/ui views. |
Row | A horizontal layout container for universal @expo/ui components. |
ScrollView | A scrollable container that supports vertical or horizontal scrolling. |
Slider | A control for selecting a value from a continuous or stepped range. |
Spacer | A layout spacer that produces empty space between siblings. |
Switch | A toggle control that switches between on and off states. |
Text | A component for displaying styled text content. |
TextInput | A text input backed by native SwiftUI and Jetpack Compose components, with a React Native-compatible API. |