$hamburger-menu-animation: 0.4s ease-out; $nav__hamburger-inner-height: 1.3px; .nav__container { flex-direction: column; } .nav__header { display: flex; flex-direction: row; min-width: 100%; height: 55px; justify-content: space-between; } .nav__link-group { position: sticky; flex-direction: column; } .nav__hamburger-menu { display: inline-block; width: 50px; height: 50px; } .nav__spacer { display: none; } .nav__toggle:not(:checked) ~ .nav__link-group { max-height: 0; transition: max-height $hamburger-menu-animation; overflow: hidden; } .nav__toggle:checked ~ .nav__link-group { max-height: 500px; transition: max-height $hamburger-menu-animation; } .nav__toggle:checked ~ .nav__header { .nav__hamburger-inner::after { width: 24px; bottom: $nav__hamburger-inner-height; transform: rotate(-90deg); transition: bottom 0.1s ease-out, transform 0.22s cubic-bezier(0.215, 0.61, 0.355, 1) 0.12s, width 0.1s ease-out; } .nav__hamburger-inner::before { top: 0; opacity: 0; transition: top 0.1s ease-out, opacity 0.1s ease-out 0.12s; } .nav__hamburger-inner { transform: rotate(225deg); transition-delay: 0.12s; transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); } } .nav__hamburger-inner::after { bottom: -7px; transition: bottom 0.1s ease-in 0.25s, transform 0.22s cubic-bezier(0.55, 0.055, 0.675, 0.19), width 0.1s ease-in 0.25s; } .nav__hamburger-inner::after, .nav__hamburger-inner::before { content: ''; display: block; } .nav__hamburger-inner::before { top: -7px; transition: top 0.1s ease-in 0.25s, opacity 0.1s ease-in; } .nav__hamburger-inner { top: 50%; margin: auto; transition-duration: 0.22s; transition-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); } .nav__hamburger-inner, .nav__hamburger-inner::after, .nav__hamburger-inner::before { width: 24px; height: $nav__hamburger-inner-height; position: relative; background: #000; } .nav__hamburger-menu, .nav__hamburger-inner { display: block; }