<div class="skills">
  <ul class="lines">
    <li class="line l--0">
      <span class="line__label title">
        Skill level:
      </span>
    </li>
    <li class="line l--25">
      <span class="line__label">
        The basics
      </span>
    </li>
    <li class="line l--50">
      <span class="line__label">
        Advanced
      </span>
    </li>
    <li class="line l--75">
      <span class="line__label">
        Seasoned
      </span>
    </li>
    <li class="line l--100">
      <span class="line__label">
        Expert
      </span>
    </li>
  </ul>
  
  <div class="charts">
    <div class="chart chart--dev">
      <span class="chart__title">Development</span>
      <ul class="chart--horiz">
        <li class="chart__bar" style="width: 98%;">
          <span class="chart__label">
            HTML5
          </span>
        </li>
        <li class="chart__bar" style="width: 98%;">
          <span class="chart__label">
            CSS3 & SCSS & CSS in JS
          </span>
        </li>
        <li class="chart__bar" style="width: 70%;">
          <span class="chart__label">
            JavaScript
          </span>
        </li>
        <li class="chart__bar" style="width: 60%;">
          <span class="chart__label">
            ReactJS
          </span>
        </li>
        <li class="chart__bar" style="width: 25%;">
          <span class="chart__label">
            AngularJS
          </span>
        </li>
        <li class="chart__bar" style="width: 60%;">
          <span class="chart__label">
            jQuery
          </span>
        </li>
        <li class="chart__bar" style="width: 55%;">
          <span class="chart__label">
            NodeJS
          </span>
        </li>
        <li class="chart__bar" style="width: 50%;">
          <span class="chart__label">
            Grunt / Gulp / Webpack
          </span>
        </li>
        <li class="chart__bar" style="width: 40%;">
          <span class="chart__label">
            .NET
          </span>
        </li>
        <li class="chart__bar" style="width: 60%;">
          <span class="chart__label">
            Umbraco
          </span>
        </li>
        <li class="chart__bar" style="width: 60%;">
          <span class="chart__label">
            Sitecore
          </span>
        </li>
      </ul>
    </div>
    
    <div class="chart chart--prod">
      <span class="chart__title">Productivity</span>
      <ul class="chart--horiz">
      <li class="chart__bar" style="width: 75%;">
        <span class="chart__label">
          Git + Github, Bitbucket & Sourcetree
        </span>
      </li>
      <li class="chart__bar" style="width: 80%;">
        <span class="chart__label">
          Microsoft Office
        </span>
      </li>
    </ul>
    </div>
    
    <div class="chart chart--design">
      <span class="chart__title">Design</span>
      <ul class="chart--horiz">
      <li class="chart__bar" style="width: 40%;">
        <span class="chart__label">
          Sketch
        </span>
      </li>
      <li class="chart__bar" style="width: 40%;">
        <span class="chart__label">
          Photoshop
        </span>
      </li>
      <li class="chart__bar" style="width: 35%;">
        <span class="chart__label">
          Illustrator
        </span>
      </li>
      <li class="chart__bar" style="width: 80%;">
        <span class="chart__label">
          User Experience
        </span>
      </li>
    </ul>
    </div>
  </div>
</div>
//Setup
@import url(https://fonts.googleapis.com/css?family=Open+Sans); 

@mixin stagger-anim-delay($i, $initial-delay, $stagger-delay) {
  @while $i > 0 {
    &:nth-of-type(#{$i}) {
      animation-delay: $initial-delay + $stagger-delay * $i;
    }
    $i: $i - 1;
  }
}

$baseFontSize: 16px;
$baseLineHeight: 1;

$chartGap: 10px;
$chartCount: 3;
$chartOneCount: 11;
$chartTwoCount: 2;
$chartThreeCount: 4;
$totalChartCount: $chartOneCount + $chartTwoCount + $chartThreeCount;

$titleGap: 10px;
$titleHeight: $baseFontSize * $baseLineHeight + $titleGap;

$chartBarHeight: 30px;
$chartBarGap: 10px;

body {
  margin: 20px 0 40px;
  font-family: "Open Sans", sans-serif;
  color: #282828;
}

//Demo
.skills {
  width: 80%;
  max-width: 960px;
  height: 780px;
  height: $totalChartCount * ($chartBarHeight + $chartBarGap) + ($chartCount * ($chartGap + $titleHeight));
  margin: auto;

  position: relative;
}

.lines {
  height: 100%;
  position: relative;
}
.line {
  height: inherit;
  width: 2px;

  position: absolute;

  background: rgba(#eee, 0.6);

  &.l--0 {
    left: 0;
  }
  &.l--25 {
    left: 25%;
  }
  &.l--50 {
    left: 50%;
  }
  &.l--75 {
    left: 75%;
  }
  &.l--100 {
    left: calc(100% - 1px);
  }
}
.line__label {
  display: block;
  width: 100px;
  text-align: center;

  position: absolute;
  bottom: -20px;
  right: -50px;

  &.title {
    text-transform: uppercase;
    font-weight: bold;
  }
}

.charts {
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  z-index: 10;
}

.chart {
  &:not(:first-child) {
    margin-top: $chartGap;
  }
}

.chart__title {
  display: block;
  margin: 0 0 10px;

  font-weight: bold;

  opacity: 0;

  animation: 1s anim-lightspeed-in ease forwards;

  .chart--dev & {}
  .chart--prod & {
    animation-delay: 3.3s;
  }
  .chart--design & {
    animation-delay: 4.5s;
  }
}

.chart--horiz {
  overflow: hidden;
}

.chart__bar {
  $border-rad: 4px;
  height: $chartBarHeight;
  margin-bottom: $chartBarGap;

  background: linear-gradient(to left, #4cb8c4, #3cd3ad);
  border-top-right-radius: $border-rad;
  border-bottom-right-radius: $border-rad;
  opacity: 0;

  animation: 1s anim-lightspeed-in ease forwards;

  .chart--dev & {
    @include stagger-anim-delay($chartOneCount, 0.5s, 0.2s);
  }
  .chart--prod & {
    @include stagger-anim-delay($chartTwoCount, 3.8s, 0.2s);
  }
  .chart--design & {
    @include stagger-anim-delay($chartThreeCount, 5s, 0.2s);
  }
}

.chart__label {
  padding-left: 10px;
  line-height: 30px;
  color: white;
}

//Keyframes
@keyframes anim-lightspeed-in {
  0% {
    transform: translateX(-200%);
    opacity: 1;
  }
  100% {
    transform: translateX(0);
    opacity: 1;
  }
}
View Compiled
Run Pen

External CSS

This Pen doesn't use any external CSS resources.

External JavaScript

  1. https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.3.14/angular.min.js