Docs
Search

-bd

Border-related properties in Lism follow a slightly different convention.

  • Use the -bd class to show a border on all sides.
  • To show a border on a single side, use the -bd-{side} class. In addition to the block / inline directions, the top / right / bottom / left directions are also supported.
  • Three variables control the fine-grained styling of these borders: --bdc, --bdw, and --bds.
  • To change the border direction at a breakpoint, adjust --bdw.
↓
css
/* Only the variable defaults live in the weak position (@layer lism-base in the layered build, :where() in the no_layer build) */
:where(.-bd, [class*=' -bd-'], [class^='-bd-']) {
--bds: solid;
--bdw: 1px;
--bdc: var(--divider);
}
.-bd, [class*=' -bd-'], [class^='-bd-'] {
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-s {
border-inline-start-style: var(--bds);
}
.-bd-e {
border-inline-end-style: var(--bds);
}
.-bd-bs {
border-block-start-style: var(--bds);
}
.-bd-be {
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-s bdw="2px" px="10" bgc="base-2">inline-start</Box>
<Box bd-e bdw="2px" px="10" bgc="base-2">inline-end</Box>
<Box bd-bs bdw="2px" px="10" bgc="base-2">block-start</Box>
<Box bd-be 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, bdc
border
Resize
<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 bd
border
Resize
<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
Resize
<Flex fxd={['column', 'row']}>
<Box px="15" py="5">
Box
</Box>
<Box px="15" py="5" bd-s bd-bs bdw={['1px 0', '0 1px']}>
Box
</Box>
<Box px="15" py="5" bd-s bd-bs bdw={['1px 0', '0 1px']}>
Box
</Box>
</Flex>

© 2026 Lism CSS.