Skip to main content

MultinaireContainer

Flexible layout container with comprehensive styling, border, and safe area support.

Basic Usage

import { MultinaireContainer } from '@multinaire/multinaire-design';

<MultinaireContainer padding={16} gap={8}>
{/* Content */}
</MultinaireContainer>

Props

PropTypeDefaultDescription
styleViewStyleAdditional styles applied to the container
marginSpacingPropsOuter margin. Accepts a number for uniform margin, or an object for per-side control
paddingSpacingPropsInner padding. Accepts a number for uniform padding, or an object for per-side control
widthDimensionValueFixed width of the container
heightDimensionValueFixed height of the container
borderRadiusBorderRadiusPropsBorder radius. Accepts a number for uniform radius or an object for per-corner control
backgroundColorColorKeysBackground color key from the active theme palette
bordernumberBorder width in pixels. Use together with borderColor for a visible border
borderColorColorKeysBorder color key from the active theme palette
flexnumberFlex grow value
horizontalbooleanfalseSet to true to lay out children in a row (horizontal). Defaults to column
justifyContentstringJustify content along the main axis
alignItemsstringAlign items along the cross axis
gapnumberGap between children in pixels
safeAreaEdgesEdgesSafe area edges to inset. Renders as SafeAreaView when provided
onLayoutfunctionCallback invoked when the layout changes
onPress() => voidPress handler. Renders as Pressable when provided

Examples

Vertical Layout (Default)

<MultinaireContainer gap={16} padding={16}>
<MultinaireText>Item 1</MultinaireText>
<MultinaireText>Item 2</MultinaireText>
<MultinaireText>Item 3</MultinaireText>
</MultinaireContainer>

Horizontal Layout

<MultinaireContainer horizontal gap={8} alignItems="center">
<MultinaireIcon icon="Star1" />
<MultinaireText>Horizontal items</MultinaireText>
</MultinaireContainer>

Centered Content

<MultinaireContainer flex={1} justifyContent="center" alignItems="center">
<MultinaireText>Centered</MultinaireText>
</MultinaireContainer>

With Background Color

<MultinaireContainer backgroundColor="backgroundVariant" padding={16} borderRadius={8}>
<MultinaireText>Surface background</MultinaireText>
</MultinaireContainer>

With Border

<MultinaireContainer border={1} borderColor="primary" padding={16} borderRadius={8}>
<MultinaireText>Outlined container</MultinaireText>
</MultinaireContainer>

Safe Area Support

<MultinaireContainer safeAreaEdges={['top', 'bottom']}>
{/* Content respects safe areas */}
</MultinaireContainer>

Pressable Container

<MultinaireContainer padding={16} backgroundColor="backgroundVariant" onPress={() => handlePress()}>
<MultinaireText>Tap me</MultinaireText>
</MultinaireContainer>