JSFiddle - React, Tailwind, and code Playground
HTML
<a href="#" class="button"><span>a > span</span></a>
<a href="#" class="button"><span>a > span</span></a>
<a href="#" class="button"><span>a > span</span></a>
CSS
.button {
overflow: hidden;
white-space: nowrap;
display: inline-block;
vertical-align: top;
-webkit-user-select: none;
font-family: Arial;
font-size: 13px;
color: black;
text-decoration: none;
text-align: center;
cursor: default;
padding: 2px 6px;
margin: 0;
box-sizing: border-box;
border-radius: 2px;
border-top: 1px solid rgb(166, 166, 166);
border-bottom: 1px solid rgb(148, 148, 148);
border-left: 1px solid rgb(157, 157, 157);
border-right: 1px solid rgb(157, 157, 157);
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAcCAAAAACFNooQAAAAHUlEQVQI12P4wfSfiYHpP9N/KP0Pyv6Pxobw4CoBqcYYFT1E4a0AAAAASUVORK5CYII=);
background-size: contain;
}
.button:hover {
border-top: 1px solid rgb(123, 123, 123);
border-bottom: 1px solid rgb(110, 110, 110);
border-left: 1px solid rgb(116, 116, 116);
border-right: 1px solid rgb(116, 116, 116);
}
.button:active {
border-top: 1px solid rgb(166, 166, 166);
border-bottom: 1px solid rgb(148, 148, 148);
border-left: 1px solid rgb(157, 157, 157);
border-right: 1px solid rgb(157, 157, 157);
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAcCAAAAACFNooQAAAAHUlEQVQI12O4y8TIxMDEyMQIpZmgbAhkQmPDVQIAOFkBLhpTdQIAAAAASUVORK5CYII=);
}
.button {position:relative; height:100px;width:100px;}
.button + .button {height:200px;}
.button + .button + .button {height:50px;}
.button span {
display:block;
left:0;
right:0;
position:absolute;
top:calc(50% - 9px);
text-align:center;
}