Flex Flex is a Box  with display: flex and comes with helpful style shorthand props.
Import copy import   {   Flex   }   from   '@trendmicro/react-styled-ui' ; 
Usage Flex provides the following style shorthand props:
Shorthand Prop Style Prop CSS Property Description direction flexDirection flex-direction Sets how flex items are placed in the flex container. wrap flexWrap flex-wrap Sets whether flex items are forced onto one line or can wrap onto multiple lines. align alignItems align-items Sets the align-self value on all direct children as a group. justify justifyContent justify-content Defines how the browser distributes space between and around content items along the main axis of a flex container. 
Flex items You can use the flex property to set how a flex item will grow or shrink to fit the available space in its flex container. It is a shorthand for flex-grow, flex-shrink, and flex-basis. For most purposes, you should set flex to one of the following values: auto, initial, none, or a positive unitless number.
Values initialThe item is sized according to its width and height properties. It shrinks to its minimum size to fit the container, but does not grow to absorb any extra free space in the flex container. This is equivalent to setting flex: 0 1 auto.
autoThe item is sized according to its width and height properties, but grows to absorb any extra free space in the flex container, and shrinks to its minimum size to fit the container. This is equivalent to setting flex: 1 1 auto.
noneThe item is sized according to its width and height properties. It is fully inflexible: it neither shrinks nor grows in relation to the flex container. This is equivalent to setting flex: 0 0 auto.
To see the effect of these values, try resizing the flex containers below:
EDITABLE EXAMPLE
copy const   FlexItem   =   ( props )   =>   ( 
   < Box   bg = " teal:50 "   border = { 1 }   borderColor = " teal:60 "   p = " 3x "   mr = " 4x "   mb = " 4x "   { ... props }   /> 
) ; 
 
function   Example ( )   { 
   return   ( 
     < > 
       < Flex   bg = " gray:10 "   p = " 4x "   pb = { 0 }   pr = { 0 }   mb = " 4x " > 
         < FlexItem   flex = " auto " > auto </ FlexItem > 
         < FlexItem   flex = " auto " > auto </ FlexItem > 
         < FlexItem   flex = " auto " > auto </ FlexItem > 
       </ Flex > 
       < Flex   bg = " gray:10 "   p = " 4x "   pb = { 0 }   pr = { 0 }   mb = " 4x " > 
         < FlexItem   flex = " auto " > auto </ FlexItem > 
         < FlexItem   flex = " initial " > initial </ FlexItem > 
         < FlexItem   flex = " initial " > initial </ FlexItem > 
       </ Flex > 
       < Flex   bg = " gray:10 "   p = " 4x "   pb = { 0 }   pr = { 0 }   mb = " 4x " > 
         < FlexItem   flex = " auto " > auto </ FlexItem > 
         < FlexItem   flex = " auto " > auto </ FlexItem > 
         < FlexItem   flex = " none " > none </ FlexItem > 
       </ Flex > 
       < Flex   bg = " gray:10 "   p = " 4x "   pb = { 0 }   pr = { 0 }   mb = " 4x " > 
         < FlexItem   flex = " initial " > initial </ FlexItem > 
         < FlexItem   flex = " none " > none </ FlexItem > 
         < FlexItem   flex = " none " > none </ FlexItem > 
       </ Flex > 
       < Flex   bg = " gray:10 "   p = " 4x "   pb = { 0 }   pr = { 0 } > 
         < FlexItem   flex = { 4 } > 4 </ FlexItem > 
         < FlexItem   flex = { 2 } > 2 </ FlexItem > 
         < FlexItem   flex = { 1 } > 1 </ FlexItem > 
       </ Flex > 
     </ > 
   ) ; 
} 
 
render ( < Example   /> ) ; 
The direction (flexDirection) property 
EDITABLE EXAMPLE
copy const   FlexItem   =   ( props )   =>   ( 
   < Box   bg = " teal:50 "   border = { 1 }   borderColor = " teal:60 "   p = " 3x "   mr = " 4x "   mb = " 4x "   { ... props }   /> 
) ; 
 
function   Example ( )   { 
   const   [ value ,  setValue ]   =   React . useState ( 'row' ) ; 
 
   return   ( 
     < > 
       < Stack   direction = " row "   spacing = " .5rem "   mb = " 4x " > 
         < Button   variant = " outline "   onClick = { ( )   =>   setValue ( 'row' ) } > row </ Button > 
         < Button   variant = " outline "   onClick = { ( )   =>   setValue ( 'row-reverse' ) } > row-reverse </ Button > 
         < Button   variant = " outline "   onClick = { ( )   =>   setValue ( 'column' ) } > column </ Button > 
         < Button   variant = " outline "   onClick = { ( )   =>   setValue ( 'column-reverse' ) } > column-reverse </ Button > 
       </ Stack > 
       < pre > 
         { ` <Flex direction=" ${ value } "> ` } 
       </ pre > 
       < Flex   direction = { value }   bg = " gray:10 "   p = " 4x "   pb = { 0 }   pr = { 0 } > 
         < FlexItem   flex = " auto " > One </ FlexItem > 
         < FlexItem   flex = " auto " > Two </ FlexItem > 
         < FlexItem   flex = " auto " > Three </ FlexItem > 
       </ Flex > 
     </ > 
   ) ; 
} 
 
