Как написать такую красоту на javascript?
Можно например внутри элемента с сердечком создать прозрачный абсолютно спозиционированный оверлей; при попадании на него курсора мыши 1) включать анимацию сердечка и 2) устанавливать скорость анимации и цвет сердечка в зависимости от расстояния до центра оверлея

Апдейт: СДЕЛАЛ ЧЁРТОВ ПРИМЕР! Полтора дня делал. Вот: https://jsfiddle.net/lucifer63/41y3qdu9/
Это эталонный пример говнокода, но я чо-то не смог проще сделать
без js примерно так. но есть косяк анимации. слишком явный переход и видно дрыганье.
snippet