Wrap Wrap is a layout component that adds a defined space between its children and
'wraps' its children automatically if there's not enough space to fit any child.
Think of it as a smarter flex-wrap
with spacing
support. It works really well
with things like dialog buttons, tags, and chips.
import { Wrap } from "@chakra-ui/core"
In the example, you see that the last Box
wrapped to the next line.
< Wrap >
< Center w = " 180px " h = " 80px " bg = " red.200 " >
Box 1
</ Center >
< Center w = " 180px " h = " 80px " bg = " green.200 " >
Box 2
</ Center >
< Center w = " 180px " h = " 80px " bg = " tomato " >
Box 3
</ Center >
< Center w = " 180px " h = " 80px " bg = " blue.200 " >
Box 4
</ Center >
</ Wrap >
copy Editable Example
Pass the spacing
prop to apply consistent spacing between each child, even
if it wraps.
Pro Tip: You can pass responsive values for the spacing.
Box 1
Box 2
Box 3
Box 4
Box 5
< Wrap spacing = " 30px " >
< Center w = " 180px " h = " 80px " bg = " red.200 " >
Box 1
</ Center >
< Center w = " 180px " h = " 80px " bg = " green.200 " >
Box 2
</ Center >
< Center w = " 180px " h = " 80px " bg = " tomato " >
Box 3
</ Center >
< Center w = " 180px " h = " 80px " bg = " blue.200 " >
Box 4
</ Center >
< Center w = " 180px " h = " 80px " bg = " blackAlpha.500 " >
Box 5
</ Center >
</ Wrap >
copy Editable Example
Pass the align
prop to change the alignment of the child along the main axis.
Box 1
Box 2
Box 3
Box 4
Box 5
< Wrap spacing = " 30px " align = " center " >
< Center w = " 180px " h = " 80px " bg = " red.200 " >
Box 1
</ Center >
< Center w = " 180px " h = " 40px " bg = " green.200 " >
Box 2
</ Center >
< Center w = " 120px " h = " 80px " bg = " tomato " >
Box 3
</ Center >
< Center w = " 180px " h = " 40px " bg = " blue.200 " >
Box 4
</ Center >
< Center w = " 180px " h = " 80px " bg = " whiteAlpha.500 " >
Box 5
</ Center >
</ Wrap >
copy Editable Example
Pass the justify
prop to change the alignment of the child along the cross
axis.
Box 1
Box 2
Box 3
Box 4
Box 5
< Wrap spacing = " 30px " justify = " center " >
< Center w = " 180px " h = " 80px " bg = " red.200 " >
Box 1
</ Center >
< Center w = " 180px " h = " 80px " bg = " green.200 " >
Box 2
</ Center >
< Center w = " 120px " h = " 80px " bg = " tomato " >
Box 3
</ Center >
< Center w = " 180px " h = " 80px " bg = " blue.200 " >
Box 4
</ Center >
< Center w = " 180px " h = " 80px " bg = " whiteAlpha.500 " >
Box 5
</ Center >
</ Wrap >
copy Editable Example
Wrap extends Box
, so you can pass all BoxProps
in addition to these:
Name Type Default Description spacing Responsive(string or number)
0.5rem
The space between each child (even if it wraps) justify FlexProps['justifyContent']
The justify-content
value (for cross axis alignment) align FlexProps['alignItems']
The align-items
value (for main axis alignment) direction FlexProps['flexDirection']
The flex-direction
value
Previous
Stack
Next
Layout