Skip to main content

Components Overview

Multinaire UI provides 40+ UI components organized into 7 categories.

Categories​

Buttons​

Interactive elements for user actions.

ComponentDescription
ButtonPrimary action button with variants
IconButtonIcon-only button
ToggleIconButtonCompact icon-only button with a selected state
ActionButtonButton with icon and label
MenuButtonList item style button
SocialLoginButtonOAuth login buttons
FloatingActionButtonFAB component

Common​

Basic building blocks for layouts and content.

ComponentDescription
TypographyTheme-aware text with i18n
IconSVG icon component
CardCard container with shadow
ContainerFlexible layout container
PhotoImage component
AvatarCircular avatar with initials fallback
DividerHorizontal/vertical divider
AnimateLoading skeleton
GapSpacing component
AccordionCollapsible panel with animated header
PlaceholderEmpty-state block with graphic, text, and action

Inputs​

Form controls and user input components.

ComponentDescription
InputText input field
AutoCompleteInputText input with a suggestion dropdown
CheckboxCheckbox control
ToggleToggle switch control
PickerButtonDropdown trigger
MediaPickerButtonImage/media picker

Layouts​

Container and scrolling components.

ComponentDescription
ScrollContainerScrollable container
ListContainerFlatList with loading states
StaticListContainerNon-scrolling list for nesting in a scroller
SortableContainerDrag-to-reorder list
SortableItemDraggable row wrapper used by SortableContainer
PageContainerSwipeable page view
TabContainerTab content container
PaginationPage indicators

Modals​

Overlay and dialog components.

ComponentDescription
PopupBase modal (sheet/dialog)
DialogConfirmation dialog
ListPickerSelection modal
DateTimePickerDate/time picker
MenuContext menu

Navigation and header components.

ComponentDescription
StackHeaderStack navigation header
TabBarTab bar for navigation
SideBarDesktop sidebar

Markdown​

Theme-aware markdown renderers and editors.

ComponentDescription
MarkdownTypographyNative markdown rendering via react-native-enriched-markdown
MarkdownInputRich text editor that reads and writes markdown
MarkdownToolbarFormatting toolbar for MarkdownInput

Common Props​

Most components share these props:

Spacing​

margin and padding take a number, a symmetric pair, or individual sides — never a token name. Read the number off the theme so spacing stays consistent:

const { variables } = useTheme();

<Container
margin={variables.padding.medium} // All sides
margin={{ horizontal: 16 }} // Left and right
margin={{ top: 8, bottom: 16 }} // Individual sides
padding={variables.padding.medium}
/>

Sizing​

width and height are dimensions, not size tokens:

<Button
flex={1}
width={200}
height={variables.height.medium}
/>

Colors​

Color props are the exception: they take the token name, and the component resolves it against the active mode.

<Typography color="primary" />
<Container backgroundColor="backgroundVariant" />

Quick Example​

import {
Container,
Typography,
Button,
Card,
useTheme,
} from '@multinaire/expo-ui';

function WelcomeCard() {
const { variables } = useTheme();

return (
<Card margin={variables.padding.medium}>
<Container
padding={variables.padding.medium}
gap={variables.gap.medium}
>
<Typography type="heading" weight="bold">
Welcome!
</Typography>
<Typography type="body" color="neutral">
Get started with Multinaire UI
</Typography>
<Button
type="primary"
title="Get Started"
onPress={() => {}}
/>
</Container>
</Card>
);
}