допустим у нас есть спрайт высотой в 50px и шириной 25px (2 иконки, одна над другой).
Сначала мы задаем иконку, и при ховере, смещаем на 25px (или -25px)
.icon__chat{
background: url('img/sprite.png');
background-size: 100%;
width: 25px;
height: 25px;
}
.icon__chat:hover{
background-position: 0 25px;
}
вот пример -
extraverted.xyz/ru/android-app
Експерементируйте)
UPD ну если вам нужно менять иконку при ховере button то тогда надо написать вот так ховер
button:hover > .icon__chat {
background-position: 0 25px;
}