<div class="demo">
  <div class="demo__content">
    <h2 class="demo__heading">What do you need help with?</h2>
    <div class="demo__elems">
      <div class="demo__elem demo__elem-1">With advertising online</div>
      <div class="demo__elem demo__elem-2">With a website</div>
      <div class="demo__elem demo__elem-3">I need help with both</div>
      <span class="demo__hover demo__hover-1"></span>
      <span class="demo__hover demo__hover-2"></span>
      <span class="demo__hover demo__hover-3"></span>
      <div class="demo__highlighter">
        <div class="demo__elems">
          <div class="demo__elem">With advertising online</div>
          <div class="demo__elem">With a website</div>
          <div class="demo__elem">I need help with both</div>
        </div>
      </div>
      <div class="demo__examples">
        <div class="demo__examples-nb">
          <div class="nb-inner">
            <div class="example example-adv">
              <div class="example-adv">
                <div class="example-adv__top">
                  <div class="example-adv__top-search"></div>
                </div>
                <div class="example-adv__mid"></div>
                <div class="example-adv__line"></div>
                <div class="example-adv__line long"></div>
              </div>
            </div>
            <div class="example example-web">
              <div class="example-web__top"></div>
              <div class="example-web__left"></div>
              <div class="example-web__right">
                <div class="example-web__right-line"></div>
                <div class="example-web__right-line"></div>
                <div class="example-web__right-line"></div>
                <div class="example-web__right-line"></div>
                <div class="example-web__right-line"></div>
                <div class="example-web__right-line"></div>
              </div>
            </div>
            <div class="example example-both">
              <div class="example-both__half example-both__left">
                <div class="example-both__left-top"></div>
                <div class="example-both__left-mid"></div>
              </div>
              <div class="example-both__half example-both__right">
                <div class="example-both__right-top"></div>
                <div class="example-both__right-mid"></div>
              </div>
            </div>
          </div>
        </div>
      </div>
    </div>
  </div>
</div>
<p class="check-out">Check out my other <a href="https://codepen.io/suez/public/" target="_blank">pens</a></p>
@import "compass/css3";

*, *:before, *:after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}
$openSans: 'Open Sans', Helvetica, Arial, sans-serif;
html, body {
  font-size: 62.5%;
  height: 100%;
  
  @media (max-width: 768px) {
    font-size: 50%;
  }
}
body {
  background: #7B00FF;
}

$liHeight: 7rem;
$contentPTop: 22rem;
$trans: 0.4s;
$transFast: 0.2s;
$cub: cubic-bezier(.59,.04,.3,1.43);
@mixin hoverLi($y) {
  transform: translateY($y);

    .demo__elems {
      transform: translateY(0 - $y);
    }
}
@mixin notFirst {
  .demo__examples {
    .example-adv__top,
    .example-adv__mid,
    .example-adv__line {
      transform: translateY(100%);
      opacity: 0;
      transition: transform $transFast, opacity $transFast;
    }
  }
}
.demo {
  position: absolute;
  top: 50%;
  left: 50%;
  margin-left: -18rem;
  margin-top: -25rem;
  width: 36rem;
  height: 50rem;
  padding-top: $contentPTop;
  background: #FFFFFF;
  box-shadow: 0 0.5rem 5rem rgba(0,0,0,0.4);
  font-family: $openSans;
  
  &__content {
    position: relative;
    height: 100%;
  }
  &__heading {
    font-size: 2.2rem;
    line-height: $liHeight;
    padding-left: 3rem;
    color: #313131;
  }
  &__elems {
    position: relative;
    height: 21rem;
  }
  &__elem {
    position: relative;
    height: $liHeight;
    font-size: 1.8rem;
    line-height: $liHeight;
    padding-left: 3rem;
    border-top: 1px solid #e7e7e7;
  }
  
  &__hover {
    z-index: 2;
    position: absolute;
    left: 0;
    width: 100%;
    height: $liHeight;
    cursor: pointer;
    
    &-1 {
      top: 0;

      &:hover ~ {
        .demo__highlighter {
          @include hoverLi(0);
        }
      }
    }
    &-2 {
      top: $liHeight;

      &:hover ~ {
        .demo__highlighter {
          @include hoverLi($liHeight);
        }
        
        @include notFirst;
        
        .demo__examples {
          .example-web__top,
          .example-web__left {
            transform: scale(1);
            opacity: 1;
            transition: transform $trans $transFast, opacity $trans $transFast;
          }
          .example-web__right-line {
            transform: scale(1);
            
            @for $i from 1 through 6 {
              &:nth-child(#{$i}) {
                transition: transform ($trans) 0.06s * ($i - 1);
              }
            }
          }
        }
      }
    }
    &-3 {
      top: $liHeight*2;
      
      &:hover ~ {
        .demo__highlighter {
          @include hoverLi($liHeight*2);
        }
        
        @include notFirst;
        
        .demo__examples {
          .example-both {
            background: #39A5F7;
            transition: background-color $trans $transFast;
            
            &__half {
              opacity: 1;
              transform: scale(1);
              transition: transform $trans $transFast, opacity $trans $transFast;
            }
          }
        }
      }
    }
  }
  
  &__highlighter {
    z-index: 1;
    position: absolute;
    top: 0;
    left: -1rem;
    width: 38rem;
    height: $liHeight;
    background: #39A5F7;
    overflow: hidden;
    box-shadow: 0 0.3rem 0.2rem rgba(0,0,0,0.3);
    transition: transform 0.5s $cub;
    
    .demo__elems {
      position: absolute;
      top: 0;
      left: 1rem;
      transition: transform 0.5s $cub;
    }
    .demo__elem {
      color: #fff;
      border: none;
    }
  }
  
  &__examples {
    position: absolute;
    top: 0 - $contentPTop - $liHeight;
    left: 0;
    width: 100%;
    height: $contentPTop;
    padding: 5.5rem 7rem 0 7rem;
    
    &-nb {
      position: relative;
      height: 13.5rem;
      padding: 0 1.5rem;
      border-bottom: 1rem solid #424242;
    }
  }
}

