Можно сделать например так:
.quality__button--all {
margin-right: 13px;
position: relative;
background: #FF6428;
border-radius: 40px;
padding: 18px 45px;
overflow: hidden;
display: inline-flex;
justify-content: center;
align-items: center;
text-decoration: none;
color: #FFF;
}
.quality__button--all::before {
content: "";
background: #FF6428;
color: #fff;
background: red;
border-radius: 40px;
position: absolute;
top: 0;
left: 0;
width: 0%;
height: 100%;
transition: width 0.3s linear;
}
.quality__button--all:hover::before {
width: 100%;
}
.quality__button.quality__button--all::after {
content: "Get the App";
position: relative;
color: inherit;
}
Ещё можно сделать без изменения ширины с помощью
transform: translate
:
.quality__button--all::before {
width: 100%;
transform: translateX(-100%);
transition: transform 0.3s linear;
}
.quality__button--all:hover::before {
transform: translateX(0);
}