Olá Maurício:
Eu tive uma necessidade parecida com a sua e só consegui com CSS. Na verdade, eu iniciei meu projeto já com o Bootstrap, então, foi fácil fazer a mudança. Só que na sua dúvida não mencionou se está usando algum framework para front-end como Vue, React, etc... ou se usa o Bootstrap.
Fiz um curso da HCode de Bootstrap muito da hora! Eles ensinam tudo a respeito deste tipo de efeito. Mas se você não usa Bootstrap, vai ter que pesquisar em como mudar o comportamento via CSS. Ou via Javascript que também dá.
Tenta falar mais um pouco do que já fez ou mais algum detalhe importante da sua aplicação