<ul class="cff-step-list">
<li class="step">Short single-line item.</li>
<li class="step">This is a much taller list item. It contains extra text to force a line break, demonstrating how the vertical bracket line dynamically expands to match the height of the item content perfectly.</li>
<li class="step">Another short item.</li>
</ul>
border-left::aftertop: 0; bottom: 0;/* Container setup and counter reset */
.cff-step-list {
margin: 15px 0 25px 25px;
list-style: none;
counter-reset: my-counter;
padding-left: 15px;
}
/* Base item setup */
.cff-step-list .step {
margin: 5px 0;
padding: 1px 2px 1px 5px;
position: relative;
counter-increment: my-counter;
}
/* Custom list numbers placed out of the way on the left */
.cff-step-list .step::before {
content: counter(my-counter) ". ";
position: absolute;
left: -28px;
top: 1px;
font-weight: bold;
text-align: right;
width: 25px;
}
/* The Bracket Engine: Draws the top, left, and bottom lines */
.cff-step-list .step::after {
content: "";
position: absolute;
left: 0;
top: 0;
bottom: 0;
width: 4px; /* Adjust this to change how far the top/bottom ticks stick out */
border-left: 1px solid #d6dce8;
border-top: 1px solid #d6dce8;
border-bottom: 1px solid #d6dce8;
pointer-events: none; /* Keeps text selectable and clickable */
}
/* Hover background accent */
.step:hover {
background-color: #e1f1fa;
}
┌└width