<a class="btn btn-4">Hover</a>
*{
 box-sizing: inherit;
 transition-property: all;
 transition-duration: .3s;
 transition-timing-function: ease;
}

a {
 text-decoration: none;
}

.btn {
 color: #fff;
 cursor: pointer;
 display: block;
 font-size: 16px;
 font-weight: 400;
 line-height: 45px;
 margin: 10px;
 max-width: 150px;
 width: 100%;
 height: 45px;
 text-align: center;
 position: relative;
 text-transform: uppercase;
}

.btn-4:after {
 content: ' ';
 display: block;
 width: 0;
 height: 2px;
 background: #fff;
 transition: width 310ms ease-in-out;
}

.btn-4:hover:after {
 width:100%;
}