render ( < Example   /> ) ; 
The wrap (flexWrap) property 
EDITABLE EXAMPLE
copy const   FlexItem   =   ( props )   =>   ( 
   < Box   bg = " teal:50 "   border = { 1 }   borderColor = " teal:60 "   p = " 3x "   mr = " 4x "   mb = " 4x "   { ... props }   /> 
) ; 
 
function   Example ( )   { 
   const   [ value ,  setValue ]   =   React . useState ( 'nowrap' ) ; 
 
   return   ( 
     < > 
       < Stack   direction = " row "   spacing = " .5rem "   mb = " 4x " > 
         < Button   variant = " outline "   onClick = { ( )   =>   setValue ( 'nowrap' ) } > nowrap </ Button > 
         < Button   variant = " outline "   onClick = { ( )   =>   setValue ( 'wrap' ) } > wrap </ Button > 
         < Button   variant = " outline "   onClick = { ( )   =>   setValue ( 'wrap-reverse' ) } > wrap-reverse </ Button > 
       </ Stack > 
       < pre > 
         { ` <Flex wrap=" ${ value } "> ` } 
       </ pre > 
       < Flex   wrap = { value }   width = { 480 }   bg = " gray:10 "   p = " 4x "   pb = { 0 }   pr = { 0 } > 
         < FlexItem   flex = " auto "   minWidth = { 120 } > One </ FlexItem > 
         < FlexItem   flex = " auto "   minWidth = { 120 } > Two </ FlexItem > 
         < FlexItem   flex = " auto "   minWidth = { 120 } > Three </ FlexItem > 
         < FlexItem   flex = " auto "   minWidth = { 120 } > Four </ FlexItem > 
         < FlexItem   flex = " auto "   minWidth = { 120 } > Five </ FlexItem > 
         < FlexItem   flex = " auto "   minWidth = { 120 } > Six </ FlexItem > 
       </ Flex > 
     </ > 
   ) ; 
} 
 
render ( < Example   /> ) ; 
The align (alignItems) property 
EDITABLE EXAMPLE
copy const   FlexItem   =   ( props )   =>   ( 
   < Box   bg = " teal:50 "   border = { 1 }   borderColor = " teal:60 "   p = " 3x "   mr = " 4x "   mb = " 4x "   { ... props }   /> 
) ; 
 
function   Example ( )   { 
   const   [ value ,  setValue ]   =   React . useState ( 'stretch' ) ; 
 
   return   ( 
     < > 
       < Stack   direction = " row "   spacing = " .5rem "   mb = " 4x " > 
         < Button   variant = " outline "   onClick = { ( )   =>   setValue ( 'stretch' ) } > stretch </ Button > 
         < Button   variant = " outline "   onClick = { ( )   =>   setValue ( 'flex-start' ) } > flex-start </ Button > 
         < Button   variant = " outline "   onClick = { ( )   =>   setValue ( 'center' ) } > center </ Button > 
         < Button   variant = " outline "   onClick = { ( )   =>   setValue ( 'flex-end' ) } > flex-end </ Button > 
       </ Stack > 
       < pre > 
         { ` <Flex align=" ${ value } "> ` } 
       </ pre > 
       < Flex   align = { value }   height = { 240 }   bg = " gray:10 "   p = " 4x "   pb = { 0 }   pr = { 0 } > 
         < FlexItem   flex = " auto " > One </ FlexItem > 
         < FlexItem   flex = " auto " > Two </ FlexItem > 
         < FlexItem   flex = " auto " > Three </ FlexItem > 
       </ Flex > 
     </ > 
   ) ; 
} 
 
render ( < Example   /> ) ; 
The justify (justifyContent) property 
EDITABLE EXAMPLE
copy const   FlexItem   =   ( props )   =>   ( 
   < Box   bg = " teal:50 "   border = { 1 }   borderColor = " teal:60 "   p = " 3x "   mr = " 4x "   mb = " 4x "   { ... props }   /> 
) ; 
 
function   Example ( )   { 
   const   [ value ,  setValue ]   =   React . useState ( 'start' ) ; 
 
   return   ( 
     < > 
       < Stack   direction = " row "   spacing = " .5rem "   mb = " 4x " > 
         < Button   variant = " outline "   onClick = { ( )   =>   setValue ( 'flex-start' ) } > flex-start </ Button > 
         < Button   variant = " outline "   onClick = { ( )   =>   setValue ( 'center' ) } > center </ Button > 
         < Button   variant = " outline "   onClick = { ( )   =>   setValue ( 'flex-end' ) } > flex-end </ Button > 
         < Button   variant = " outline "   onClick = { ( )   =>   setValue ( 'space-between' ) } > space-between </ Button > 
         < Button   variant = " outline "   onClick = { ( )   =>   setValue ( 'space-around' ) } > space-around </ Button > 
         < Button   variant = " outline "   onClick = { ( )   =>   setValue ( 'space-evenly' ) } > space-evenly </ Button > 
       </ Stack > 
       < pre > 
         { ` <Flex justify=" ${ value } "> ` } 
       </ pre > 
       < Flex   justify = { value }   bg = " gray:10 "   p = " 4x "   pb = { 0 }   pr = { 0 } > 
         < FlexItem > One </ FlexItem > 
         < FlexItem > Two </ FlexItem > 
         < FlexItem > Three </ FlexItem > 
       </ Flex > 
     </ > 
   ) ; 
} 
 
render ( < Example   /> ) ;