JSFiddle - React, Tailwind, and code Playground
HTML
<ul class="progress-indicator">
<li class="completed">
<span class="bubble"></span>
Step 1.
</li>
<li class="completed">
<span class="bubble"></span>
Step 2.
</li>
<li>
<span class="bubble"></span>
Step 3.
</li>
<li>
<span class="bubble"></span>
Step 4.
</li>
<li>
<span class="bubble"></span>
Step 5.
</li>
</ul>
<ul class="progress-indicator">
<li class="completed">
<span class="bubble"></span>
Step 1.
</li>
<li class="completed">
<span class="bubble"></span>
Step 2.
</li>
<li class="completed">
<span class="bubble"></span>
Step 3.
</li>
<li class="completed">
<span class="bubble"></span>
Step 4.
</li>
<li>
<span class="bubble"></span>
Step 5.
</li>
</ul>
CSS
.flexer, .progress-indicator {
display: -webkit-box;
display: -moz-box;
display: -ms-flexbox;
display: -webkit-flex;
display: flex;
}
.no-flexer, .progress-indicator.stacked {
display: block;
}
.no-flexer-element {
-ms-flex: 0;
-webkit-flex: 0;
-moz-flex: 0;
flex: 0;
}
.flexer-element, .progress-indicator > li {
-ms-flex: 1;
-webkit-flex: 1;
-moz-flex: 1;
flex: 1;
}
.progress-indicator {
margin: 0;
padding: 0;
font-size: 80%;
text-transform: uppercase;
margin-bottom: 1em;
}
.progress-indicator > li {
list-style: none;
text-align: center;
width: auto;
padding: 0;
margin: 0;
position: relative;
text-overflow: ellipsis;
color: #bbbbbb;
display: block;
}
.progress-indicator > li:hover {
color: #6e6e6e;
}
.progress-indicator > li .bubble {
border-radius: 1000px;
width: 20px;
height: 20px;
background-color: #bbbbbb;
display: block;
margin: 0 auto 0.5em auto;
border-bottom: 1px solid #888888;
}
.progress-indicator > li .bubble:before, .progress-indicator > li .bubble:after {
display: block;
position: absolute;
top: 9px;
width: 100%;
height: 3px;
content: '';
background-color: #bbbbbb;
}
.progress-indicator > li .bubble:before {
left: 0;
}
.progress-indicator > li .bubble:after {
right: 0;
}
.progress-indicator > li.completed {
color: green;
}
.progress-indicator > li.completed .bubble {
background-color: #65d074;
color: #65d074;
border-color: #247830;
}
...