Use mainAxisAlignment prop to change the alignment of flex items on the main axis (the x-axis when direction={"row" | "row-reverse"}, y-axis when direction={"column" | "column-reverse"}).
Flex item 1
Flex item 2
Flex item 3
Flex item 1
Flex item 2
Flex item 3
Flex item 1
Flex item 2
Flex item 3
Flex item 1
Flex item 2
Flex item 3
Flex item 1
Flex item 2
Flex item 3
Flex item 1
Flex item 2
Flex item 3
importFlexfrom"@sonnat/ui/Flex";
import*asReactfrom"react";
constDemo=()=>{
return(
<React.Fragment>
<FlexmainAxisAlignment="start">
<div>Flex item 1</div>
<div>Flex item 2</div>
<div>Flex item 3</div>
</Flex>
<FlexmainAxisAlignment="end">
<div>Flex item 1</div>
<div>Flex item 2</div>
<div>Flex item 3</div>
</Flex>
<FlexmainAxisAlignment="center">
<div>Flex item 1</div>
<div>Flex item 2</div>
<div>Flex item 3</div>
</Flex>
<FlexmainAxisAlignment="between">
<div>Flex item 1</div>
<div>Flex item 2</div>
<div>Flex item 3</div>
</Flex>
<FlexmainAxisAlignment="around">
<div>Flex item 1</div>
<div>Flex item 2</div>
<div>Flex item 3</div>
</Flex>
<FlexmainAxisAlignment="evenly">
<div>Flex item 1</div>
<div>Flex item 2</div>
<div>Flex item 3</div>
</Flex>
</React.Fragment>
);
};
exportdefaultDemo;
Cross-Axis Alignment
Use crossAxisAlignment prop to change the alignment of flex items on the cross axis (the y-axis when direction={"row" | "row-reverse"}, x-axis when direction={"column" | "column-reverse"}).
Flex item 1
Flex item 2
Flex item 3
Flex item 1
Flex item 2
Flex item 3
Flex item 1
Flex item 2
Flex item 3
Flex item 1
Flex item 2
Flex item 3
Flex item 1
Flex item 2
Flex item 3
importFlexfrom"@sonnat/ui/Flex";
import*asReactfrom"react";
constDemo=()=>{
return(
<React.Fragment>
<FlexcrossAxisAlignment="start">
<div>Flex item 1</div>
<div>Flex item 2</div>
<div>Flex item 3</div>
</Flex>
<FlexcrossAxisAlignment="end">
<div>Flex item 1</div>
<div>Flex item 2</div>
<div>Flex item 3</div>
</Flex>
<FlexcrossAxisAlignment="center">
<div>Flex item 1</div>
<div>Flex item 2</div>
<div>Flex item 3</div>
</Flex>
<FlexcrossAxisAlignment="baseline">
<div>Flex item 1</div>
<div>Flex item 2</div>
<div>Flex item 3</div>
</Flex>
<FlexcrossAxisAlignment="stretch">
<div>Flex item 1</div>
<div>Flex item 2</div>
<div>Flex item 3</div>
</Flex>
</React.Fragment>
);
};
exportdefaultDemo;
Align Content
Use contentAlignment prop to align flex items together on the cross axis (the y-axis when direction={"row" | "row-reverse"}, x-axis when direction={"column" | "column-reverse"}).
This property has no effect on single rows of flex items.
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
importFlexfrom"@sonnat/ui/Flex";
import*asReactfrom"react";
constDemo=()=>{
return(
<React.Fragment>
<Flex
wrap="wrap"
mainAxisAlignment="start"
contentAlignment="start"
>
<div>Flex item</div>
<div>Flex item</div>
<div>Flex item</div>
<div>Flex item</div>
<div>Flex item</div>
<div>Flex item</div>
<div>Flex item</div>
<div>Flex item</div>
<div>Flex item</div>
<div>Flex item</div>
<div>Flex item</div>
<div>Flex item</div>
</Flex>
<Flex
wrap="wrap"
mainAxisAlignment="start"
contentAlignment="end"
>
<div>Flex item</div>
<div>Flex item</div>
<div>Flex item</div>
<div>Flex item</div>
<div>Flex item</div>
<div>Flex item</div>
<div>Flex item</div>
<div>Flex item</div>
<div>Flex item</div>
<div>Flex item</div>
<div>Flex item</div>
<div>Flex item</div>
</Flex>
<Flex
wrap="wrap"
mainAxisAlignment="start"
contentAlignment="center"
>
<div>Flex item</div>
<div>Flex item</div>
<div>Flex item</div>
<div>Flex item</div>
<div>Flex item</div>
<div>Flex item</div>
<div>Flex item</div>
<div>Flex item</div>
<div>Flex item</div>
<div>Flex item</div>
<div>Flex item</div>
<div>Flex item</div>
</Flex>
<Flex
wrap="wrap"
mainAxisAlignment="start"
contentAlignment="between"
>
<div>Flex item</div>
<div>Flex item</div>
<div>Flex item</div>
<div>Flex item</div>
<div>Flex item</div>
<div>Flex item</div>
<div>Flex item</div>
<div>Flex item</div>
<div>Flex item</div>
<div>Flex item</div>
<div>Flex item</div>
<div>Flex item</div>
</Flex>
<Flex
wrap="wrap"
mainAxisAlignment="start"
contentAlignment="around"
>
<div>Flex item</div>
<div>Flex item</div>
<div>Flex item</div>
<div>Flex item</div>
<div>Flex item</div>
<div>Flex item</div>
<div>Flex item</div>
<div>Flex item</div>
<div>Flex item</div>
<div>Flex item</div>
<div>Flex item</div>
<div>Flex item</div>
</Flex>
<Flex
wrap="wrap"
mainAxisAlignment="start"
contentAlignment="evenly"
>
<div>Flex item</div>
<div>Flex item</div>
<div>Flex item</div>
<div>Flex item</div>
<div>Flex item</div>
<div>Flex item</div>
<div>Flex item</div>
<div>Flex item</div>
<div>Flex item</div>
<div>Flex item</div>
<div>Flex item</div>
<div>Flex item</div>
</Flex>
<Flex
wrap="wrap"
mainAxisAlignment="start"
contentAlignment="stretch"
>
<div>Flex item</div>
<div>Flex item</div>
<div>Flex item</div>
<div>Flex item</div>
<div>Flex item</div>
<div>Flex item</div>
<div>Flex item</div>
<div>Flex item</div>
<div>Flex item</div>
<div>Flex item</div>
<div>Flex item</div>
<div>Flex item</div>
</Flex>
</React.Fragment>
);
};
exportdefaultDemo;
Wrapping
Use wrap prop to change the wrapping behavior of flex items in the flexbox.
Flex item
Flex item
Flex item
Flex item 1
Flex item 2
Flex item 3
Flex item 4
Flex item 5
Flex item 6
Flex item 7
Flex item 8
Flex item 9
Flex item 10
Flex item 11
Flex item 12
Flex item 1
Flex item 2
Flex item 3
Flex item 4
Flex item 5
Flex item 6
Flex item 7
Flex item 8
Flex item 9
Flex item 10
Flex item 11
Flex item 12
importFlexfrom"@sonnat/ui/Flex";
import*asReactfrom"react";
constDemo=()=>{
return(
<React.Fragment>
<Flex>
<div>Flex item</div>
<div>Flex item</div>
<div>Flex item</div>
</Flex>
<Flexwrap="wrap">
<div>Flex item 1</div>
<div>Flex item 2</div>
<div>Flex item 3</div>
<div>Flex item 4</div>
<div>Flex item 5</div>
<div>Flex item 6</div>
<div>Flex item 7</div>
<div>Flex item 8</div>
<div>Flex item 9</div>
<div>Flex item 10</div>
<div>Flex item 11</div>
<div>Flex item 12</div>
</Flex>
<Flexwrap="wrap-reverse">
<div>Flex item 1</div>
<div>Flex item 2</div>
<div>Flex item 3</div>
<div>Flex item 4</div>
<div>Flex item 5</div>
<div>Flex item 6</div>
<div>Flex item 7</div>
<div>Flex item 8</div>
<div>Flex item 9</div>
<div>Flex item 10</div>
<div>Flex item 11</div>
<div>Flex item 12</div>
</Flex>
</React.Fragment>
);
};
exportdefaultDemo;
Flex Item Self Alignment
Use crossAxisSelfAlignment prop on FlexItem to change the alignment of that specific item on the cross axis (the y-axis when direction={"row" | "row-reverse"}, x-axis when direction={"column" | "column-reverse"}).
Flex item
Self-aligned item
Flex item
Flex item
Self-aligned item
Flex item
Flex item
Self-aligned item
Flex item
Flex item
Self-aligned item
Flex item
Flex item
Self-aligned item
Flex item
importFlex,{FlexItem}from"@sonnat/ui/Flex";
import*asReactfrom"react";
constDemo=()=>{
return(
<React.Fragment>
<Flex>
<FlexItem>Flex item</FlexItem>
<FlexItemcrossAxisSelfAlignment="start">
Self-aligned item
</FlexItem>
<FlexItem>Flex item</FlexItem>
</Flex>
<Flex>
<FlexItem>Flex item</FlexItem>
<FlexItemcrossAxisSelfAlignment="end">
Self-aligned item
</FlexItem>
<FlexItem>Flex item</FlexItem>
</Flex>
<Flex>
<FlexItem>Flex item</FlexItem>
<FlexItemcrossAxisSelfAlignment="center">
Self-aligned item
</FlexItem>
<FlexItem>Flex item</FlexItem>
</Flex>
<Flex>
<FlexItem>Flex item</FlexItem>
<FlexItemcrossAxisSelfAlignment="baseline">
Self-aligned item
</FlexItem>
<FlexItem>Flex item</FlexItem>
</Flex>
<Flex>
<FlexItem>Flex item</FlexItem>
<FlexItemcrossAxisSelfAlignment="stretch">
Self-aligned item
</FlexItem>
<FlexItem>Flex item</FlexItem>
</Flex>
</React.Fragment>
);
};
exportdefaultDemo;
Flex Item Force Fill
Use fill prop on FlexItems to force them into widths equal to their content (or equal widths if their content does not surpass their border-boxes) while taking up all available horizontal space.
Lorem ipsum dolor sit amet consectetur adipisicing elit. Culpa nihil ut, sint quaerat quam consequatur cumque cum totam voluptates eum fugit beatae porro at doloremque numquam maxime sequi suscipit ea.
Flex item
Flex item
Flex item
importFlex,{FlexItem}from"@sonnat/ui/Flex";
import*asReactfrom"react";
constDemo=()=>{
return(
<React.Fragment>
<Flex>
<FlexItemfill>
Lorem ipsum dolor sit amet consectetur adipisicing elit.Culpa nihil
ut, sint quaerat quam consequatur cumque cum totam voluptates eum
fugit beatae porro at doloremque numquam maxime sequi suscipit ea.
</FlexItem>
<FlexItemfill>Flex item</FlexItem>
<FlexItemfill>Flex item</FlexItem>
<FlexItemfill>Flex item</FlexItem>
</Flex>
</React.Fragment>
);
};
exportdefaultDemo;
API
Learn more about the properties and the customization points.
Usage
importFlex,{ value FlexItem}from"@sonnat/ui/Flex";
//or
import{ value Flex, value FlexItem}from"@sonnat/ui";
Properties
Note that the documentation avoids mentioning all the native props (there are a lot) in this section of the components.
Flex Properties
Flex Properties
Name
Type
Default
Description
children
node
-
The content of the container.
className
string
-
Append to the class names applied to the component so you can override or extend the styles.
as
elementType
"div"
The component used for the root node. Either a string to use a HTML element or a component.
Aligns flex items together on the cross axis in the flexbox. (Note: This property has no effect on single rows of flex items.)
The ref is forwarded to the root element.
Any other properties supplied will be provided to the root element.
FlexItem Properties
FlexItem Properties
Name
Type
Default
Description
children
node
-
The content of the container.
className
string
-
Append to the class names applied to the component so you can override or extend the styles.
as
elementType
"div"
The component used for the root node. Either a string to use a HTML element or a component.
fill
boolean
false
Use it on a series of sibling flex items to force them into widths equal to their content (or equal widths if their content does not surpass their border-boxes) while taking up all available horizontal space.