JSFiddle - React, Tailwind, and code Playground
by iBertel
HTML
<nav class="side-navigation">
<div class="navigation-container">
<h3>Main level</h3>
<ul>
<li class="w-sub">
<span>Menu 1</span>
<ul>
<li>
<span>Sub menu 1</span>
</li>
<li>
<span>Sub menu 2</span>
</li>
</ul>
</li>
<li class="w-sub">
<span>Menu 2</span>
<ul>
<li>
<span>Sub menu 1</span>
</li>
<li>
<span>Sub menu 2</span>
</li>
<li>
<span>Sub menu 3</span>
</li>
<li>
<span>Sub menu 4</span>
</li>
</ul>
</li>
<li>
<span>Menu 3</span>
</li>
</ul>
</div>
</nav>
SCSS
nav.side-navigation {
width: 300px;
height: 100%;
position: fixed;
background-color: #F60;
}
.navigation-container {
> ul {
margin: 0;
padding: 0;
list-style: none;
background-color: #789;
position: relative;
> li {
overflow: hidden;
height: 40px;
> span {
display: block;
height: 40px;
cursor: pointer;
}
&.w-sub {
ul {
background-color: #fff;
}
&.active {
height: auto;
}
}
}
}
}
JavaScript
$('.w-sub').on('click', function() {
$(this).toggleClass('active').siblings().removeClass('active');
});