.nb-inner {
  position: relative;
  width: 100%;
  height: 12.5rem;
  border: 0.7rem solid #424242;
  overflow: hidden;
}
.example {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  
  &-adv {
    
    &__top {
      height: 2rem;
      background: #EFEFEF;
      padding: 0.5rem 2rem;
      margin-bottom: 2rem;
      transition: transform $trans $transFast, opacity $trans $transFast;
      
      &-search {
        position: relative;
        height: 100%;
        background: #fff;
        
        &:after {
          content: "";
          position: absolute;
          top: 0;
          right: 0;
          width: 2.5rem;
          height: 100%;
          background: #02ADF6;
        }
      }
    }
    
    &__mid {
      position: relative;
      width: 13.6rem;
      height: 3.5rem;
      background: #FFF7BD;
      margin: 0 auto 0.7rem;
      transition: transform $trans $transFast, opacity $trans $transFast;
      
      &:before,
      &:after {
        content: "";
        position: absolute;
        left: 1rem;
        height: 0.7rem;
      }
      &:before {
        top: 0.6rem;
        width: 9rem;
        background: #02ADF6;
      }
      &:after {
        bottom: 0.6rem;
        width: 11.6rem;
        background: #fff;
      }
    }
    
    &__line {
      height: 0.5rem;
      background: #EFEFEF;
      width: 6.8rem;
      margin-left: 2rem;
      margin-bottom: 0.7rem;
      transition: transform $trans $transFast, opacity $trans $transFast;
      
      &.long {
        width: 13.6rem;
      }
    }
  }
  
  &-web {
    padding: 1.5rem 2rem 0;
    font-size: 0;
    
    &__top {
      background: #EF4239;
      width: 100%;
      height: 1.5rem;
      margin-bottom: 0.5rem;
      transition: transform $transFast;
      transform: translateY(-5rem);
    }
    
    &__left {
      display: inline-block;
      width: 6.5rem;
      height: 7rem;
      background: #C6C6C6;
      margin-right: 0.6rem;
      transition: transform $transFast, opacity $transFast;
      transform: scale(0.7);
      opacity: 0;
    }
    &__right {
      display: inline-block;
      width: 6.5rem;
      height: 7rem;
      
      &-line {
        width: 100%;
        height: 0.8rem;
        background: #EFEFEF;
        margin-bottom: 0.4rem;
        transform: translateX(10rem);
        
        @for $i from 1 through 6 {
          &:nth-child(#{$i}) {
            transition: transform ($transFast - 0.2s) 0.04s * ($i - 1);
          }
        }
      }
    }
  }

  &-both {
    padding: 1rem 1rem;
    font-size: 0;
    transition: background-color $transFast;
    
    &__half {
      position: relative;
      display: inline-block;
      width: 7.2rem;
      height: 100%;
      padding: 0.5rem;
      background: #fff;
      transition: transform $transFast, opacity $transFast;
      transform: scale(0.8);
      opacity: 0;
    }
    
    &__left {
      margin-right: 1.2rem;
      padding-top: 3rem;
      
      &-top {
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        background: #EFEFEF;
        height: 2.4rem;
        padding: 0.6rem 0.5rem;
        
        &:before {
          content: "";
          display: inline-block;
          width: 70%;
          height: 100%;
          background: #fff;
        }
        &:after {
          content: "";
          display: inline-block;
          width: 30%;
          height: 100%;
          background: #02ADF6;
        }
      }
      
      &-mid {
        height: 3.5rem;
        background: #FFF7BD;
        margin-bottom: 0.4rem;
      }
      
      &:before,
      &:after {
        content: "";
        display: block;
        width: 6.2rem;
        height: 0.7rem;
        background: #EFEFEF;
      }
      &:before {
        position: absolute;
        bottom: 0.5rem;
        left: 0.5rem;
      }
      &:after {
        width: 3.6rem;
      }
    }
    
    &__right {

      &-top {
        width: 100%;
        height: 1.5rem;
        background: #EF4239;
        margin-bottom: 0.5rem;
      }
      &-mid {
        width: 100%;
        height: 4rem;
        background: #C6C6C6;
        margin-bottom: 0.4rem;
      }
      
      &:before,
      &:after {
        content: "";
        display: block;
        width: 6.2rem;
        height: 0.7rem;
        background: #EFEFEF;
      }
      
      &:before {
        position: absolute;
        bottom: 0.5rem;
        left: 0.5rem;
      }
    }
  }
}

.check-out {
  position: absolute;
  bottom: 0.5rem;
  right: 0.5rem;
  font-size: 1.5rem;
  color: #fff;
  font-family: $openSans;
  
  a {
    color: #4DDBFC;
  }
  
}
View Compiled
// hello

External CSS

  1. https://fonts.googleapis.com/css?family=Open+Sans

External JavaScript

  1. //cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js