JSFiddle - React, Tailwind, and code Playground
HTML
<ul class="cert-steps">
<li><input type="radio" name="step" value="1" id="step-1"><label for="step-1">Выбор сертификата</label>
</li>
<li><input type="radio" name="step" value="2" id="step-2"><label for="step-2">Доставка и дополнения</label>
</li>
<li><input type="radio" name="step" value="3" id="step-3"><label for="step-3">Оформление</label></li>
</ul>
CSS
.cert-steps input[type="radio"]:checked + label:after {
background-image: linear-gradient(135deg, #f093fb 0%, #f5576c 100%);
}
.cert-steps input[type="radio"]:checked + label {
color: white;
background-image: linear-gradient(180deg, #f093fb 0%, #f5576c 100%);
}
.cert-steps label {
background-image: linear-gradient(180deg, #fdfbfb 0%, #ebedee 100%);
padding: 0 20px;
line-height: 50px;
display: inline-block;
position: relative;
z-index: 3;
/* border:1px solid #ddd; */
height: 50px;
margin: 0;
font-size: 14px;
border-radius: 5px;
box-shadow: 4px 3px 10px -7px hsla(200, 8%, 46%, 1);
}
.cert-steps label:after {
content: "";
position: absolute;
transform: scaleX(0.5) rotate(45deg);
height: 37px;
width: 38px;
right: -17px;
top: 7px;
border-radius: 5px;
z-index: -1;
background-image: linear-gradient(135deg, #fdfbfb 0%, #ebedee 100%);
box-shadow: 4px 3px 10px -7px hsla(200, 8%, 46%, 1);
}
.cert-steps label:hover:after {
background-image: linear-gradient(135deg, #f5f7fa 0%, #c3cfe2 100%);
}
.cert-steps label:hover {
background-image: linear-gradient(180deg, #f5f7fa 0%, #c3cfe2 100%);
}
.cert-steps input {
display: none;
}
.cert-steps {
list-style: none;
margin: 20px auto;
padding: 0;
display: flex;
justify-content: center;
}
.cert-steps li:first-child{
z-index: 5;
}
.cert-steps li:last-child label:after{
display: none;
}
.cert-steps li:last-child{
z-index: 2;
}
.cert-steps li {
padding: 0;
margin: 0;
z-index: 3;
}