body {
  height: 100vh;
  display: flex;
  justify-content: center;
  align-items: center;
  font-family: sans-serif;
}

a {
  padding: 2rem 3rem;
  text-transform: uppercase;
  background-color: blueviolet;
  color: #fff;
  font-size: 1.5rem;
  position: relative;
  text-decoration: none;
}

a::before {
  content: "button";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: crimson;
  /* center our content */
  display: flex;
  justify-content: center;
  align-items: center;
  /* Let's provide our rotation/animation */
  transform: rotateX(270deg);
  transform-origin: top;
  transition: all 0.5s;
}

a::after {
  content: "button";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgb(14, 231, 14);
  display: flex;
  justify-content: center;
  align-items: center;
  transform: rotateX(270deg);
  transform-origin: top;
  transition: all 0.5s;
  transition-delay: 0.25s;
}

a:hover:before,
a:hover:after {
  transform: rotateX(0);
}
