<div class="avatar">
  <img src="https://placekitten.com/400/400">
</div>
body {
  align-items: center;
  background: #222;
  display: flex;
  height: 100%;
  justify-content: center;
  margin: 0;
}

html {
  height: 100%;
}

.avatar {
  height: 200px;
  position: relative;
  width: 200px;
}

.avatar img {
  border-radius: 9999px;
  height: 100%;
  position: relative;
  width: 100%;
  z-index: 2;
}

@keyframes cycle-colors {
  0% { border-color: hsl(0, 100%, 50%); }
  25% { border-color: hsl(90, 100%, 50%); }
  50% { border-color: hsl(180, 100%, 50%); }
  75% { border-color: hsl(270, 100%, 50%); }
  100% { border-color: hsl(360, 100%, 50%); }
}

@keyframes pulse {
  to {
    opacity: 0;
    transform: scale(1);
  }
}

.avatar::before,
.avatar::after {
  animation: pulse 2s linear infinite;
  border: #fff solid 8px;
  border-radius: 9999px;
  box-sizing: border-box;
  content: ' ';
  height: 140%;
  left: -20%;
  opacity: .6;
  position: absolute;
  top: -20%;
  transform: scale(0.714);
  width: 140%;
  z-index: 1;
}

.avatar::after {
  animation-delay: 1s;
}

.avatar:hover img {
  content: url('http://s.blixt.org/hypnotoad.jpg');
}

.avatar:hover::before,
.avatar:hover::after {
  animation: pulse 1s linear infinite, cycle-colors 6s linear infinite;
}

.avatar:hover::after {
  animation-delay: .5s;
}

External CSS

This Pen doesn't use any external CSS resources.

External JavaScript

This Pen doesn't use any external JavaScript resources.