102 lines
2 KiB
SCSS
102 lines
2 KiB
SCSS
$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;
|
|
}
|