Как, и на чём сделать плавное изменение цвета блока от позиции миши?
Это ripple. В частности, на codrops "это" делают с помощью SVG.
https://codepen.io/sebj54/pen/oxluI
еще можно взять этот компонент: materializecss.com/buttons.html