JSFiddle - React, Tailwind, and code Playground
HTML
<div class="visible">
<div class="circle">
</div>
<ol>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
</ol>
</div>
CSS
.visible {
width: 80%;
height: 300px;
margin: 0 auto;
position: relative;
overflow: hidden;
}
.circle {
position: absolute;
top: 150px;
left: -200px;
right: -200px;
bottom: -450px;
border: 2px solid #000;
border-radius: 100%;
}
.visible ol {
display: flex;
justify-content: space-around;
width: 100%;
margin: 0;
padding: 0;
position: relative;
list-style: none;
counter-reset: cnt;
}
.visible ol li {
margin: 140px 0 0 0;
padding: 0;
width: 20px;
height: 20px;
line-height: 20px;
text-align: center;
background: #eee;
border-radius: 100%;
}
.visible ol li:nth-child(1),
.visible ol li:nth-child(5){
transform: translateY(33px);
}
.visible ol li:nth-child(2),
.visible ol li:nth-child(4){
transform: translateY(10px);
}
.visible ol li:before {
content: counter(cnt);
counter-increment: cnt;
}