Ciao, in generale potresti utilizzare la proprietà animation. Che io sappia, non puoi applicare l'animazione che hai descritto, direttamente sul bordo dell'elemento ma potresti utilizzare un pseudo-elemento. Io sono riuscito a fare qualcosa con :after, definendolo come block e impostando l'animazione da width:0% a width:100%.

Non posto la soluzione pronta, ma preferisco che tu elabori qualcosa con le indicazioni che ti ho dato; poi, se trovi difficoltà, prova a postare quanto hai elaborato così da poterti indicare come meglio procedere.