<div class="button button--play">
  <div class="button__shape button__shape--one"></div>
  <div class="button__shape button__shape--two"></div>
</div>
//usual reset stuff
*,
*:before,
*:after,
ul,
li,
a,
button,
input,
h1,
h2,
h3,
h4,
h5,
h6,
p,
img,
image,
svg,
path,
g,
canvas {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
  background-color: transparent;
  border: none;
  text-decoration: none;
  font-family: 'Roboto';
  user-select: none;
  list-style: none;
  position: relative;
}

@mixin size($width:inherit, $height:inherit) {
  width: $width;
  height: $height;
}

@mixin flex($vertical, $horizontal, $direction:row) {
  display: flex;
  align-items: $vertical;
  justify-content: $horizontal;
  flex-direction: $direction;
}

@mixin border-radius($topLeft:50%, $topRight:50%, $botLeft:50%, $botRight:50%) {
  border-top-left-radius: $topLeft;
  border-top-right-radius: $topRight;
  border-bottom-left-radius: $botLeft;
  border-bottom-right-radius: $botRight;
}

$deepBlue-5: #f1f3f4;
$deepBlue-10: #e4e6ea;
$deepBlue-20: #CCCED5;
$deepBlue-40: #999EAC;
$deepBlue-60: #666D82;
$deepBlue-80: #333D59;
$deepBlue-90: #192445;
$deepBlue-100: #000C2F;
$deepBlue-120: #000923;

$blue: #2E90EB;
$salmon: #f56b72;

$swipes-shadow-one: 0 1px 3px rgba(0, 0, 0, 0.06),
0 1px 2px rgba(0, 0, 0, 0.12);
$swipes-shadow-two: 0 3px 6px rgba(0, 0, 0, 0.16),
0 3px 6px rgba(0, 0, 0, 0.23);
$swipes-shadow-three: 0 10px 20px rgba(0, 0, 0, 0.19),
0 6px 6px rgba(0, 0, 0, 0.23);
$swipes-shadow-four: 0 14px 28px rgba(0, 0, 0, 0.25),
0 10px 10px rgba(0, 0, 0, 0.22);
$swipes-shadow-five: 0 19px 38px rgba(0, 0, 0, 0.30),
0 15px 12px rgba(0, 0, 0, 0.22);

html,
body {
  @include size(100%);
  min-height: 100vh;
  @include flex(center, center);
  margin: 0;
  padding: 0;
  background-color: #FAFAFA;
  font-family: 'Roboto';
}

.button {
  @include size(150px, 150px);
  @include flex(center, center);
  // transform: scale(.5);
  border: 3px solid #1e90ff;
  
  &--play {
    border-radius: 50%;
  }
  
  &--play & {
    &__shape {
      width: 25px;
      height: 75px;
      background: #1e90ff;
      transition: .3s ease-in-out;

      &--one {
        -webkit-clip-path: polygon(0 0, 100% 25%, 100% 75%, 0% 100%);
        transform: translateX(5px)
      }

      &--two {
        -webkit-clip-path: polygon(0 25%, 100% 50%, 100% 50%, 0 75%);
        transform: translateX(4.9px)
      }
    }
    
  }
  
  &--play#{&}--active & {
    &__shape {
      
      &--one {
        -webkit-clip-path: polygon(0 15%, 50% 15%, 50% 85%, 0% 85%);
        transform: translateX(0px)
      }
      
      &--two {
        -webkit-clip-path: polygon(50% 15%, 100% 15%, 100% 85%, 50% 85%);
        transform: translateX(0px)
      }
    }
  }
}
View Compiled
const playButton = document.querySelector('.button--play');

playButton.addEventListener('click', () => {
  console.log('yo')
  playButton.classList.toggle('button--active')
})
View Compiled

External CSS

This Pen doesn't use any external CSS resources.

External JavaScript

This Pen doesn't use any external JavaScript resources.