Concepts
OverviewCompositionTestingLayout
Aspect RatioBleedBoxCenterContainerDividerFlexFloatGridLink OverlayScrollableStackWrapComponents
AccordionAdmonitionAvatarButtonCheckboxComboboxConfirm ModalCTAModalDate PickerDialogFieldFieldsetFile UploaderIcon ButtonInputLoading StatesMenuNotificationsProgressPrompt ModalRadioRatingSelectSwitchTableTabsTagTextTextareaToggleTooltipUtilities
Feature FlagsForLocal StoragePortalShowsplitPropsTheme1import { Wrap, WrapItem } from "styled-system/jsx"2import { DecorativeBox } from "compositions/lib/decorative-box"3
4const Demo = () => {5 return (6 <Wrap>7 <WrapItem>8 <DecorativeBox h="20" />9 </WrapItem>10 <WrapItem>11 <DecorativeBox h="20" />12 </WrapItem>13 <WrapItem>14 <DecorativeBox h="20" />15 </WrapItem>16 </Wrap>17 )18}
Usage
By default, Wrap
applies display: flex
, flex-wrap: wrap
, and gap: 8px
to
its children.
1import { Wrap, WrapItem } from "styled-system/jsx";
1<Wrap>2 <div />3 <div />4</Wrap>
Examples
Gap or Spacing
Pass the gap
prop to apply a consistent spacing between each child, even if it
wraps.
1import { Wrap } from "styled-system/jsx"2import { DecorativeBox } from "compositions/lib/decorative-box"3
4export const WrapWithGap = () => (5 <Wrap gap="5">6 {Array.from({ length: 10 }).map((_, index) => (7 <DecorativeBox key={index} h="12" w="12" />8 ))}9 </Wrap>10)
Alignment
Pass the align
prop to change the alignment of the child along the cross axis.
1import { Wrap } from "styled-system/jsx"2import { DecorativeBox } from "compositions/lib/decorative-box"3
4export const WrapWithAlign = () => (5 <Wrap align="center">6 {Array.from({ length: 10 }).map((_, index) => (7 <DecorativeBox key={index} h="12" w="12" />8 ))}9 </Wrap>10)
Justify
Pass the justify
prop to change the alignment of the child along the main
axis.
1import { Wrap } from "styled-system/jsx"2import { DecorativeBox } from "compositions/lib/decorative-box"3
4export const WrapWithJustify = () => (5 <Wrap justify="space-between">6 {Array.from({ length: 10 }).map((_, index) => (7 <DecorativeBox key={index} h="12" w="12" />8 ))}9 </Wrap>10)
Row and Column Gap
Pass the rowGap
and columnGap
props to apply a consistent spacing between
the rows and columns.
1import { Wrap } from "styled-system/jsx"2import { DecorativeBox } from "compositions/lib/decorative-box"3
4export const WrapWithRowAndColumnGap = () => (5 <Wrap rowGap="4" columnGap="8">6 {Array.from({ length: 10 }).map((_, index) => (7 <DecorativeBox key={index} h="12" w="12" />8 ))}9 </Wrap>10)
On this page