Layout Components
A flexible layout component that arranges its children with consistent spacing. It can be used for both vertical and horizontal layouts.
A flexible layout container.
BasicStack.tsx
<Stack> <div className="p-4 bg-gray-100 rounded">Item 1</div> <div className="p-4 bg-gray-100 rounded">Item 2</div> <div className="p-4 bg-gray-100 rounded">Item 3</div></Stack>
Stacks come in different sizes such as xs
, sm
, md
, lg
, xl
.
Extra Small Stack
Large Stack
StackSizes.tsx
<Row flexWrap> <Col lg> <Text semibold>Extra Small Stack</Text> <Stack xs> <div className="p-2 bg-gray-100 rounded text-sm">Item 1</div> <div className="p-2 bg-gray-100 rounded text-sm">Item 2</div> <div className="p-2 bg-gray-100 rounded text-sm">Item 3</div> </Stack> </Col> <Col lg> <Text semibold>Large Stack</Text> <Stack lg> <div className="p-6 bg-gray-100 rounded">Item 1</div> <div className="p-6 bg-gray-100 rounded">Item 2</div> <div className="p-6 bg-gray-100 rounded">Item 3</div> </Stack> </Col></Row>
Control spacing between stack items.
No Gap
With Gap
StackwithGap.tsx
<Row flexWrap> <Col lg> <Text semibold>No Gap</Text> <Stack noGap> <div className="p-4 bg-gray-100 border">Item 1</div> <div className="p-4 bg-gray-100 border">Item 2</div> <div className="p-4 bg-gray-100 border">Item 3</div> </Stack> </Col> <Col lg> <Text semibold>With Gap</Text> <Stack> <div className="p-4 bg-gray-100 rounded">Item 1</div> <div className="p-4 bg-gray-100 rounded">Item 2</div> <div className="p-4 bg-gray-100 rounded">Item 3</div> </Stack> </Col></Row>
Control the direction of stack content.
Column Direction
Row Direction
StackFlexDirection.tsx
<Row flexWrap> <Col lg> <Text semibold>Column Direction</Text> <Stack column> <div className="p-4 bg-gray-100 rounded">Item 1</div> <div className="p-4 bg-gray-100 rounded">Item 2</div> <div className="p-4 bg-gray-100 rounded">Item 3</div> </Stack> </Col> <Col lg> <Text semibold>Row Direction</Text> <Stack row> <div className="p-4 bg-gray-100 rounded">Item 1</div> <div className="p-4 bg-gray-100 rounded">Item 2</div> <div className="p-4 bg-gray-100 rounded">Item 3</div> </Stack> </Col></Row>
Control how items wrap within the stack.
Flex Wrap
No Wrap
StackWrapOptions.tsx
<Row flexWrap> <Col lg> <Text semibold>Flex Wrap</Text> <Stack className="max-w-md" flexWrap row> <div className="p-4 bg-gray-100 rounded">Long Item 1</div> <div className="p-4 bg-gray-100 rounded">Long Item 2</div> <div className="p-4 bg-gray-100 rounded">Long Item 3</div> <div className="p-4 bg-gray-100 rounded">Long Item 4</div> </Stack> </Col> <Col lg> <Text semibold>No Wrap</Text> <Stack className="max-w-md" flexNoWrap row> <div className="p-4 bg-gray-100 rounded">Long Item 1</div> <div className="p-4 bg-gray-100 rounded">Long Item 2</div> <div className="p-4 bg-gray-100 rounded">Long Item 3</div> </Stack> </Col></Row>
Control how items are distributed along the main axis.
Justify Start
Justify Center
Justify Between
StackJustification.tsx
<Row flexWrap> <Col lg> <Text semibold>Justify Start</Text> <Stack className="h-40 border-2 border-dashed border-gray-300" justifyStart> <div className="p-4 bg-gray-100 rounded">Item 1</div> <div className="p-4 bg-gray-100 rounded">Item 2</div> </Stack> </Col> <Col lg> <Text semibold>Justify Center</Text> <Stack className="h-40 border-2 border-dashed border-gray-300" justifyCenter> <div className="p-4 bg-gray-100 rounded">Item 1</div> <div className="p-4 bg-gray-100 rounded">Item 2</div> </Stack> </Col> <Col lg> <Text semibold>Justify Between</Text> <Stack className="h-40 border-2 border-dashed border-gray-300" justifyBetween > <div className="p-4 bg-gray-100 rounded">Item 1</div> <div className="p-4 bg-gray-100 rounded">Item 2</div> </Stack> </Col></Row>
Stacks can have different background appearances.
StackAppearances.tsx
<Row flexWrap> <Stack default> <div className="p-4 bg-white rounded">Item 1</div> <div className="p-4 bg-white rounded">Item 2</div> <div className="p-4 bg-white rounded">Item 3</div> </Stack> <Stack accent> <div className="p-4 bg-white rounded">Item 1</div> <div className="p-4 bg-white rounded">Item 2</div> <div className="p-4 bg-white rounded">Item 3</div> </Stack> <Stack primary> <div className="p-4 bg-white rounded">Item 1</div> <div className="p-4 bg-white rounded">Item 2</div> <div className="p-4 bg-white rounded">Item 3</div> </Stack> <Stack secondary> <div className="p-4 bg-white rounded">Item 1</div> <div className="p-4 bg-white rounded">Item 2</div> <div className="p-4 bg-white rounded">Item 3</div> </Stack> <Stack tertiary> <div className="p-4 bg-white rounded">Item 1</div> <div className="p-4 bg-white rounded">Item 2</div> <div className="p-4 bg-white rounded">Item 3</div> </Stack> <Stack success> <div className="p-4 bg-white rounded">Item 1</div> <div className="p-4 bg-white rounded">Item 2</div> <div className="p-4 bg-white rounded">Item 3</div> </Stack> <Stack danger> <div className="p-4 bg-white rounded">Item 1</div> <div className="p-4 bg-white rounded">Item 2</div> <div className="p-4 bg-white rounded">Item 3</div> </Stack> <Stack warning> <div className="p-4 bg-white rounded">Item 1</div> <div className="p-4 bg-white rounded">Item 2</div> <div className="p-4 bg-white rounded">Item 3</div> </Stack> <Stack info> <div className="p-4 bg-white rounded">Item 1</div> <div className="p-4 bg-white rounded">Item 2</div> <div className="p-4 bg-white rounded">Item 3</div> </Stack> <Stack link> <div className="p-4 bg-white rounded">Item 1</div> <div className="p-4 bg-white rounded">Item 2</div> <div className="p-4 bg-white rounded">Item 3</div> </Stack></Row>
Reverse the order of items in the stack.
Normal Order
Reverse Order
StackReverse.tsx
<Row flexWrap> <Col lg> <Text semibold>Normal Order</Text> <Stack> <div className="p-4 bg-gray-100 rounded">First</div> <div className="p-4 bg-gray-200 rounded">Second</div> <div className="p-4 bg-gray-300 rounded">Third</div> </Stack> </Col> <Col lg> <Text semibold>Reverse Order</Text> <Stack reverse> <div className="p-4 bg-gray-100 rounded">First</div> <div className="p-4 bg-gray-200 rounded">Second</div> <div className="p-4 bg-gray-300 rounded">Third</div> </Stack> </Col></Row>
Control stack internal padding.
StackwithPadding.tsx
<Row flexWrap> <Stack className="border-2 border-dashed border-gray-300" padding> <div className="p-4 bg-gray-100 rounded">Item 1</div> <div className="p-4 bg-gray-100 rounded">Item 2</div> </Stack> <Stack className="border-2 border-dashed border-gray-300" noPadding> <div className="p-4 bg-gray-100 rounded">Item 1</div> <div className="p-4 bg-gray-100 rounded">Item 2</div> </Stack></Row>