JSFiddle - React, Tailwind, and code Playground

HTML

<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.5/lodash.min.js"></script>

CSS

html {
  height: 100%;
}
body {
  background-color: #dfa7ca;
  overflow: hidden;
  height: calc(100% - 70px);
  background-image: -webkit-linear-gradient(270deg, #dfa7ca, #ffffff);
  background-image: -moz-linear-gradient(270deg, #dfa7ca, #ffffff);
  background-image: -o-linear-gradient(270deg, #dfa7ca, #ffffff);
  background-image: -ms-linear-gradient(270deg, #dfa7ca, #ffffff);
  background-image: linear-gradient(180deg, #dfa7ca, #ffffff);
  width: 100%;
}

JavaScript

var colorArr = ['#dfa7ca', '#f7c2b3', '#bae0f1', '#a6d6cb'];
var grFrom = colorArr[Math.floor(Math.random()*colorArr.length)];
var grTo = '#FFFFFF';


var wrapped = _.debounce(function(e){
  var x = e.pageX - this.offsetLeft;
	var y = e.pageY - this.offsetTop;
  var grFrom = colorArr[Math.floor(Math.random()*colorArr.length)];
	var xy = (x + y) / 8;
  var w = $(this).width(),
      pct = 360*(+e.pageX)/w,
      bg = "linear-gradient(" + xy + "deg,"+grFrom+","+grTo+")";
      $("body").css("background-image", bg);
},20)


$("body").mousemove(wrapped);