File: D:/HostingSpaces/stafa/stafa.nl/resources/sass/site/6-Organisms/_organisms.overlayMenu.scss
// Component settings: Overlay menu
// ------------------------------------------
$o-overlay-menu: (
'opacity-speed': 300ms,
'move-speed': 350ms,
'move-delay': 150ms,
);
// ------------------------------------------
.o-overlay-menu {
@include z(z-overlay-menu);
display: flex;
flex-direction: column;
position: fixed;
height: 100%;
width: 100%;
left: 0;
top: 0;
background: linear-gradient(palette(primary, 500), palette(primary, 700));
// When it disappears out of view
pointer-events: none;
opacity: 0;
transform: translateX(-100vw);
transition-property: transform, opacity;
transition-duration: map-get($o-overlay-menu, 'move-speed'), map-get($o-overlay-menu, 'opacity-speed');
transition-timing-function: cubic-bezier(0.35, 0.05, 0.05, 1), linear;
transition-delay: 0s, map-get($o-overlay-menu, 'move-speed');
// When it comes into view
.is-overlay-menu-active & {
pointer-events: all;
opacity: 1;
transform: none;
transition-delay: map-get($o-overlay-menu, 'move-delay'), 0s;
}
.ie & {
z-index: -1;
.is-overlay-menu-active &{
@include z(z-overlay-menu);
}
}
// Shader
&::before {
display: block;
content: '';
position: absolute;
top: 0;
right: -120vw;
width: 120vw;
height: 100%;
background: rgba(0, 0, 0, 0.6);
pointer-events: none;
// When it disappears out of view
opacity: 0;
transition-property: opacity;
transition-duration: map-get($o-overlay-menu, 'opacity-speed');
transition-delay: map-get($o-overlay-menu, 'move-speed');
transition-timing-function: linear;
// When it comes into view
.is-overlay-menu-active & {
opacity: 1;
transition-delay: 0s;
}
}
}
.o-overlay-menu__bar {
@include contain;
display: flex;
justify-content: space-between;
align-items: center;
padding-top: space(3);
padding-bottom: space(3);
}
.o-overlay-menu__img {
height: space(6);
}
.o-overlay-menu__toggle {
transform: rotate(-0.5turn);
transition: transform 600ms ease-out;
transition-delay: 200ms;
.is-overlay-menu-active & {
transform: none;
}
}
.o-overlay-menu__nav {
@include contain;
margin-top: space(3);
}
.o-overlay-menu__list {
margin-left: 0;
list-style: none;
}
.o-overlay-menu__link {
@include font-size(m);
display: block;
padding: space(0.5) 0;
color: palette(neutral, 0);
text-decoration: none;
transition: opacity 200ms linear;
&:hover,
&:focus {
color: palette(action, 300);
outline: none;
}
&.is-active {
opacity: 1;
position: relative;
font-weight: 600;
}
}
.o-overlay-menu__sublist {
list-style: none;
display: flex;
flex-wrap: wrap;
margin: space(6) 0;
padding: space(2) 0;
border-top: 1px solid rgba(palette(neutral, 0), 0.1);
border-bottom: 1px solid rgba(palette(neutral, 0), 0.1);
}
.o-overlay-menu__subitem {
flex: 0 0 50%;
}
.o-overlay-menu__sublink {
@include text-style(5);
padding: space(1) 0;
text-decoration: none;
&:hover {
color: palette(neutral, 0);
}
}