JSFiddle - React, Tailwind, and code Playground

by outis

HTML

<button id="site-menu-toggle" class="toggle-ctrl">close menu</button>
<div id="site-menu" class="open">
    <ul>
        <li>opt 1</li>
        <li>opt 2</li>
    </ul>
</div>
<p><a href="#">Link to Myself</a></p>

CSS

.closed { display: none; }

JavaScript

/**
 * jQuery.Storage
 * @author Dave Schindler
 * https://sites.google.com/site/daveschindler/jquery-html5-storage-plugin
 * Distributed under the MIT License
 * Copyright (c) 2010 Dave Schindler
 */
(function($) {
    // Private data
    var isLS=typeof window.localStorage!=='undefined';
    // Private functions
    function wls(n,v){var c;if(typeof n==="string"&&typeof v==="string"){localStorage[n]=v;return true;}else if(typeof n==="object"&&typeof v==="undefined"){for(c in n){if(n.hasOwnProperty(c)){localStorage[c]=n[c];}}return true;}return false;}
    function wc(n,v){var dt,e,c;dt=new Date();dt.setTime(dt.getTime()+31536000000);e="; expires="+dt.toGMTString();if(typeof n==="string"&&typeof v==="string"){document.cookie=n+"="+v+e+"; path=/";return true;}else if(typeof n==="object"&&typeof v==="undefined"){for(c in n) {if(n.hasOwnProperty(c)){document.cookie=c+"="+n[c]+e+"; path=/";}}return true;}return false;}
    function rls(n){return localStorage[n];}
    function rc(n){var nn, ca, i, c;nn=n+"=";ca=document.cookie.split(';');for(i=0;i<ca.length;i++){c=ca[i];while(c.charAt(0)===' '){c=c.substring(1,c.length);}if(c.indexOf(nn)===0){return c.substring(nn.length,c.length);}}return null;}
    function dls(n){return delete localStorage[n];}
    function dc(n){return wc(n,"",-1);}

    // Public API
    $.extend({
        Storage: {
            set: isLS ? wls : wc,
            get: isLS ? rls : rc,
            remove: isLS ? dls :dc
        }
    });
})(jQuery);
/* end jQuery.Storage */



$('#site-menu-toggle').click(function (evt) {
    var $menu = $('#site-menu');
    $menu.toggleClass('open closed');
    $.Storage.set('site-menu-state', $menu.attr('class'));
    if ($menu.hasClass('open')) {
        $('#site-menu-toggle').text('close menu');
    } else {
        $('#site-menu-toggle').text('open menu');
    }
});
$(function() {
    var state = $.Storage.get('site-menu-state');
    if (! state) {
        $.Storage.set('site-menu-state',...