Skip to main content

Components Overview

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

Categories

Buttons

Interactive elements for user actions.

ComponentDescription
ButtonPrimary action button with variants
IconButtonIcon-only button
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

Inputs

Form controls and user input components.

ComponentDescription
InputText input field
CheckboxCheckbox control
ToggleToggle switch control
PickerButtonDropdown trigger
MediaPickerButtonImage/media picker

Layouts

Container and scrolling components.

ComponentDescription
ScrollContainerScrollable container
ListContainerFlatList with loading states
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

Common Props

Most components share these props:

Spacing

<Container
margin={16} // All sides
margin={{ horizontal: 16 }} // Left and right
margin={{ top: 8, bottom: 16 }} // Individual sides
padding="medium" // Using variable size
/>

Sizing

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

Colors

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

Quick Example

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

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

return (
<Card margin={variables.padding.medium}>
<Container padding="medium" 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>
);
}