<div class="todo-timeline mb-5 offset-5">
  <div class="row">
    <div class="col-7">
      <h4 class="todo-title">Vertical Timeline</h4>
    </div>
    <div class="row">
      <ul class="v-timeline">
        <li class="col">
          <span class="v-timeline-icon"></span>
          <span class="pl-30 top-bold-label">Test</span>
          <p class="pl-30 mid-paragraph">Test</p>
        </li>
        <li class="col">
          <i class="v-timeline-icon v-not"></i>
          <div class="timeline-text">
            <div class="timeline-valutation">
              <span class="pl-30 top-bold-label">To rate </span>
              <span class="pl-30 mid-paragraph">(Rater)</span>
            </div>
            <div class="timeline-number">
              <span class="pl-30 bottom-link">4</span>
            </div>
          </div>
          <p>
            <a href="#" class="pl-30 bottom-link" aria-label="Rate" title="valuta">Rate</a>
          </p>
        </li>
        <li class="col">
          <span class="v-timeline-icon v-not v-line-color"></span>
          <div class="timeline-text">
            <div class="timeline-valutation">
              <span class="pl-30 top-bold-label">To rate </span>
              <span class="pl-30 mid-paragraph">(Rater)</span>
            </div>
            <div class="timeline-number">
              <span class="pl-30 bottom-link">2</span>
            </div>
          </div>
          <p>
            <a href="#" class="pl-30 bottom-link" aria-label="Condividi" title="Share">Share</a>
          </p>
        </li>
        <li class="col">
          <span class="v-timeline-icon v-last"></span>
          <span class="pl-30 top-bold-label">Complete!</span>
        </li>
      </ul>
    </div>
  </div>
</div>
/****************
VERTICAL TIMELINE ( BOOTSTRAP 4)
****************/
.todo-timeline{
  margin-top: 65px;
  max-width: 320px;
  .timeline-text{
      display: flex;
      justify-content: space-between;

      .timeline-number{
          margin-right: 60px;
      }
  }
  .todo-title{
      font-size: 50px;
      color: #0FA3B1; 
      font-weight: bold;
      white-space: nowrap;
  }
  .v-timeline{
      margin-top: 30px;
      ul{
          position: relative;
      }
      li{
          list-style-type: none;
          padding: 0 0 30px;
          position: relative;
          overflow: hidden;
          .top-bold-label{
              font-size: 1.4rem;
              font-weight: bold;
          }
          .mid-paragraph{
              font-size: 1.4rem;
          }
          .bottom-link{
              color: #0FA3B1;
              font-weight: bold;
              font-size: 1.4rem;
          }
      }
      .pl-30{
          padding-left: 30px;
      }
      .v-timeline-icon{
        &:before{
          content: ' ';
          height: 27px;
          position: absolute;
          top: 0;
          left: 0;
          width: 27px;
          border-radius: 50%;
          background: #0FA3B1;
        }
          &:after {
              content: ' ';
              border-left: 2px solid #0FA3B1;
              display: inline-block;
              position: absolute;
              left: 12px;
              height: 400px;
              z-index: 400;
              top: 27px;
          }
          &.v-last{
              &:before{
                  background: #D9E5D6;
              }
              &:after{
                  height: 0;
              }
          }
          &.v-not{
              &:before{
                  color: #0FA3B1; 
              }
          }
          &.v-line-color{
              &:after{
                  border-left: 2px dashed #D9E5D6;
              }
          }
      }
  }
}
View Compiled

External CSS

  1. https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.1.2/css/bootstrap.min.css

External JavaScript

This Pen doesn't use any external JavaScript resources.