JSFiddle - React, Tailwind, and code Playground

by luchaninov

HTML

<script src="https://raw.github.com/YuriyLuchaninov/tagjs/master/tag.js"></script>
<script src="https://raw.github.com/YuriyLuchaninov/tagjs/master/examples/menu-list/menu-list.js"></script>
    <m id="menu">
        <ml class='open'>
            <ml-header><span>Page 1</span>
            </ml-header>
            <ml-content>
                <ml>
                    <ml-header><span>1 - Page 1</span></ml-header>
                    <ml-content>
                        <ml>
                            <ml-header><span>1-1 - Page 1</span></ml-header>
                            <ml-header><span>1-1 - Page 1</span></ml-header>
                            <ml-header><span>1-1 - Page 1</span></ml-header>
                        </ml>
                    </ml-content>
                    <ml-header><span>2 - Page 1</span></ml-header>
                    <ml-header><span>3 - Page 1</span></ml-header>
                </ml>
            </ml-content>
            <ml-header><span>Page 2</span>
            </ml-header>
            <ml-content>
                <ml>
                    <ml-header><span>2 - Page 1</span></ml-header>
                    <ml-header><span>2 - Page 1</span></ml-header>
                    <ml-header><span>2 - Page 1</span></ml-header>
                </ml>
            </ml-content>
            <ml-header><span>Page 3</span>
            </ml-header>
            <ml-header><span>Page4</span>
            </ml-header>
        </ml>
    </m>

CSS

html,
body {
    margin: 0;
    padding: 0;
    height: 100%;
}
body {
    font: 14px/20px 'Arial';
    color: #333;
    margin: 0 auto;
    width: 300px;
    position: relative;
}
ul{
    margin: 0;
    padding: 0;
    list-style: none;
}
.menu a{
    color: #333;
    display: block;
    padding:5px 10px;
    text-decoration: none;
}
.menu a:hover{
    background: rgba(0,0,0,0.1);
}
.content {
    padding: 5px 10px;
}

/*Component*/
.menu-wrapper {
    -webkit-transform: translate3d(0px, 0px, 0px);
    -ms-transform: translate3d(0px, 0px, 0px);
    -moz-transform: translate3d(0px, 0px, 0px);
    -o-transform: translate3d(0px, 0px, 0px);
    transform:translate3d(0px, 0px, 0px);
    overflow: hidden;
    height: 100%;
    width: 100%;
    background-color: #777;
}

.menu {
    -moz-box-sizing: border-box;
    box-sizing: border-box;
    position: relative;

    -webkit-transition: all 0.35s ease;
    -moz-transition: all 0.35s ease;
    -o-transition: all 0.35s ease;
    -ms-transition: all 0.35s ease;
    transition: all 0.35s ease;
}

.page {
    display: none;
    margin: 0;
    padding: 0;
    position: absolute;
    top: 0;
    width: 100%;
}

.page.open {display: block;}


.btn{
    vertical-align: middle;
    display: inline-block;
    min-height: 28px;
    min-width: 28px;
    margin: 0;
    font-weight: bold;
    color: #172c47;
    text-shadow: 1px 1px 0 #3e88cb, 0 0 1px #31659a, 0 0 1px #31659a;
    cursor: pointer;
    padding:5px 10px;
    border: 1px solid #31659a;

    -webkit-border-radius: 3px;
    -moz-border-radius: 3px;
    -ms-border-radius: 3px;
    border-radius: 3px;

    background: #429ee5;
    background: -moz-linear-gradient(top,  #429ee5 0%, #1e5799 100%);
    background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#429ee5), color-stop(100%,#1e5799));
    background: -webkit-linear-gradient(top,  #429ee5 0%,#1e5799 100%);
    background: -o-linear-gradient(top,  #429ee5 0%,#1e5799 100%);
    background:...

JavaScript

var $wrapper = $('#menu');
        $TB.apply($wrapper.get(0));