:root{ --hamburger-size: 20px; --hamburger-padding: 10px; --hamburger-margin: 10px; --hamburger-bgcolor: rgba(0, 0, 0, .1); } /* Basic styles */ #mobile-header { display: -webkit-box; display: -ms-flexbox; display: flex; -webkit-box-align: start; -ms-flex-align: start; align-items: flex-start; -webkit-box-orient: horizontal; -webkit-box-direction: reverse; -ms-flex-direction: row-reverse; flex-direction: row-reverse; right: 0; position: relative; margin: var(--tile-margin) var(--tile-margin) 0 var(--tile-margin); } /* Toggle functionality */ #toggle { position: absolute; left: -100%; top: -100%; } #toggle:focus ~ .toggle-container .button-toggle, #toggle:checked ~ .toggle-container .button-toggle { -webkit-box-shadow: 0 0 0 var(--hamburger-padding) var(--hamburger-bgcolor), inset 0 0 0 var(--hamburger-padding) var(--hamburger-bgcolor); box-shadow: 0 0 0 var(--hamburger-padding) var(--hamburger-bgcolor), inset 0 0 0 var(--hamburger-padding) var(--hamburger-bgcolor); } #toggle:checked ~ .toggle-container .button-toggle:hover, #toggle:checked:focus ~ .toggle-container .button-toggle { -webkit-box-shadow: 0 0 0 var(--hamburger-padding) var(--hamburger-bgcolor), inset 0 0 0 var(--hamburger-padding) var(--hamburger-bgcolor), 0 0 0 var(--hamburger-padding) var(--hamburger-bgcolor), inset 0 0 0 var(--hamburger-padding) var(--hamburger-bgcolor); box-shadow: 0 0 0 var(--hamburger-padding) var(--hamburger-bgcolor), inset 0 0 0 var(--hamburger-padding) var(--hamburger-bgcolor), 0 0 0 var(--hamburger-padding) var(--hamburger-bgcolor), inset 0 0 0 var(--hamburger-padding) var(--hamburger-bgcolor); } #toggle:checked ~ .toggle-container .button-toggle::before { -webkit-transform: rotate(45deg) scale(1); transform: rotate(45deg) scale(1); } #toggle:checked ~ .toggle-container .button-toggle::after { -webkit-transform: rotate(-45deg) scale(1); transform: rotate(-45deg) scale(1); } #toggle:checked ~ .nav { margin-top: 0; margin-bottom: calc(var(--hamburger-size) + 2*var(--hamburger-padding) + 3*var(--hamburger-margin)); width: 25%; pointer-events: auto; -webkit-transform: translate(calc(var(--hamburger-padding) + var(--hamburger-size)), calc(var(--hamburger-size) + 2*(var(--hamburger-padding) + var(--hamburger-margin)))); transform: translate(calc(var(--hamburger-padding) + var(--hamburger-size)), calc(var(--hamburger-size) + 2*(var(--hamburger-padding) + var(--hamburger-margin)))); } #toggle:checked ~ .nav .nav-item, #toggle:checked ~ .nav .nav-subitem { font-family: 'akrobat-regular'; color: black; width: auto; height: 2.5em; line-height: 3em; text-align: right; margin: 0; opacity: 1; -webkit-transform: scaleY(1); transform: scaleY(1); -webkit-transition: .5s, opacity .1s; transition: .5s, opacity .1s; } #toggle:checked ~ .nav .nav-item:nth-child(1), #toggle:checked ~ .nav .nav-item:nth-child(1)::before { -webkit-transition-delay: .15s; transition-delay: .15s; } #toggle:checked ~ .nav .nav-subitem, #toggle:checked ~ .nav .nav-subitem::before { -webkit-transition-delay: .01s; transition-delay: .01s; right: 1em; } #toggle:checked ~ .nav .nav-item:nth-child(3), #toggle:checked ~ .nav .nav-item:nth-child(3)::before { -webkit-transition-delay: .05s; transition-delay: .05s; } #toggle:checked ~ .nav .nav-item:nth-child(4), #toggle:checked ~ .nav .nav-item:nth-child(4)::before { -webkit-transition-delay: 0s; transition-delay: 0s; } #toggle:checked ~ .nav .nav-item::before, #toggle:checked ~ .nav .nav-subitem::before { opacity: 0; } /* Toggle button */ .button-toggle { position: relative; display: inline-block; right: 0; width: var(--hamburger-size); height: var(--hamburger-size); margin: calc(var(--hamburger-margin) + var(--hamburger-padding)) var(--hamburger-padding); -webkit-box-shadow: 0 0 0 var(--hamburger-padding) var(--hamburger-bgcolor), inset 0 0 0 var(--hamburger-padding) var(--hamburger-bgcolor); box-shadow: 0 0 0 var(--hamburger-padding) var(--hamburger-bgcolor), inset 0 0 0 var(--hamburger-padding) var(--hamburger-bgcolor); border: none; cursor: pointer; border-radius: 100%; -webkit-transition: .6s; transition: .6s; } /* button X container (toggled) */ .button-toggle::before, .button-toggle::after { position: absolute; content: ''; top: 50%; /* left: 0; */ right: 0; width: 100%; height: 2px; background-color: black; border-radius: 5px; -webkit-transition: .5s; transition: .5s; } /* button \ container */ .button-toggle::before { -webkit-transform: rotate(45deg) scale(0); transform: rotate(45deg) scale(0); } /* button / container */ .button-toggle::after { -webkit-transform: rotate(-45deg) scale(0); transform: rotate(-45deg) scale(0); } /* Menu */ .nav { display: block; -webkit-transform: translateX(calc(var(--hamburger-size) + var(--hamburger-padding))); transform: translateX(calc(var(--hamburger-size) + var(--hamburger-padding))); margin: calc(var(--hamburger-margin) + var(--hamburger-padding)) 0; width: var(--hamburger-size); pointer-events: none; -webkit-transition: .5s; transition: .5s; } .nav .itemize { display: -webkit-box; display: -ms-flexbox; display: flex; -webkit-box-align: end; -ms-flex-align: end; align-items: flex-end; -webkit-box-orient: vertical; -webkit-box-direction: normal; -ms-flex-direction: column; flex-direction: column; padding: 0; margin: 0; } /* menu entries initial state */ .nav-item, .nav-subitem { display: -webkit-box; display: -ms-flexbox; display: flex; -webkit-box-orient: horizontal; -webkit-box-direction: reverse; -ms-flex-direction: row-reverse; flex-direction: row-reverse; -webkit-box-align: end; -ms-flex-align: end; align-items: flex-end; margin: 0; width: 100%; position: relative; clear: both; color: transparent; height: 7px; line-height: 7px; white-space: nowrap; -webkit-transform: scaleY(.2); transform: scaleY(.2); -webkit-transition: .5s, opacity .1s; transition: .5s, opacity .1s; } .nav-item:nth-child(1), .nav-item:nth-child(1)::before { -webkit-transition-delay: 0s; transition-delay: 0s; } .nav-subitem, .nav-subitem::before { opacity: 0; height: 0; -webkit-transition-delay: .05s; transition-delay: .05s; } .nav-item:nth-child(3), .nav-item:nth-child(3)::before { -webkit-transition-delay: .1s; transition-delay: .1s; } .nav-item:nth-child(4), .nav-item:nth-child(4)::before { -webkit-transition-delay: .15s; transition-delay: .15s; } .nav-item::before, .nav-subitem::before { position: absolute; content: ''; top: 50%; width: 100%; border-radius: 5px; height: 2px; background-color: black; -webkit-transform: scaleY(5); transform: scaleY(5); -webkit-transition: .5s; transition: .5s; }