JSFiddle - React, Tailwind, and code Playground

HTML

<header>
    <div id="header-wrapper">
        <div id="logo-wrapper">
             <h1>My website</h1>

        </div>
        <nav id="main-nav">
            <ul>
                <li class="nav-li"><a href="#">Link 1</a>

                </li>
                <li class="nav-li"><a href="#">Link 2</a>

                </li>
                <li class="nav-li"><a href="#">Link 3</a>

                </li>
                <li class="nav-li"><a href="#">Link 4</a>

                </li>
            </ul>
        </nav>
    </div>
</header>

CSS

/* Eric Meyer's Reset CSS v2.0 - http://cssreset.com */
html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{border:0;font-size:100%;font:inherit;vertical-align:baseline;margin:0;padding:0}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}body{line-height:1}ol,ul{list-style:none}blockquote,q{quotes:none}blockquote:before,blockquote:after,q:before,q:after{content:none}table{border-collapse:collapse;border-spacing:0}

/* Display the logo/website name and menu button alongside each other */
#logo-wrapper, #menu-btn-wrapper {
    display: inline-block;
    width: 50%;
}
/* Send menu button to the right */
#menu-btn-wrapper {
    text-align: right;
}
#menu-btn, #logo-wrapper h1 {
    vertical-align: middle;
}
/* Don't show the navigation links by default */
#main-nav > ul {
    max-height: 0em;
    overflow: hidden;
}
/* Unhide the navigation links when menu button is pressed */
 #main-nav.active > ul {
    max-height: 30em;
}
.nav-li {
    text-align: center;
}
/* Force links to occupy as much space as they can (the entire screen width) */
.nav-li a {
    display: block;
}

/* Overwriting CSS rules for screens wider than 34.688em (555px) */
@media (min-width: 34.688em) {
    /* Hide menu button */
    #menu-btn-wrapper {
        display: none;
    }
    /* Show navigation links by default */
    #main-nav > ul {
        max-height: 30em;
    }
    /* Display links in two columns */
    .nav-li {
        width: 50%;
        float: left;
        display: inline-block;
    }
}

/* Overwriting CSS rules for screens wider than 48.125em (770px) */
@media (min-width: 48.125em) {
  ...

JavaScript

// Adding the menu button inside a div. This div will help us align the menu to the left.
$('<div id="menu-btn-wrapper"><button id="menu-btn">Menu</button></div>').insertAfter('#logo-wrapper');

$('#menu-btn').click(function () {
    $('#main-nav').toggleClass('active');
});