JSFiddle - React, Tailwind, and code Playground

by Ying Chor Ding

HTML

<script src="http://thecodeplayer.com/uploads/js/prefixfree-1.0.7.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<div id="accordian">
  <ul>
    <li><h3 class="mtop">&nbsp;</h3></li>
    <li>
      <h3><a href="#">Dashboard</a></h3>
      <ul>
        <li class="litop"><a href="#">Reports</a></li>
        <li class="limid"><a href="#">Search</a></li>
        <li class="limid"><a href="#">Graphs</a></li>
        <li class="libot"><a href="#">Settings</a></li>
      </ul>
    </li>
    <li>
      <h3><a href="#">Calendar</a></h3>
      <ul>
        <li class="litop"><a href="#">Current Month</a></li>
        <li class="limid"><a href="#">Current Week</a></li>
        <li class="limid"><a href="#">Previous Month</a></li>
        <li class="limid"><a href="#">Previous Week</a></li>
        <li class="limid"><a href="#">Next Month</a></li>
        <li class="limid"><a href="#">Next Week</a></li>
        <li class="limid"><a href="#">Team Calendar</a></li>
        <li class="limid"><a href="#">Private Calendar</a></li>
        <li class="libot"><a href="#">Settings</a></li>
      </ul>
    </li>
    <li>
      <h3><a href="#">Favourites</a></h3>
      <ul>
        <li class="litop"><a href="#">Global favs</a></li>
        <li class="limid selecteda"><a href="#">My favs</a></li>
        <li class="limid"><a href="#">Team favs</a></li>
        <li class="libot"><a href="#">Settings</a></li>
      </ul>
    </li>
    <li><h3 class="mbot">&nbsp;</h3></li>
  </ul>
</div>

CSS

* {
  margin: 0;
  padding: 0;
}

body {
  background: #000000;
  font-family: "Segoe UI", "Segoe Print";
}

#accordian {
  background: #000000;
  width: 150px;
  margin: 50px auto 0 auto;
  color: white;
}

#accordian h3 {
  background: #19293e;
  border: 2px solid #379ae2;
  margin-bottom: 2px;
  margin-top: 2px;
}

#accordian h3 a {
  padding: 0 5px;
  font-size: 12px;
  line-height: 18px;
  display: block;
  color: white;
  text-decoration: none;
  text-shadow: -1px -1px 0 #000, 1px -1px 0 #000, -1px 1px 0 #000, 1px 1px 0 #000;
}

#accordian h3:hover {
  background-color: #FF0;
}

#accordian h3 span {
  font-size: 16px;
  margin-right: 10px;
}

#accordian li {
  list-style-type: none;
  margin-left: 0px;
}

.litop {
  border-left: solid 2px #379ae2;
  border-top: solid 2px #379ae2;
  border-right: solid 2px #379ae2;
  background-color: #19293e;
}

.limid {
  border-left: solid 2px #379ae2;
  border-right: solid 2px #379ae2;
  background-color: #19293e;
}

.libot {
  border-left: solid 2px #379ae2;
  border-bottom: solid 2px #379ae2;
  border-right: solid 2px #379ae2;
  background-color: #19293e;
}

.mbot {
  border-: solid 2px #379ae2;
  border-bottom-right-radius: 10px;
  line-height: 15px;
}

.mtop {
  border-: solid 2px #379ae2;
  border-top-right-radius: 10px;
  line-height: 15px;
}

.selected {
  background-color: #F60;
}

#accordian ul ul li a,
#accordian h4 {
  color: white;
  text-decoration: none;
  font-size: 11px;
  line-height: 18px;
  display: block;
  padding: 0 15px;
  text-shadow: -1px -1px 0 #000, 1px -1px 0 #000, -1px 1px 0 #000, 1px 1px 0 #000;
  transition: all 0.15s;
  position: relative;
}

#accordian ul ul li a:hover {
  background: #FF0;
}

#accordian ul ul {
  display: none;
}

#accordian li.active>ul {
  display: block;
}

#accordian ul ul ul {
  margin-left: 0px;
  border-left: 1px dotted rgba(0, 0, 0, 0.5);
}

#accordian a:not(:only-child):after {
  content: "\f104";
  font-family: fontawesome;
  position: absolute;
  right: 10px;
...

JavaScript

$(document).ready(function() {
			  $("#accordian a").click(function() {
			    var link = $(this);
			    var closest_ul = link.closest("ul");
			    var parallel_active_links = closest_ul.find(".active")
			    var closest_li = link.closest("li");
			    var link_status = closest_li.hasClass("active");
			    var count = 0;

			    closest_ul.find("ul").slideUp(function() {
			      if (++count == closest_ul.find("ul").length)
			        parallel_active_links.removeClass("active");
			    });

			    if (!link_status) {
			      closest_li.children("ul").slideDown();
			      closest_li.addClass("active");
			    }
			  })

			  $(".selecteda").selected().slideDown();
			})