JSFiddle - React, Tailwind, and code Playground

HTML

<div class="container">
    <!-- .btn-primary included on anchor so as to keep naming of buttons consistent -->
    <a href="#" class="btn btn-primary">primary</a>
    <a href="#" class="btn btn-secondary">secondary</a>
    <a href="#" class="btn btn-tertiary">tertiary</a>
</div>

CSS

.container { padding: 1em;}

.btn {
    background-color: #40769F;
    border-radius: 2px;
    box-shadow: inset 0 1px 1px hsla(0, 0%, 100%, .4),
                inset 0 -1px 1px hsla(0, 0%, 0%, .1);
    color: #FFF;
    font-family: Verdana, sans-serif;
    padding: .5em 1em .7em;
    text-decoration: none;
}

.btn:hover {
    background-image: -webkit-linear-gradient(
                          top, 
                          hsla(0, 0%, 100%, .3),
                          hsla(0, 0%, 100%, .3)
                      );
    background-image: -moz-linear-gradient(
                          top, 
                          hsla(0, 0%, 100%, .3),
                          hsla(0, 0%, 100%, .3)
                      );
    background-image: -o-linear-gradient(
                          top, 
                          hsla(0, 0%, 100%, .3),
                          hsla(0, 0%, 100%, .3)
                      );
    background-image: -ms-linear-gradient(
                          top, 
                          hsla(0, 0%, 100%, .3),
                          hsla(0, 0%, 100%, .3)
                      );
    background-image: linear-gradient(
                          top, 
                          hsla(0, 0%, 100%, .3),
                          hsla(0, 0%, 100%, .3)
                      );
}

.btn:active {
    box-shadow: inset 0 1px 4px 3px hsla(0, 0%, 0%, .35);
}

/* .btn-primary styles implied by .btn styles */
.btn-secondary { background-color: #40A060;}
.btn-tertiary { background-color: #A05040;}