@use "sass:string"; @use "sass:map"; @use "sass:math"; @use "../settings" as *; @if map.get($modules, "components/nav") { /** * Nav hamburger menu * modified from https: //codepen.io/brentarias/pen/gOQybod */ #{$parent-selector} nav[role="navigation"] { z-index: 1; //align-items: center; // the label for the burger was bouncing width: 100%; overflow: visible; &[data-position="start"] { /* remove the 'flex-direction' to move menu to the right */ flex-direction: row-reverse; } > input[type="checkbox"] { display: none; user-select: none; } > label { display: none; cursor: pointer; user-select: none; } > ul, > ol { > li > [role="search"] { margin-block-end: 0; } } } @each $breakpoint, $values in $breakpoints { $databp: 'nav[role="navigation"]'; @if $breakpoint != sm { $databp: #{$databp} + "[data-breakpoint='" + $breakpoint + "']"; } $viewport: map.get($values, "viewport"); @media (max-width: $viewport) { #{$parent-selector} #{$databp} { flex-wrap: wrap; overflow: hidden; &:has(input[type="checkbox"]:checked) { overflow: visible; } label { display: block; } > [role="list"] { display: none; flex-direction: column; align-items: flex-start; width: 90vw; max-height: 0; margin: 0 auto; background-color: var(#{$css-var-prefix}muted-border-color); //muted-border-color); box-shadow: var(#{$css-var-prefix}box-shadow); opacity: 0; @if $enable-transitions { transition: max-height var(#{$css-var-prefix}transition), opacity var(#{$css-var-prefix}transition); } li { width: calc(100% - calc(var(#{$css-var-prefix}nav-link-spacing-vertical) * 2)); margin: calc(var(#{$css-var-prefix}nav-link-spacing-vertical) * 0.5) var(#{$css-var-prefix}nav-link-spacing-vertical); padding: 0; > details.dropdown { width: 100%; } > form[role="search"] { margin-block-end: 0; } } a { display: block; margin: 0; border-radius: 0; border-block-end: 1px solid transparent; @if $enable-transitions { transition: border-color var(#{$css-var-prefix}transition), color var(#{$css-var-prefix}transition); } } a:hover { border-bottom-color: var(#{$css-var-prefix}underline); text-decoration: none; //background-color: var(#{$css-var-prefix}primary-background) !important; //color: var(#{$css-var-prefix}primary-inverse); } } input[type="checkbox"]:checked ~ [role="list"] { display: block; max-height: 100vh; opacity: 1; } } } } }