<a class="c-preview">
  <div class="c-preview__img"></div>
  <h2 class="c-preview__title">Gradient Hover Effect</h2>
</a>
body {
  font-family: 'Segoe UI', 'San Francisco', Calibri, Helvetica, Arial, sans-serif;
  margin: 0;
  padding: 0;
  display: flex;
  justify-content: center;
  align-items: center;
  min-height: 100vh;
}

.c-preview {
  background: #000;
  background: -moz-linear-gradient(-45deg, #000000 0%, #000000 25%, #1e539e 50%, #ff3083 75%, #7800a8 100%); /* FF3.6-15 */
background: -webkit-linear-gradient(-45deg, #000000 0%,#000000 25%,#1e539e 50%,#ff3083 75%,#7800a8 100%); /* Chrome10-25,Safari5.1-6 */
background: linear-gradient(135deg, #000000 0%,#000000 25%,#1e539e 50%,#ff3083 75%,#7800a8 100%); /* W3C, IE10+, FF16+, Chrome26+, Opera12+, Safari7+ */
  background-size: 400% 400%;
  background-repeat: no-repeat;
  display: flex;
  width: 500px;
  height: 500px;
  max-width: 100vw;
  max-height: 100vh;
  justify-content: center;
  align-items: center;
  color: #fff;
  position: relative;
  cursor: pointer;
  transition: .5s all;
  
  &__img {
    position: absolute;
    left: 0;
    top: 0;
    background: #000 url(https://images.unsplash.com/photo-1466657718950-8f9346c04f8f?dpr=1&auto=format&fit=crop&w=800&h=800&q=80&cs=tinysrgb) no-repeat center center;
  background-size: cover;
    width: 100%;
    height: 100%;
    z-index: 1;
    opacity: .5;
    mix-blend-mode: screen;
  }
  
  &__title {
    position: relative;
    z-index: 10;
    text-transform: uppercase;
    letter-spacing: .05em;
  }
  
  &:hover {
    background-position: 100% 100%;
    
    &__title {
      text-shadow: 0 0 20px rgba(0,0,0,1);
    }
  }
}
View Compiled
Run Pen

External CSS

This Pen doesn't use any external CSS resources.

External JavaScript

This Pen doesn't use any external JavaScript resources.