WEB PARTS

Nice!
COPY
Nice!
COPY
* {
  margin: 0;
  padding: 0;
  list-style: none;
  box-sizing: border-box;
}

.btn {
  text-align: center;
  padding: 100px 20px;
}

.btn a {
  display: inline-block;
  width: 150px;
  height: 150px;
  position: relative;
}

.btn a::before, .btn a::after {
  content: "";
  display: block;
  -webkit-transition: 0.3s;
  transition: 0.3s;
  border-radius: 100%;
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  margin: auto;
}

.btn a::before {
  width: 65%;
  height: 65%;
  border: solid 2px #000;
}

.btn a::after {
  content: "";
  display: block;
  width: 0%;
  height: 0%;
  background: #000;
  border-radius: 100%;
  mix-blend-mode: difference;
}

.btn a img {
  position: absolute;
  top: 0;
  left: 0;
  mix-blend-mode: difference;
  right: 0;
  bottom: 0;
  margin: auto;
  -webkit-transition: 0.3s;
  transition: 0.3s;
  width: 100%;
  height: 100%;
  -webkit-animation: btn 15s infinite linear;
          animation: btn 15s infinite linear;
}

@-webkit-keyframes btn {
  0% {
    -webkit-transform: rotate(0);
            transform: rotate(0);
  }
  100% {
    -webkit-transform: rotate(360deg);
            transform: rotate(360deg);
  }
}

@keyframes btn {
  0% {
    -webkit-transform: rotate(0);
            transform: rotate(0);
  }
  100% {
    -webkit-transform: rotate(360deg);
            transform: rotate(360deg);
  }
}

.btn a svg {
  width: 40%;
  height: 40%;
  position: absolute;
  top: 0;
  left: 0;
  mix-blend-mode: difference;
  stroke-width: 4;
  right: 0;
  fill: none;
  bottom: 0;
  margin: auto;
  -webkit-transition: 0.3s;
  transition: 0.3s;
  stroke: #000;
}

.btn a:hover img {
  width: 80%;
  height: 80%;
  -webkit-animation-duration: 100s;
          animation-duration: 100s;
  animation-direction: reverse;
}

.btn a:hover svg {
  stroke: #fff;
  stroke-width: 6;
  width: 25%;
}

.btn a:hover::before {
  width: 90%;
  height: 90%;
  -webkit-animation: bg_1 0.3s linear;
          animation: bg_1 0.3s linear;
}

@-webkit-keyframes bg_1 {
  0% {
    width: 65%;
    height: 65%;
  }
  70% {
    width: 100%;
    height: 100%;
  }
  100% {
    width: 90%;
    height: 90%;
  }
}

@keyframes bg_1 {
  0% {
    width: 65%;
    height: 65%;
  }
  70% {
    width: 100%;
    height: 100%;
  }
  100% {
    width: 90%;
    height: 90%;
  }
}

.btn a:hover::after {
  width: 50%;
  height: 50%;
  -webkit-animation: bg_2 0.2s linear;
          animation: bg_2 0.2s linear;
}

@-webkit-keyframes bg_2 {
  0% {
    width: 0%;
    height: 0%;
  }
  100% {
    width: 50%;
    height: 50%;
  }
}

@keyframes bg_2 {
  0% {
    width: 0%;
    height: 0%;
  }
  100% {
    width: 50%;
    height: 50%;
  }
}
/*# sourceMappingURL=style.css.map */
Nice!
COPY
* {
  margin: 0;
  padding: 0;
  list-style: none;
  box-sizing: border-box;
}

.btn {
  text-align: center;
  padding: 100px 20px;
  a {
    display: inline-block;
    width: 150px;
    height: 150px;
    position: relative;
    &::before,
    &::after {
      content: "";
      display: block;
      transition: 0.3s;
      border-radius: 100%;
      position: absolute;
      top: 0;
      left: 0;
      right: 0;
      bottom: 0;
      margin: auto;
    }
    &::before {
      width: 65%;
      height: 65%;
      border: solid 2px #000;
    }
    &::after {
      content: "";
      display: block;
      width: 0%;
      height: 0%;
      background: #000;
      border-radius: 100%;
      mix-blend-mode: difference;
    }
    img {
      position: absolute;
      top: 0;
      left: 0;
      mix-blend-mode: difference;
      right: 0;
      bottom: 0;
      margin: auto;
      transition: 0.3s;
      width: 100%;
      height: 100%;
      animation: btn 15s infinite linear;
      @keyframes btn {
        0% {
          transform: rotate(0);
        }
        100% {
          transform: rotate(360deg);
        }
      }
    }
    svg {
      width: 40%;
      height: 40%;
      position: absolute;
      top: 0;
      left: 0;
      mix-blend-mode: difference;
      stroke-width: 4;
      right: 0;
      fill: none;
      bottom: 0;
      margin: auto;
      transition: 0.3s;
      stroke: #000;
    }
    &:hover {
      img {
        width: 80%;
        height: 80%;
        animation-duration: 100s;
        animation-direction: reverse;
      }
      svg {
        stroke: #fff;
        stroke-width: 6;
        width: 25%;
      }
      &::before {
        width: 90%;
        height: 90%;
        animation: bg_1 0.3s linear;
        @keyframes bg_1 {
          0% {
            width: 65%;
            height: 65%;
          }
          70% {
            width: 100%;
            height: 100%;
          }
          100% {
            width: 90%;
            height: 90%;
          }
        }
      }
      &::after {
        width: 50%;
        height: 50%;
        animation: bg_2 0.2s linear;
        @keyframes bg_2 {
          0% {
            width: 0%;
            height: 0%;
          }
          100% {
            width: 50%;
            height: 50%;
          }
        }
      }
    }
  }
}
Nice!
COPY