при mouseenter вставляешь в кнопку абсолютно позиционированный элемент с анимацией, смещение этого элемента в кнопке рассчитываешь с помощью getBoundingClientRect и window.event.pageX и window.event.pageX по окончании анимации удаляешь
добавить класс при клике с помощью js
или
добавить скрытый чекбокс в блок с заголовком таба перед текстом и в css прописать что то типа input:checked+a{color: white}