JSFiddle - React, Tailwind, and code Playground
by web tiki
HTML
<ul id="Forums">
<li class="category"><div>Category</div>
<ul>
<li class="forum"><div>Forum</div>
<ul>
<li class="sub-forum">Sub-forum</li>
<li class="sub-forum">Sub-forum</li>
<li class="sub-forum">Sub-forum</li>
</ul>
</li>
<li class="forum"><div>Forum</div></li>
</ul>
</li>
<li class="category"><div>Category</div>
</li>
<li class="category"><div>Category</div>
<ul>
<li class="forum"><div>Forum</div>
<ul>
<li class="sub-forum">Sub-forum</li>
<li class="sub-forum">Sub-forum</li>
</ul>
</li>
<li class="forum"><div>Forum</div>
<ul>
<li class="sub-forum">Sub-forum</li>
<li class="sub-forum">Sub-forum</li>
</ul>
</li>
<li class="forum"><div>Forum</div>
<ul>
<li class="sub-forum">Sub-forum</li>
<li class="sub-forum">Sub-forum</li>
</ul>
</li>
</ul>
</li>
</ul>
CSS
ul, li{
list-style-type:none;
margin:0; padding:0;
position:relative;
}
.category > div{
width: 95%; height: 3em;
background-color: rgba(46, 183, 255, 0.67);
}
.forum {
margin-left: 2em;
}
.forum > div, .sub-forum{
height: 3em;
border: dotted;
}
.forum > div{
background-color: rgba(30, 101, 141, 0.67);
}
.sub-forum {
margin-left: 3em;
background-color: rgba(12, 50, 69, 0.67);
}
.category li:before, .forum:after{
content:'';
position:absolute;
right:100%;
border-bottom: 0.2em dotted;
}
.category .forum:before{
top:-1.5em;
height:100%; width:1em;
border-left: 0.2em dotted;
border-bottom-color: transparent;
}
.forum:last-child:before{
height:3em;
}
.forum:first-child:before{
top:0;
bottom:1.5em;
}
.forum:after{
top:1.5em;
width:1.2em;
}
.sub-forum:before{
bottom:50%;
width:3.5em; height: 100%;
border-left: 0.2em dotted;
}