1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495moduleAlign_items=structtypet=|Start(* Items are packed toward the start of the axis *)|End(* Items are packed toward the end of the axis *)|Flex_start(* Items are packed towards the flex-relative start of the axis. For flex
containers with flex_direction RowReverse or ColumnReverse this is
equivalent to End. In all other cases it is equivalent to Start. *)|Flex_end(* Items are packed towards the flex-relative end of the axis. For flex
containers with flex_direction RowReverse or ColumnReverse this is
equivalent to Start. In all other cases it is equivalent to End. *)|Center(* Items are packed along the center of the cross axis *)|Baseline(* Items are aligned such as their baselines align *)|Stretch(* Stretch to fill the container *)letdefault=Stretchletto_string(x:t)=matchxwith|Start->"start"|End->"end"|Flex_start->"flex-start"|Flex_end->"flex-end"|Center->"center"|Baseline->"baseline"|Stretch->"stretch"endmoduleJustify_items=structtypet=Align_items.tletdefault=Align_items.defaultletto_string=Align_items.to_stringendmoduleAlign_self=structtypet=Align_items.tletdefault=Align_items.defaultletto_string=Align_items.to_stringendmoduleJustify_self=structtypet=Align_items.tletdefault=Align_items.defaultletto_string=Align_items.to_stringendmoduleAlign_content=structtypet=|Start(* Items are packed toward the start of the axis *)|End(* Items are packed toward the end of the axis *)|Flex_start(* Items are packed towards the flex-relative start of the axis. For flex
containers with flex_direction RowReverse or ColumnReverse this is
equivalent to End. In all other cases it is equivalent to Start. *)|Flex_end(* Items are packed towards the flex-relative end of the axis. For flex
containers with flex_direction RowReverse or ColumnReverse this is
equivalent to Start. In all other cases it is equivalent to End. *)|Center(* Items are centered around the middle of the axis *)|Stretch(* Items are stretched to fill the container *)|Space_between(* The first and last items are aligned flush with the edges of the
container (no gap) The gap between items is distributed evenly. *)|Space_evenly(* The gap between the first and last items is exactly THE SAME as the gap
between items. The gaps are distributed evenly *)|Space_around(* The gap between the first and last items is exactly HALF the gap between
items. The gaps are distributed evenly in proportion to these ratios. *)letdefault=Stretchletto_string(x:t)=matchxwith|Start->"start"|End->"end"|Flex_start->"flex-start"|Flex_end->"flex-end"|Center->"center"|Stretch->"stretch"|Space_between->"space-between"|Space_evenly->"space-evenly"|Space_around->"space-around"endmoduleJustify_content=structtypet=Align_content.tletdefault=Align_content.Flex_startletto_string=Align_content.to_stringend