HEX
Server: Microsoft-IIS/8.5
System: Windows NT YDAWBH120 6.3 build 9600 (Windows Server 2012 R2 Standard Edition) AMD64
User: tentjecom_web (0)
PHP: 7.4.14
Disabled: NONE
Upload Files
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);
  }
}