Divide Width
Utilities for controlling the border width between elements.
React props | CSS Properties |
---|---|
divideX={size} | --x-divide-x-reverse: 0; border-right-width: calc({size} * var(--x-divide-x-reverse)); border-left-width: calc({size} * calc(1 - var(--x-divide-x-reverse))); |
divideXReverse | --x-divide-x-reverse: 1; |
divideY={size} | --x-divide-y-reverse: 0; border-top-width: calc({size} * calc(1 - var(--x-divide-y-reverse))); border-bottom-width: calc({size} * var(--x-divide-y-reverse)); |
divideYReverse | --x-divide-y-reverse: 1; |
Add borders between horizontal children
Add borders between horizontal elements using the divideX={size}
utilities.
<x.div display="grid" gridTemplateColumns={3} divideX divideColor="emerald-500" > <div>1</div> <div>2</div> <div>3</div> </x.div>
Add borders between between stacked children
Add borders between stacked elements using the divideY={size}
utilities.
<x.div display="grid" gridTemplateColumns={1} divideY divideColor="amber-500"> <div>1</div> <div>2</div> <div>3</div> </x.div>
Reversing children order
If your elements are in reverse order (using say flexDirection="row-reverse"
or flexDirection="column-reverse"
), use the divideXReverse
or divideYReverse
utilities to ensure the border is added to the correct side of each element.
<x.div display="flex" flexDirection="column-reverse" divideY divideYReverse divideColor="rose-500" > <div>1</div> <div>2</div> <div>3</div> </x.div>
Responsive
To control the borders between elements at a specific breakpoint, use responsive object notation. For example, adding the property divideY={{ md: 2 }}
to an element would apply the divideY={2}
utility at medium screen sizes and above.
<x.div divideY={{ md: 2 }}>{/* ... */}</x.div>
For more information about xstyled's responsive design features, check out Responsive Design documentation.
Edit this page on GitHub