Since this is colored by color and not background color we will have to do a little more work to get this filled halfway. Normally to fill a div half way you would do something like:
.starHalfFill {
background: linear-gradient(to right, orange 50%, grey 50%);
}
but since this is a text based color we will have to target that.
.star.star--non-filled {
background: linear-gradient(to right, orange 50%, grey 50%);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
}
Those properties will target the text inside the div and also make the fill color transparent allowing the effect to work.