JSFiddle - React, Tailwind, and code Playground

HTML

<div class="sliderbutton">

<div class="button rightSide">

<div class="left">ON</div>
<div class="mid">|||</div>
<div class="right active">OFF</div>
</div>
</div>

CSS

body{
    background :#333;
}
.sliderbutton{
    margin:30px auto;
	width: 100px;
	overflow: hidden;
	height: 30px;
	border-radius: 5px;
	box-shadow: -1px -1px 5px 0px rgba(255, 255, 255, 0.3), 1px 1px 5px 0px rgba(0, 0, 0, 1);
}

.sliderbutton .button{
	width: 150%;
	position: relative;
	left:0;
	cursor: pointer;


}
.sliderbutton .button .left{
	position: absolute;
	left: 0;
	width: 50%;
	height: 30px;
	background-color: #7BA9D6;
	z-index: 1;
	text-indent: 15px;
	color: #333;
	text-shadow:1px 1px rgba(255,255,255,0.3);
}
.sliderbutton .button .right{
	position: absolute;
	right: 0;
	width: 50%;
	height: 30px;
	background-color: #F00;
	z-index: 1;

	text-indent: 35px;
	color: #FFF;
}
.sliderbutton .button .mid{
	position: absolute;
	left: 50px;
	width: 50px;
	height: 30px;
	background-color: #FFF;
	z-index: 2;
	background-image: -webkit-linear-gradient( top, rgba(0,0,0,0.4), rgba(0,0,0,0.1) );
	border-radius: 5px;
	box-shadow: 2px 2px 5px 0px rgba(255,255,255,1) inset, 0 0 5px 0px rgba(0, 0, 0, 1);
	line-height: 30px;
	text-align: center;
	text-shadow:1px 1px rgba(255,255,255,0.3);
	overflow: hidden;
}

.sliderbutton .left,.sliderbutton .right{
	background-image: -webkit-linear-gradient( top, rgba(0,0,0,0.6), rgba(0,0,0,0.1) );
	border-radius: 5px;
	line-height: 30px;
	font-weight: bold;
}

JavaScript

$('.button').click(function(){
	if($(this).hasClass('rightSide')){
		$(this).removeClass('rightSide');
		$(this).stop().animate({left:'-50'});
	}
	else{
		$(this).addClass('rightSide');
		$(this).stop().animate({left:'0'});

	}
});