div
  a(href="#")
    p
      span.bg
      span.base
      span.text Play Valorant
  a.white(href="#")
    p
      span.bg
      span.base
      span.text Play Valorant
  a.transparent(href="#")
    p
      span.bg
      span.base
      span.text Play Valorant
View Compiled
$base: #0f1923;
$white: #ece8e1;
$pink: #ff4655;
$height: 54px;
$transition: 0.3s ease-out all;

body {
  background: $base;
  font-family: "Muli";
}

div {
  display: flex;
  height: 100vh;
  align-items: center;
  justify-content: center;
  flex-flow: column;
  & a {
    width: 100%;
    max-width: 240px;
    height: $height;
    padding: 8px;
    font-size: 0.8rem;
    font-weight: 900;
    color: $pink;
    text-align: center;
    text-transform: uppercase;
    text-decoration: none;
    box-shadow: 0 0 0 1px inset rgba($white, 0.3);
    position: relative;
    margin: 10px 0;
    &.white:hover > p {
      color: $white;
    }
    &.white > p {
      background: $white;
      color: $base;
      & span.base {
        border: 1px solid transparent;
      }
    }
    &.transparent:hover > p {
      color: $white;
      & span.text {
        box-shadow: 0 0 0 1px $white;
      }
    }
    &.transparent > p {
      background: $base;
      color: $white;
      & span.base {
        border: 1px solid $white;
      }
    }
    &:after,
    &:before {
      content: "";
      width: 1px;
      position: absolute;
      height: 8px;
      background: $base;
      left: 0;
      top: 50%;
      transform: translateY(-50%);
    }
    &:before {
      right: 0;
      left: initial;
    }
    & p {
      margin: 0;
      height: $height;
      line-height: $height;
      box-sizing: border-box;
      z-index: 1;
      left: 0;
      width: 100%;
      position: relative;
      overflow: hidden;
      & span.base {
        box-sizing: border-box;
        position: absolute;
        z-index: 2;
        width: 100%;
        height: 100%;
        left: 0;
        border: 1px solid $pink;
        &:before {
          content: "";
          width: 2px;
          height: 2px;
          left: -1px;
          top: -1px;
          background: $base;
          position: absolute;
          transition: $transition;
        }
      }
      & span.bg {
        left: -5%;
        position: absolute;
        background: $pink;
        width: 0;
        height: 100%;
        z-index: 3;
        transition: $transition;
        transform: skewX(-10deg);
      }
      & span.text {
        z-index: 4;
        width: 100%;
        height: 100%;
        position: absolute;
        left: 0;
        top: 0;
        &:after {
          content: "";
          width: 4px;
          height: 4px;
          right: 0;
          bottom: 0;
          background: $base;
          position: absolute;
          transition: $transition;
          z-index: 5;
        }
      }
    }
    &:hover {
      color: $white;
      & span.bg {
        width: 110%;
      }
      & span.text:after {
        background: $white;
      }
    }
  }
}
View Compiled

External CSS

This Pen doesn't use any external CSS resources.

External JavaScript

This Pen doesn't use any external JavaScript resources.