JSFiddle - React, Tailwind, and code Playground
HTML
<div class="steps">
<input type="radio" id="r_1" name="v">
<label for="r_1"></label>
<input type="radio" id="r_2" name="v">
<label for="r_2"></label>
<input type="radio" id="r_3" name="v">
<label for="r_3"></label>
</div>
SCSS
.steps {
position: relative;
max-width: 400px;
margin: 40px auto;
display: flex;
align-items: center;
justify-content: space-between;
&:before {
content:"";
display: block;
width: 90%;
position: absolute;
left: 5%;
top: 50%;
margin-top: -10px;
height: 20px;
background-color: #ccc;
box-shadow: inset 0 6px 4px -4px rgba(0, 0, 0, .3);
}
input {
display: none;
}
label {
display: block;
width: 60px;
height: 60px;
border-radius: 50%;
background-color: #ccc;
position: relative;
z-index: 1;
box-shadow: inset 0 6px 4px -4px rgba(0, 0, 0, .3);
transition: box-shadow .3s, background-color .3s;
}
input:checked + label {
background-color: #6FC06D;
box-shadow: none;
}
}