-bd
Border-related specifications in Lism follow a slightly unique convention.
- Use the
-bdclass to show a border on all sides. - To show a border on a single side, use the
.-bd-{side}class. (Note: only block and inline directions are supported by default.) - Fine-grained styles for these borders are controlled by three variables:
--bdc,--bdw, and--bds. - To change the border direction at a breakpoint, adjust
--bdw.
↓
css
:where(.-bd, [class*=' -bd-'], [class^='-bd-']) { --bds: solid; --bdw: 1px; --bdc: var(--divider); border-width: var(--bdw); border-color: var(--bdc);}.-bd { border-style: var(--bds);}.-bd-x { border-inline-style: var(--bds);}.-bd-y { border-block-style: var(--bds);}.-bd-x-s { border-inline-start-style: var(--bds);}.-bd-x-e { border-inline-end-style: var(--bds);}.-bd-y-s { border-block-start-style: var(--bds);}.-bd-y-e { border-block-end-style: var(--bds);}.-bd-t { border-top-style: var(--bds);}.-bd-b { border-bottom-style: var(--bds);}.-bd-l { border-left-style: var(--bds);}.-bd-r { border-right-style: var(--bds);}Accordingly, components also accept bd, bd-{side}, bdc, bdw, and bds, where bdc, bdw, and bds are output as CSS variables.
Additionally, bdw supports breakpoint specification.
↓
Usage example
Lorem ipsum dolor sit amet. Consectetur adipiscing elit, sed do eiusmod tempor Incididunt ut.
Lorem ipsum dolor sit amet. Consectetur adipiscing elit, sed do eiusmod tempor Incididunt ut.
<Box bd p="10"> <p>Lorem ipsum dolor sit amet. Consectetur adipiscing elit, sed do eiusmod tempor Incididunt ut.</p></Box><Box bd bds="dashed" bdw="4px" bdc="red" p="15"> <p>Lorem ipsum dolor sit amet. Consectetur adipiscing elit, sed do eiusmod tempor Incididunt ut.</p></Box>Side Specification
To apply a border on only one side, use the .-bd-{side} class.
↓
Specifying all 4 sides
-t: Top
-r: Right
-b: Bottom
-l: Left
<Box bd-t px="10">-t: Top</Box><Box bd-r px="10">-r: Right</Box><Box bd-b px="10">-b: Bottom</Box><Box bd-l px="10">-l: Left</Box> ↓
Specifying block and inline directions
inline-start
inline-end
block-start
block-end
inline
block
<Box bd-x-s bdw="2px" px="10" bgc="base-2">inline-start</Box><Box bd-x-e bdw="2px" px="10" bgc="base-2">inline-end</Box><Box bd-y-s bdw="2px" px="10" bgc="base-2">block-start</Box><Box bd-y-e bdw="2px" px="10" bgc="base-2">block-end</Box><Box bd-x bdw="2px" px="10" bgc="base-2">inline</Box><Box bd-y bdw="2px" px="10" bgc="base-2">block</Box>When different styles are needed for each side, you can combine the .-bd class with --bdw, --bds, and --bdc as follows:
↓
Per-side specification of
bdw, bds, bdcborder
リサイズ可能
<Box bd bdw="0 0 1px .5em" bds="dashed solid" bdc="var(--purple) var(--blue)" p="15"> border</Box>Switching bdw at Breakpoints
bdw supports breakpoint specification.
↓
Example of
bdborder
リサイズ可能
<Box bd bdw={['1px', '3px', '6px']} p="15"> border</Box>Switching the border side
By switching bdw at breakpoints, you can also change which side the border appears on.
↓
Switching the border side
Box
Box
Box
リサイズ可能
<Flex fxd={['column', 'row']}> <Box px="15" py="5"> Box </Box> <Box px="15" py="5" bd-x-s bd-y-s bdw={['1px 0', '0 1px']}> Box </Box> <Box px="15" py="5" bd-x-s bd-y-s bdw={['1px 0', '0 1px']}> Box </Box></Flex>