Necesitaras combinar CSS + Javascript
:
El boton es una capa con overflow:hidden (css),
Dentro de la capa hay dos, una del tamaño de la que la contiene (por ejemplo: 50px50px) que pone el logo, y otra debajo con el boton (no se vera por la propiedad overflow),
Con JS (jQuery o similar) animas la capa de debajo.
Si tienes dudas, dilo y te paso algun enlace que te ayudará