Reference version

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
Bundled version:
~56.0.18

For the complete documentation index, see llms.txt. Use this file to discover all available pages.

@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
  • Jetpack Compose: Build native Android interfaces with Jetpack Compose components
  • SwiftUI: Build native iOS interfaces with SwiftUI components

Drop-in replacements

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

Available components

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.

Jetpack Compose

ComponentDescription
AlertDialogAlertDialog component for displaying native alert dialogs.
BadgeBadge component for displaying status indicators and counts.
BadgedBoxBadgedBox component for overlaying badges on content.
BasicAlertDialogBasicAlertDialog component for displaying dialogs with custom content.
BoxBox component for stacking child elements.
ButtonButton components for displaying native Material3 buttons.
CardCard component for displaying content in a styled container.
CarouselCarousel components for displaying scrollable collections of items.
CheckboxCheckbox component for selection controls.
ChipChip components for displaying compact elements.
ColumnColumn component for placing children vertically.
DateTimePickerDateTimePicker component for selecting dates and times.
DividerDivider components for creating visual separators.
DockedSearchBarDockedSearchBar component for displaying an inline search input.
DropdownMenuDropdownMenu component for displaying dropdown menus.
ExposedDropdownMenuBoxExposedDropdownMenuBox component for displaying a dropdown menu with a customizable anchor.
FloatingActionButtonFloatingActionButton components following Material Design 3.
FlowRowFlowRow component for wrapping children horizontally.
HorizontalFloatingToolbarHorizontalFloatingToolbar component for displaying a floating action bar.
HorizontalPagerHorizontalPager component for swipeable pages.
HostHost component for bridging React Native and Jetpack Compose.
IconIcon component for displaying icons.
IconButtonIconButton components for displaying native Material3 icon buttons.
LazyColumnLazyColumn component for displaying scrollable lists.
LazyRowLazyRow component for displaying horizontally scrolling lists.
ListItemListItem component for displaying structured list entries.
ModalBottomSheetModalBottomSheet component that presents content from the bottom of the screen.
NavigationBarNavigationBar component for Material 3 bottom navigation.
Progress IndicatorsProgress indicator components for displaying operation status.
PullToRefreshBoxPullToRefreshBox component for pull-to-refresh interactions.
RadioButtonRadioButton component for single-selection controls.
RNHostViewA component that enables React Native views inside Jetpack Compose.
RowRow component for placing children horizontally.
SearchBarSearchBar component for search input functionality.
SegmentedButtonSegmented Button components for single or multi-choice selection.
ShapeShape component for drawing geometric shapes.
SliderSlider component for selecting values from a range.
SnackbarA brief notification that appears at the bottom of the screen to provide feedback without interrupting the user.
SpacerSpacer component for adding flexible space between elements.
SurfaceSurface component for styled content containers.
SwitchSwitch component for toggle controls.
TextText component for displaying styled text.
TextFieldTextField components for native Material3 text input.
ToggleButtonToggleButton components for displaying native Material3 toggle buttons.
TooltipTooltip components for displaying contextual information on long-press.

SwiftUI

ComponentDescription
AccessoryWidgetBackgroundAdaptive background view that provides a standard appearance based on the the widget's environment.
AlertAlert component for presenting native iOS alert dialogs.
BottomSheetBottomSheet component that presents content from the bottom of the screen.
ButtonButton component for displaying native buttons.
ColorPickerColorPicker component for selecting colors.
ConfirmationDialogConfirmationDialog component for presenting confirmation prompts.
ContextMenuContextMenu component for displaying context menus.
ControlGroupControlGroup component for grouping interactive controls.
DatePickerDatePicker component for selecting dates and times.
DisclosureGroupDisclosureGroup component for displaying expandable content.
DividerDivider component for creating visual separators.
FormForm component for collecting user input in a structured layout.
GaugeGauge component for displaying progress with visual indicators.
GroupGroup component for grouping views without affecting layout.
HostHost component that enables SwiftUI components in React Native.
HStackHStack component for horizontal layouts.
ImageImage component for displaying SF Symbols.
LabelLabel component for displaying text with an icon.
LazyHStackLazyHStack component for lazy horizontal layouts.
LazyVStackLazyVStack component for lazy vertical layouts.
LinkLink component for displaying clickable links.
ListList component for displaying scrollable lists of items.
MenuMenu component for displaying dropdown menus.
NamespaceA Namespace component that allows you create Namespaces in SwiftUI
OverlayOverlay component for layering content on top of another view.
PickerPicker component for selecting options from a list.
PopoverPopover component for displaying content in a floating overlay.
ProgressViewProgressView component for displaying progress indicators.
RNHostViewA component that enables React Native views inside SwiftUI.
ScrollViewScrollView component for scrollable content.
SectionSection component for grouping content within lists and forms.
SecureFieldSecureField component for password input.
SliderSlider component for selecting values from a range.
SpacerSpacer component for flexible spacing.
SwipeActionsSwipeActions component for adding leading and trailing swipe actions to row content.
TabViewTabView component for paged or tabbed content.
TextText component for displaying styled text with support for nested texts.
TextFieldTextField component for text input.
ToggleToggle component for displaying native toggles.
VStackVStack component for vertical layouts.
ZStackZStack component for overlapping layouts.