nightTab/css/menu.css

212 lines
3.7 KiB
CSS
Executable File

.menu {
padding: 1em;
position: fixed;
top: 0;
right: 0;
width: 100%;
height: 80vh;
transform: translateY(calc(-100% - 2em));
transition: transform var(--animation-speed-fast) ease-in-out;
z-index: var(--z-index-menu);
pointer-events: none;
}
.menu:focus {
outline: none;
}
.is-menu-open .menu {
transform: translateY(0);
}
.menu-area {
background-color: rgb(var(--gray-01));
border-radius: var(--radius);
width: 100%;
height: 100%;
overflow-y: auto;
pointer-events: all;
transition: background-color var(--animation-speed-fast) ease-in-out;
}
.menu-nav {
display: flex;
flex-direction: column-reverse;
flex-direction: row;
}
.menu-nav-area {
display: flex;
flex-direction: row;
flex-wrap: wrap;
align-items: flex-start;
}
.menu-nav-area-grow {
flex-grow: 1;
}
.menu-nav:not(:last-child) {
margin: 0;
}
.menu-content {
padding-bottom: 40vh;
}
.menu-content-area {
display: grid;
grid-template-columns: 1fr;
}
.menu-item {
padding: 2em;
position: relative;
z-index: 1;
}
.menu-item:not(:last-child) {
border-bottom: var(--menu-border);
}
.menu-close {
background-color: transparent;
margin: 0;
padding-top: 0.75em;
padding-bottom: 0.75em;
border-radius: 0 var(--radius) 0 0;
}
.menu-nav-button {
background-color: transparent;
margin: 0;
padding-top: 1em;
padding-bottom: 1em;
border-radius: 0;
flex-grow: 1;
flex-basis: 33%;
}
.menu-nav-button:first-child {
border-radius: var(--radius) 0 0 0;
}
.menu-nav-button [class^="icon-"],
.menu-nav-button [class*=" icon-"] {
line-height: 1;
padding-top: 1.5em;
padding-bottom: 1.5em;
}
@media (min-width: 550px) {
.menu-nav-button {
flex-basis: 0;
}
}
@media (min-width: 700px) {
.menu {
width: 90vw;
height: 100%;
overflow-y: inherit;
max-height: inherit;
}
.menu-area {
overflow-y: inherit;
display: grid;
grid-template-columns: 1fr;
grid-template-rows: auto 1fr;
grid-column-gap: 0px;
grid-row-gap: 0px;
justify-items: stretch;
align-items: stretch;
}
.menu-content {
overflow-y: auto;
}
.menu-content-area {
grid-template-columns: repeat(2, 1fr);
grid-gap: 4em;
padding: 2em;
}
.menu-item:not(:last-child) {
border-bottom: 0;
}
.menu-item:nth-child(odd):after {
content: "";
width: 0;
height: 100%;
position: absolute;
top: 0;
right: calc(-2em - calc(var(--menu-border-width) / 2));
border-radius: 1em;
border-right: var(--menu-border);
}
.menu-item:not(:nth-last-child(2)):not(:last-child):before {
content: "";
width: 100%;
height: 0;
position: absolute;
left: 0;
bottom: calc(-2em - calc(var(--menu-border-width) / 2));
border-radius: 1em;
border-bottom: var(--menu-border);
}
.menu-item {
padding: 1em 0;
}
}
@media (min-width: 900px) {
.menu {
width: 80vw;
}
}
@media (min-width: 1600px) {
.menu {
width: 70vw;
}
.menu-content-area {
grid-template-columns: repeat(3, 1fr);
}
.menu-item:nth-child(odd):after {
content: none;
}
.menu-item:not(:nth-child(3n+3)):after {
content: "";
width: 0;
height: 100%;
position: absolute;
top: 0;
right: calc(-2em - calc(var(--line-width) / 2));
border-radius: 1em;
border-right: var(--menu-border);
}
.menu-item:not(:nth-last-child(2)):not(:last-child):before {
content: none;
}
.menu-item:not(:nth-last-child(1)):not(:nth-last-child(2)):not(:nth-last-child(3)):before {
content: "";
width: 100%;
height: 0;
position: absolute;
left: 0;
bottom: calc(-2em - calc(var(--line-width) / 2));
border-radius: 1em;
border-bottom: var(--menu-border);
}
}