JSFiddle - React, Tailwind, and code Playground

HTML

<link rel="stylesheet" href="http://twitter.github.com/bootstrap/1.3.0/bootstrap.min.css">
<h4>Groups</h4>
<div class="well">
    <div class="btngroup">
        <a class="btn" href="#">Left</a>
        <a class="btn" href="#">Right</a>
    </div>
    <div class="btngroup">
        <a class="btn" href="#">1</a>
        <a class="btn" href="#">2</a>
        <a class="btn" href="#">3</a>
        <a class="btn" href="#">4</a>
    </div>
</div>
<h4>Radios</h4>
<p>In a radio group, only one button may be active at a time. Add the class <code>.radio-group</code> to the button group.</p>
<div class="well">
    <div class="radio-group btngroup">
        <label class="btn active"><input type="radio" name="radio1" checked="checked" />Left</label>
        <label class="btn"><input type="radio" name="radio1" />Middle</label>
        <label class="btn"><input type="radio" name="radio1" />Right</label>
    </div>
</div>
<h4>Toggles</h4>
<p>Toggles work like radios, but each button in the group can be set independently. Add <code>.toggle</code> to each button in the button group. Lone buttons can also be toggles.</p>
<div class="well">
    <div class="toggle-group btngroup">
        <label class="btn toggle active"><input type="checkbox" name="toggle1" checked="checked" />Left</label>
        <label class="btn toggle"><input type="checkbox" name="toggle2">Middle</label>
        <label class="btn toggle"><input type="checkbox" name="toggle3">Right</label>
    </div>
    
    <label class="btn toggle"><input type="checkbox" name="toggle4">Toggle</label>
</div>

CSS

.toggle.active {
  background-color: #bfbfbf;
  background-repeat: repeat-x;
  background-image: -khtml-gradient(linear, left top, left bottom, from(#bfbfbf), to(#bfbfbf));
  background-image: -moz-linear-gradient(top, #bfbfbf, #bfbfbf);
  background-image: -ms-linear-gradient(top, #bfbfbf, #bfbfbf);
  background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #bfbfbf), color-stop(100%, #bfbfbf));
  background-image: -webkit-linear-gradient(top, #bfbfbf, #bfbfbf);
  background-image: -o-linear-gradient(top, #bfbfbf, #bfbfbf);
  background-image: linear-gradient(top, #bfbfbf, #bfbfbf);
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#bfbfbf', endColorstr='#bfbfbf', GradientType=0);
  color: #333;
  text-decoration: none;
  -webkit-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.25), 0 1px 2px rgba(0, 0, 0, 0.05);
  -moz-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.25), 0 1px 2px rgba(0, 0, 0, 0.05);
  box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.25), 0 1px 2px rgba(0, 0, 0, 0.05);
}

.radio-group label.active {
  color: #ffffff;
  background-color: #0064cd;
  background-repeat: repeat-x;
  background-image: -khtml-gradient(linear, left top, left bottom, from(#049cdb), to(#0064cd));
  background-image: -moz-linear-gradient(top, #049cdb, #0064cd);
  background-image: -ms-linear-gradient(top, #049cdb, #0064cd);
  background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #049cdb), color-stop(100%, #0064cd));
  background-image: -webkit-linear-gradient(top, #049cdb, #0064cd);
  background-image: -o-linear-gradient(top, #049cdb, #0064cd);
  background-image: linear-gradient(top, #049cdb, #0064cd);
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#049cdb', endColorstr='#0064cd', GradientType=0);
  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
  border-color: #0064cd #0064cd #003f81;
  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
}

.radio-group...

JavaScript

/* Radio and toggle buttons */
              
!function( $ ) {

    function activate( element, container ) {
        container.find( '.active' ).removeClass( 'active' )
        element.addClass('active')
    }

    jQuery.fn.radioGroup = function() {
        
        return this.each( function() {
            var $this = $(this)
            $this.click( function() {
                activate( $this, $this.parent() )
            })
        })
    }
    
    jQuery.fn.toggleBtn = function() {
        return this.each( function() {
            var $this = $(this)
            $this.click( function(ev) {
                var target = ev.originalEvent.target;
                
                // because the event bubble and is also triggered by the LABEL element
                if (target.tagName != "INPUT") return;
                
                $this.toggleClass('active')
            })
        })
    }
    
}( window.jQuery || window.ender );

$('.radio-group > label').radioGroup();
$('.btn.toggle').toggleBtn();