The answer above is correct (thank you) but I think my calculations didn’t take into account zero so my example codepen should have been 360 divided by 22 (unless I’m mistaken again or having a brain freeze)
You mean you want the results out of 110 and not 21 as before?
That means you are going to have write 110 css rules all with different values to display all those. That really would be a job better done with the help of JS I think?
No the linear gradient would be 360degrees for a full circle so each step is 360 / 22 + 90.
90 is the offset for the gradient effect and 22 items allows for zero.
The gradient is basically 2 half circles so you add 16.36 to each of the second gradient rules until you get to 11 and then from 11 onwards you deduct 16.36 from 90 the first part of the gradient to colour the second half of the circle.
e.g.
That gives a value of 16.36 + 90 = 106.36 for the first item.
.progress--circle.progress--1:after {
background-image: linear-gradient(
90deg,
#ddd 50%,
transparent 50%,
transparent
),
linear-gradient(106.36deg, #63b8ff 50%, #ddd 50%, #ddd);
}
You keep adding the 16.36 in the last part of that gradient until you reach half way at number 11 which then equals 270deg .
Then you deduct 16.36 from 90 for the second half fro number 11 onwards.
e.g.
.progress--circle.progress--11:after {
background-image: linear-gradient(
-73.6deg,
#63b8ff 50%,
transparent 50%,
transparent
),
linear-gradient(270deg, #63b8ff 50%, #ddd 50%, #ddd);
}
I notice my original calculations were a bit out so have updated the codepen.