It seems that you have written your code in wrong hierarchy.
$color: #333;
.underline-button {
color: $color;
cursor: pointer;
user-select: none;
text-align: center;
padding: 15px 0;
font-size: 24px;
&:after {
content: "";
display: block;
width: 50%;
height: 1px;
margin-left: auto;
margin-right: auto;
background: $color;
transition: width 0.3s;
}
&:hover {
&:after {
width: 100%;
}
}
&:active {
:after {
width: 0;
}
}
}
<div>
<div class="underline-button">Button</div>
<div class="underline-button">Button</div>
<div class="underline-button">Button</div>
<div class="underline-button">Button</div>
<div class="underline-button">Button</div>
<div class="underline-button">Button</div>
</div>
As your code is in .SCSS please check this.