JSFiddle - React, Tailwind, and code Playground

by Andrew Pougher

HTML

<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.5.0/css/font-awesome.min.css">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootswatch/3.3.5/paper/bootstrap.min.css">
<div ng-app="classApp" ng-controller="classCtrl">
 <button ng-click="toggle = !toggle" class="btn btn-xs btn-default">
    open
  </button>
<div id="sidebasket" ng-class="{'openside' : toggle}" class="container-fluid">
 <div id="basket_inner" ng-class="{'openside' : toggle}">
      <form>

BASKET
      </form>
    </div>
  </div>
</div>

CSS

body{background:#f4f2f0
}

#sidebasket:after{ 
   content: '\f291';
   font-family: FontAwesome;
   font-weight: normal;
   font-style: normal;
   text-decoration:none;

   margin:0px 0px 0px 6px;
   font-size: 20px;
}

#sidebasket {
  position: fixed;
  z-index:1;
  top: 40px;
  right: 0;
  width: 35px;
  padding: 12px 0;
  text-align: center;
    background: #ffffff !important;
        border:1px solid #c8c7cc !important;
  -webkit-transition-duration: 0.3s;
  -moz-transition-duration: 0.3s;
  -o-transition-duration: 0.3s;
  transition-duration: 0.3s;
  -webkit-border-radius: 0;
  -moz-border-radius: 0;
  border-radius: 0;
}

#basket_inner {
  position: fixed;
    z-index:0;
  top: 40px;
  right: -250px;
  background: #ffffff;
  min-width: 251px;
  padding: 25px;
  height: 100vh;
    border:1px solid #c8c7cc !important;
  -webkit-transition-duration: 0.3s;
  -moz-transition-duration: 0.3s;
  -o-transition-duration: 0.3s;
  transition-duration: 0.3s;
  text-align: left;
  -webkit-border-radius: 0 0 5px 0;
  -moz-border-radius: 0 0 5px 0;
  border-radius: 0 0 5px 0;
}

#sidebasket:hover {
  right: 250px;
}

#sidebasket.openside {
  right: 250px;
}

#sidebasket:hover #basket_inner {
  right: 0;
}

#sidebasket.openside #basket_inner {
  right: 0;
}

JavaScript

var classApp = angular.module('classApp', []);
classApp.controller('classCtrl', function($scope) {

});