JSFiddle - React, Tailwind, and code Playground

by J. Albert Bowden

HTML

<a href="#" class="button big blue">Big Button</a>
    <a href="#" class="button big green">Big Button</a>
    <a href="#" class="button big orange">Big Button</a>
    <a href="#" class="button big gray">Big Button</a>
<br/>
<br/>
    <a href="#" class="button blue medium">Medium Button</a>
    <a href="#" class="button green medium">Medium Button</a>
    <a href="#" class="button orange medium">Medium Button</a>
    <a href="#" class="button gray medium">Medium Button</a>
    <br/><br/>
    <a href="#" class="button small blue">Small Button</a>
    <a href="#" class="button small green">Small Button</a>
    <a href="#" class="button small blue rounded">Rounded</a>
    <br/><br/>
    <a href="#" class="button small orange">Small Button</a>
    <a href="#" class="button small gray">Small Button</a>
        <br/><br/>
    <a href="#" class="button small green rounded">Rounded</a>
<br/><br/>

CSS

.button{
    font:15px Calibri, Arial, sans-serif;

    /* A semi-transparent text shadow */
    text-shadow:1px 1px 0 rgba(255,255,255,0.4);
    
    /* Overriding the default underline styling of the links */
    text-decoration:none !important;
    white-space:nowrap;
    
    display:inline-block;
    vertical-align:baseline;
    position:relative;
    cursor:pointer;
    padding:10px 20px;
    
    background-repeat:no-repeat;

    /* The following two rules are fallbacks, in case
       the browser does not support multiple backgrounds. */

    background-position:bottom left;
    background-image:url('button_bg.png');
    
    /* Multiple backgrounds version. The background images
       are defined individually in color classes */
    
    background-position:bottom left, top right, 0 0, 0 0;
    background-clip:border-box;
    
    /* Applying a default border raidus of 8px */
    
    -moz-border-radius:8px;
    -webkit-border-radius:8px;
    border-radius:8px;
    
    /* A 1px highlight inside of the button */
    
    -moz-box-shadow:0 0 1px #fff inset;
    -webkit-box-shadow:0 0 1px #fff inset;
    box-shadow:0 0 1px #fff inset;
    
    /* Animating the background positions with CSS3 */
    /* Currently works only in Safari/Chrome */
    
    -webkit-transition:background-position 1s;
    -moz-transition:background-position 1s;
    transition:background-position 1s;
}

.button:hover{
    
    /* The first rule is a fallback, in case the browser
       does not support multiple backgrounds
    */
    
    background-position:top left;
    background-position:top left, bottom right, 0 0, 0 0;
}

.button:active{
    /* Moving the button 1px to the bottom when clicked */
    bottom:-1px;
}

/* The three buttons sizes */

.button.big        { font-size:30px;}
.button.medium    { font-size:18px;}
.button.small    { font-size:13px;}

/* A more rounded button */

.button.rounded{
    -moz-border-radius:4em;
    -webkit-border-radius:4em;
   ...