Files
2026-09-08 09:49:27 +02:00

165 lines
3.0 KiB
CSS

:root {
--nav-submenu-max-width: var(--container-width);
--nav-submenu-bg: var(--color-surface);
}
.nav-submenu {
display: grid;
list-style: none;
width: 100%;
max-height: 0;
opacity: 1;
overflow: hidden;
visibility: hidden;
pointer-events: none;
transform: translateY(-4px);
transition:
max-height 250ms ease,
opacity 180ms ease,
transform 180ms ease,
visibility 0s linear 300ms;
background-color: var(--nav-bg);
}
.nav-submenu.open {
max-height: var(--submenu-h);
opacity: 1;
visibility: visible;
pointer-events: auto;
transform: translateY(0);
transition:
max-height 250ms ease,
opacity 180ms ease,
transform 180ms ease,
visibility 0s linear 0s;
}
.nav-submenu-inner {
width: 100%;
height: auto;
}
.nav-submenu-list {
width: var(--nav-submenu-max-width);
margin: 0 auto;
}
.nav-submenu-list li a {
position: relative;
}
.nav-submenu-list li a:focus-visible {
outline: none;
width: 100vw;
}
.nav-submenu-list li a:focus-visible::after {
content: "";
position: absolute;
top: 8px;
right: 8px;
bottom: 8px;
left: 8px;
border: 2px solid var(--nav-outline-color);
pointer-events: none;
box-sizing: border-box;
}
.nav-sub-toggle {
display: flex;
align-items: center;
height: 100%;
width: 100%;
padding: 12px 16px;
background-color: inherit;
border: 0;
text-align: left;
cursor: pointer;
font: inherit;
color: inherit;
height: var(--nav-h);
letter-spacing: 0.1px;
}
.nav-item-with-sub {
display: flex;
flex-direction: column;
}
.nav-submenu > li {
padding: 0;
}
.nav-submenu > li a {
padding: 12px 24px;
}
@media (min-width: 1024px) {
.nav-submenu {
position: fixed;
left: 0;
right: 0;
top: var(--nav-h);
pointer-events: none;
box-shadow: 0 4px 6px -6px rgb(0 0 0 / 30%);
opacity: 0;
transform: translateY(-8px);
transition:
max-height 200ms ease,
opacity 200ms ease,
transform 200ms ease,
visibility 0s linear 200ms;
background-color: var(--nav-bg);
}
.nav-submenu.open {
transition:
max-height 200ms ease,
opacity 300ms ease,
transform 300ms ease,
visibility 0s linear 0;
}
.nav-submenu-list li a:focus-visible {
outline: 2px solid var(--nav-outline-color);
outline-offset: 2px;
width: auto;
}
.nav-submenu-list li a:focus-visible::after {
display: none;
}
.nav-submenu.open {
opacity: 1;
}
.nav-submenu > li {
padding: 0;
}
.nav-submenu > li a {
padding: 0;
}
.nav-submenu-list {
width: min(100%, var(--nav-submenu-max-width));
margin: 0 auto;
display: grid;
grid-auto-flow: column;
grid-template-rows: repeat(3, auto);
grid-auto-columns: minmax(180px, max-content);
column-gap: 48px;
row-gap: 16px;
justify-content: start;
align-items: start;
padding: 24px 24px 48px 24px;
font-size: 16px;
font-weight: 500;
}
.nav-sub-toggle {
position: relative;
padding: 16px 12px;
}
}