One board, one fill, one pixel. The smallest component in the kit, and the one whose whole behaviour lives in the space around it.
One component, two variants
Separator - Orientation: Horizontal · Vertical - 339 × 1 and 1 × 20, both base.border
Using the Separator
Why is Orientation a variant and not a rotation?
Because the two resize along different axes. A horizontal rule stretches to the width of what it divides and stays 1 tall; a vertical one stretches to the height of its row and stays 1 wide. Drawing one and turning it ninety degrees would leave every instance carrying a rotation you have to undo before you can size it.
What happened to decorative?
It is in the source and it is not in the file, because it changes nothing you can see. It decides whether a screen reader announces the rule or passes over it. Set it in code: decorative when the line is scenery inside a group that is already labelled, and leave it off when the line is genuinely what separates two sections.
Why does my vertical separator not appear?
Because nothing gave it a height. It is 1 wide and stretches to fill its parent, so in a flex row with no height it renders as a one-pixel square you will never spot. The kit draws it at 20 next to a line of text and at 40 next to a two-line figure, which are the two heights it actually turns up at.
Where should the rule not go?
Above the first row or below the last one. A list that opens and closes with a line has been put in a box without anyone drawing the box, and it will not line up with whatever surface is actually around it. Rules go between things, never around them.
Is a separator always the right answer?
No, and this is the one real design decision the component carries. Spacing groups things without drawing anything and is almost always the better first attempt; cards group them loudly and start to suggest each row is independently actionable. Reach for the rule when vertical space is tight, not because a list looks unfinished. The last example on this page puts all three side by side.