body {
  margin: 0;
  padding: 0;
  font-family: sans-serif;
  background: #111;
}

h1 {
  text-align: center;
  color: #eee;
}

.skills-container {
  margin-top: 2em;
  display: flex;
  overflow: hidden;
  flex-wrap: wrap;
}

.circular-progress {
  &,
  &:before,
  &:after{
    width: 200px;
    height: 200px;
    border-radius: 50%;
  }
  margin: auto;

  position: relative;
  &:before,
  &:after {
    position: absolute;
    top: 0;
    left: 0;
    box-sizing: border-box;
    text-align: center;
  }
  &:before {
    padding: .5em;
    line-height: 140px;
    font-size: 2rem;
    font-weight: bold;
  }
  &:after {
    font-size: .8rem;
    font-weight: normal;
    text-transform: uppercase;
    line-height: 230px;
  }
}

@function progress($percent){
  $deg: $percent/100 * 180;
  @return #{$deg}+deg;
}

@mixin circular-progress($percent,$skill,$color,$bgcolor){

  $progress: progress($percent);
  background: linear-gradient(0deg, $color 50%, rgba($color,.3) 50%);
  transform: rotate($progress);
  &:before,
  &:after {
    color: $color;
  }
  &:before {
    background: $bgcolor content-box;
    transform: rotate(-#{$progress});
    content: "#{$percent}%";
  }
  &:after {
    background: linear-gradient(transparent 50%, $bgcolor 50%);
    content: "#{$skill}";
    transform: rotate(-#{$progress}) scale(1.1);
  }
}

.html{
  @include circular-progress(40,html,lighten(purple,30),#111);
}
.css{
  @include circular-progress(60,css,lighten(purple,30),#111);
}
.javascript{
  @include circular-progress(90,javascript,lighten(purple,30),#111);
}