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;}