Я бы сделал это с одним элементом, чтобы упростить управление анимацией и уменьшить количество кода:
.wifi {
margin:20px;
width:290px;
height:290px;
display:inline-block;
background:
/*the center*/
radial-gradient(circle at center, orange 20px,transparent 21px),
/*some white to hide part of the circles*/
linear-gradient( 45deg, #fff 50%,transparent 0),
linear-gradient(-45deg, #fff 50%,transparent 0),
/*--*/
/*1*/
radial-gradient(circle at center,
transparent 40px,orange 41px,
orange 61px,transparent 62px),
/*2*/
radial-gradient(circle at center,
transparent 80px,orange 81px,
orange 101px,transparent 102px),
/*3*/
radial-gradient(circle at center,
transparent 120px,orange 121px,
orange 141px,transparent 142px);
animation:change 5s linear infinite;
}
@keyframes change {
0%,20% {
background-size: 0,auto, auto, 0, 0,0;
}
20%,40% {
background-size: auto,auto, auto, 0, 0,0;
}
40%,60% {
background-size: auto,auto, auto, auto, 0,0;
}
60%,80% {
background-size: auto,auto, auto, auto, auto,0;
}
80%,100% {
background-size: auto,auto, auto, auto, auto,auto;
}
}
<div class="wifi"></div>
И с некоторой переменной CSS, чтобы упростить настройку значений:
.wifi {
--d:20px; /*the distance between signals*/
--l:20px; /*the lenght of the signals*/
--s:calc(var(--l) + var(--d));
width:calc(7*var(--s) + var(--l));
height:calc(7*var(--s) + var(--l));
display:inline-block;
background:
/*the center*/
radial-gradient(circle at center,
orange var(--l),transparent calc(var(--l) + 1px)),
/*some white to hide part of the circles*/
linear-gradient( 45deg, #fff 50%,transparent 0),
linear-gradient(-45deg, #fff 50%,transparent 0),
/*--*/
/*1*/
radial-gradient(circle at center,
transparent calc(1*var(--s)),
orange calc(1*var(--s) + 1px),
orange calc(1*var(--s) + var(--l)),
transparent calc(1*var(--s) + var(--l) + 1px)),
/*2*/
radial-gradient(circle at center,
transparent calc(2*var(--s)),
orange calc(2*var(--s) + 1px),
orange calc(2*var(--s) + var(--l)),
transparent calc(2*var(--s) + var(--l) + 1px)),
/*3*/
radial-gradient(circle at center,
transparent calc(3*var(--s)),
orange calc(3*var(--s) + 1px),
orange calc(3*var(--s) + var(--l)),
transparent calc(3*var(--s) + var(--l) + 1px));
animation:change 5s linear infinite;
}
@keyframes change {
0%,20% {
background-size: 0,auto, auto, 0, 0,0;
}
20%,40% {
background-size: auto,auto, auto, 0, 0,0;
}
40%,60% {
background-size: auto,auto, auto, auto, 0,0;
}
60%,80% {
background-size: auto,auto, auto, auto, auto,0;
}
80%,100% {
background-size: auto,auto, auto, auto, auto,auto;
}
}
<div class="wifi"></div>
<div class="wifi" style="--l:10px;"></div>
<div class="wifi" style="--l:10px;--d:5px"></div>