<a class="button switch">
  <div class="arrow"></div>
</a>

<a class="button flip">
  <div class="arrow"></div>
</a>
$transition : .5s;
$width : 4rem;
$radius : 1rem;
$angle : 35deg;
$bg : whitesmoke;
$buttonbg : dodgerblue;

.button {
  background: $buttonbg;
  padding: 3rem;
  border-radius: $width;
  background: $buttonbg;
  cursor: pointer;
  transition: $transition/2;
  margin: 2rem;

  &:active {
    background: darken($buttonbg, 20%);
    transition: 0;
  }
}

.arrow {
  position: relative;
  background: $bg;
  width: $width;
  height: $width/10;  
  transition: $transition;
  border-radius: $radius;
  transform-origin: right center;

  &:before { transform: rotate(-$angle); }
  &:after { transform: rotate($angle); }

  &:before, &:after {
      display: block;
      content: "";
      position: absolute;
      left: 0;
      background: $bg;
      width: $width/2;
      height: $width/10;
      transform-origin: $width/20 center;
      transition: $transition;
      border-radius: $radius;
    }
}

.switch.right {
  .arrow {  
    &:before, &:after {
      left: $width - $width/20;
    }
    &:before { transform: rotate($angle*4); }
    &:after { transform: rotate(-$angle*4); }
  }
}

.flip { transform: translateZ(1rem) perspective(600); }

.flip.right {
  transform: translateZ(1rem) perspective(600) rotateY(180deg);  
}

/* ------------------------ */
html, body { height: 100%; }
body {
  display: flex;
  justify-content: center;
  align-items: center;
  background: whitesmoke;
  -webkit-backface-visibility: hidden;
}
View Compiled
$(".button").click(function(){
    $(this).toggleClass("right");
});

External CSS

This Pen doesn't use any external CSS resources.

External JavaScript

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