<div class="container">
  <div class="row">
    <div class="col my-4">
      <div class="d-inline-flex justify-content-center">
        <i class="fa fa-star fa-5x s1 mr-2"></i>
        <i class="fa fa-star fa-5x s1 mr-2"></i>
        <i class="fa fa-star fa-5x s1 mr-2"></i>
        <i class="fa fa-star fa-5x s1 mr-2"></i>
        <span class="fa-mixed mr-2 position-relative">
          <i class="u1 fa fa-fax fa-5x" style="width: 75%;"></i>
          <i class="o1 fa fa-fax fa-5x" style="width: 25%;"></i>
        </span>
        <i class="fa fa-star fa-5x sss mr-2" style="--rate: 80%"></i>
      </div>
    </div>
  </div>
</div>

<div class="container">
  <div class="row">
    <div class="col my-4">
      <div class="d-inline-flex flex-row-reverse justify-content-center position-relative">
        <input class="form-check-input d-none review-form" type="radio" name="rating" id="rate-5" value="5">
        <label class="mx-1" for="rate-5" data-label="非常に満足"><i class="fa fa-fw fa-star fa-lg"></i></label>
        <input class="form-check-input d-none review-form" type="radio" name="rating" id="rate-4" value="4">
        <label class="mx-1" for="rate-4" data-label="満足"><i class="fa fa-fw fa-star fa-lg"></i></label>
        <input class="form-check-input d-none review-form" type="radio" name="rating" id="rate-3" value="3">
        <label class="mx-1" for="rate-3" data-label="普通"><i class="fa fa-fw fa-star fa-lg"></i></label>
        <input class="form-check-input d-none review-form" type="radio" name="rating" id="rate-2" value="2">
        <label class="mx-1" for="rate-2" data-label="不満"><i class="fa fa-fw fa-star fa-lg"></i></label>
        <input class="form-check-input d-none review-form" type="radio" name="rating" id="rate-1" value="1" checked>
        <label class="mx-1" for="rate-1" data-label="非常に不満"><i class="fa fa-fw fa-star fa-lg"></i></label>
      </div>
    </div>
  </div>
</div>

<div class="container">
  <div class="row">
    <div class="col my-4">
      <div class="d-inline-flex flex-row-reverse justify-content-center position-relative">
        <input class="form-check-input d-none review-form" type="checkbox" name="rating" id="like" value="1">
        <label class="mx-1" for="like" data-label="いいね!"><i class="fa fa-fw fa-thumbs-up fa-lg"></i></label>
      </div>
    </div>
  </div>
</div>

<div class="container">
  <div class="row">
    <div class="col my-4">
      <div class="d-inline-flex justify-content-center">
        <span class="fa-mixed position-relative mr-1"><i class="fa-under fa fa-star"></i><i class="fa-over fa fa-star"></i></span>
        <span class="fa-mixed position-relative mr-1"><i class="fa-under fa fa-star"></i><i class="fa-over fa fa-star"></i></span>
        <span class="fa-mixed position-relative mr-1"><i class="fa-under fa fa-star"></i><i class="fa-over fa fa-star"></i></span>
        <span class="fa-mixed position-relative mr-1"><i class="fa-under fa fa-star"></i><i class="fa-over fa fa-star"></i></span>
        <span class="fa-mixed position-relative mr-1"><i class="fa-under fa fa-star m"></i><i class="fa-over fa fa-star w-25 s"></i></span>
      </div>
    </div>
  </div>
</div>

.review-form + label .fa{
  //font-size: 50px;
}
.review-form + label  .fa {
  cursor: pointer;
}
.review-form + label .fa {
 color: #A9A9A9;
} 
.review-form:checked + label .fa,
.review-form:checked ~ label .fa{ 
  color: #FFB03D;
}

 /*.review-form:checked + label:after{
  content: attr(data-label);
  position: absolute;
  left: 180px;
  width: 5rem;
}*/
 .review-form:checked + label:after{
   content: attr(data-label);
   position: absolute;
  font-size: .85rem;
   top: 100%;
   left: 50%;
   transform: translate(-50%, 0);
   width: 100%;
   text-align: center;
}

.review-form + label  .fa {
  font-size: 40px;
  cursor: pointer;
}
input[type="checkbox"] + label .fa:before {
 color: #A9A9A9;
} 
input[type="checkbox"]:checked + label .fa:before {
 color: #FFB03D;
} 


.fa-mixed{

}
.fa-under{
  color: #A9A9A9;
  vertical-align: top;
}
.fa-over{
  position: absolute;
  color: #FFB03D;
  left: 0;
  top: 0;
  width: 100%;
  overflow: hidden;
  z-index:100;
}
.m{
  color:red;
  position: absolute;
  left: 0;
  top: 0;
}

.s1{
  color: red;
}
.u1{

  background: red;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}
.o1{
    position: absolute;
  top:0;
  right: 0;
    background: black;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    transform: rotateY( 180deg );
}
.sss{
  background: linear-gradient( to right, #FFB03D 0%, #FFB03D var(--rate), #A9A9A9 var(--rate) );
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}
View Compiled

External CSS

  1. https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css
  2. https://stackpath.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css

External JavaScript

  1. https://code.jquery.com/jquery-3.3.1.slim.min.js
  2. https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js
  3. https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js