.container
  button.btn(href="#") hover me
View Compiled
//Lato font
@import url("https://fonts.googleapis.com/css?family=Lato:400,700");

//color/ui color variables
$white: #ececec;
$black: #111111;
$red1: #e74c3c;
$red2: #c92918;
$colorPrimary: $red1;
$colorSecondary: $red2;
$cubic-bezier: cubic-bezier(0.68, -0.55, 0.265, 1.55);

//split button mixin
@mixin btn__split($foregroundColor, $backgroundColor, $textColor) {
  button.btn {
    text-transform: uppercase;
    text-decoration: none;
    font-weight: 700;
    border: 0;
    //display: block;
    position: relative;
    letter-spacing: 0.15em;
    margin: 0 auto;
    padding: 1rem 2.5rem;
    background: transparent;
    outline: none;
    font-size: 28px;
    color: $textColor;
    transition: all 0.5s $cubic-bezier 0.15s;
    &::after,
    &::before {
      border: 0;
      content: "";
      position: absolute;
      height: 40%;
      width: 10%;
      transition: all 0.5s $cubic-bezier;
      z-index: -2;
      border-radius: 50%;
      //animation: grow 1s infinite;
    }
    &::before {
      border: 0;
      background-color: $backgroundColor;
      top: -0.75rem;
      left: 0.5rem;
      animation: topAnimation 2s $cubic-bezier 0.25s infinite alternate;
    }
    &::after {
      background-color: $foregroundColor;
      top: 3rem;
      left: 13rem;
      animation: bottomAnimation 2s $cubic-bezier 0.5s infinite alternate;
    }
    &:hover {
      color: white;
      &::before,
      &::after {
        top: 0;
        //transform: skewx(-10deg);
        height: 100%;
        width: 100%;
        border-radius: 0;
        animation: none;
      }
      &::after {
        left: 0rem;
      }
      &::before {
        top: 0.5rem;
        left: 0.35rem;
      }
    }
  }
}

* {
  box-sizing: border-box;
}
body,
html {
  height: 100%;
}

body {
  font-family: "Lato", sans-serif;
  color: $black;
  display: flex;
  align-items: center;
  align-content: center;
  justify-content: center;
}

.container {
  width: auto;
  margin: auto;
}
// a {
//  text-transform: uppercase;
//  text-decoration: none;
//  font-weight: 700;
// }
@keyframes topAnimation {
  from {
    transform: translate(0rem, 0);
  }
  to {
    transform: translate(0rem, 3.5rem);
  }
}
@keyframes bottomAnimation {
  from {
    transform: translate(-11.5rem, 0);
  }
  to {
    transform: translate(0rem, 0);
  }
}

@include btn__split($colorPrimary, $colorSecondary, $black);
View Compiled

External CSS

This Pen doesn't use any external CSS resources.

External JavaScript

This Pen doesn't use any external JavaScript resources.