JSFiddle - React, Tailwind, and code Playground
by RomanFF
HTML
<div class="wrap">
<div class="box">
<div class="line1">
<div class="item">
<h1></h1>
<span></span>
</div>
<div class="item"><span></span></div>
<div class="item"><span></span></div>
</div>
<div class="line2">
<div class="item"><span></span></div>
<div class="item"><span></span></div>
</div>
</div>
</div>
CSS
/* треугольник,пунктирная линия верхние блоки - .line1 span:after,.line1 span:before.*/
/*треугольник,пунктирная линия нижние блоки - line2 span:after,.line1 span:before.*/
/* начало и конец волны .box:before,.box:after*/
/* центральные дуги волны.line1 .item:after,.line2 .item:after */
*,
:after,
:before {
box-sizing: border-box;
}
.wrap{
max-width:600px;
border:1px solid black;
margin: 0 auto;
overflow:hidden;
}
.box{
position:relative;
display: flex;
flex-direction: column;
align-items:center;
}
/* отступ верхник блоков от нижних*/
.line1{
margin-bottom: 106px;
}
.line1 .item:before {
content: "";
width: 16px;
height: 16px;
background-color: black;
position: absolute;
border-radius: 50%;
top: 163px;
left: 41px;
z-index: 1;
}
.line2 .item:before {
content: "";
width: 16px;
height: 16px;
background-color: black;
position: absolute;
border-radius: 50%;
top: -75px;
left: 41px;
z-index: 1;
}
.line1 .item:after {
content: "";
width: 130%;
height: 130%;
position: absolute;
left: -15%;
top: 47%;
border-radius: 50%;
border: 5px solid transparent;
border-bottom: 5px solid #ccc;
}
.line2 .item:after {
content: "";
width: 130%;
height: 130%;
position: absolute;
left: -15%;
top: -70%;
border-radius: 50%;
border: 5px solid transparent;
border-top: 5px solid #ccc;
}
/* начало и конец линии */
.box:before {
content: "";
height: 164px;
width: 160px;
position: absolute;
left: -28px;
top: 42.5%;
border-radius: 50%;
border: 5px solid transparent;
border-top: 5px solid #ccc;
}
.box:after {
content: "";
height: 164px;
width: 160px;
position: absolute;
left: 466px;
top: 42.5%;
border-radius: 50%;
border: 5px solid transparent;
border-top: 5px solid #ccc;
}
/* заканчиваются линии */
/* блоки */
.item {
width: 100px;
height: 100px;
display:inline-block;
border:...