2024-11-28 16:17:07 +01:00

255 lines
4.6 KiB
CSS

.menu {
display: flex;
flex-direction: column;
background-color: rgb(28, 28, 28);
transition: left 0.25s;
position: sticky;
z-index: 10;
height: 100%;
top: 0;
transition:
width 0.5s,
font-size 0.5s,
left 0.5s;
width: 272px;
min-width: 80px;
@media (max-width: 800px) {
& {
left: -300px;
position: fixed;
z-index: 12;
width: 100%;
}
&[aria-expanded] {
left: 0px;
font-size: 12px;
}
}
@media (min-width: 1200px) {
&[aria-expanded] a[data-title]:hover::after {
content: attr(data-title);
background-color: rgb(47, 47, 47);
color: rgb(255, 255, 255);
padding: 8px;
border-radius: 4px;
font-size: 12px;
line-height: 14px;
display: block;
white-space: nowrap;
position: absolute;
right: 1rem;
overflow: visible;
}
}
&:not([aria-expanded]) {
width: 80px;
.items {
a {
width: 26px;
gap: 0;
display: flex;
justify-content: center;
@media (min-width: 801px) {
span + span {
font-size: 0;
display: none;
}
}
}
}
}
> div {
display: flex;
flex-direction: column;
padding: 12px;
position: sticky;
top: 0;
height: calc(100vh - 24px);
overflow: auto;
}
header {
padding: 13px;
display: flex;
align-items: center;
gap: 1.5rem;
background-color: rgb(6, 6, 6);
border-radius: 8px;
> svg:first-child {
min-width: 30px;
}
@media (min-width: 1200px) {
> svg:first-child {
cursor: pointer;
}
}
div {
flex: 1;
text-align: right;
transition: opacity 0.35s;
display: inline-block;
overflow: hidden;
min-width: 0;
svg {
cursor: pointer;
}
&:hover {
animation-name: example;
animation-duration: 2.5s;
animation-iteration-count: infinite;
}
}
}
.items {
padding-top: 1.5rem;
display: flex;
flex-direction: column;
position: relative;
height: 100%;
margin-bottom: 2.5rem;
gap: 0.5rem;
border-top: 1px solid rgba(150, 150, 150, 0.2);
&::before {
height: 20px;
width: 8px;
background-color: var(--codex-color-primary);
position: absolute;
content: " ";
transition:
top 1s,
bottom 1s;
border-radius: 4px;
left: -16px;
}
&:has(.active:nth-child(1))::before {
top: 30px;
}
&:has(.active:nth-child(2))::before {
top: 72px;
}
&:has(.active:nth-child(3))::before {
top: 115px;
}
/* &:has(.active:nth-child(4))::before {
top: 158px;
} */
/*
&:has(.active:nth-child(5))::before {
top: 201px;
}
&:has(.active:nth-child(6))::before {
top: 244px;
} */
&:has(.active:nth-child(8))::before {
top: 339px;
}
&:has(.active:nth-child(9))::before {
top: 382px;
}
&:has(.active:nth-child(11))::before {
top: 475px;
}
&:has(.active:nth-child(12))::before {
top: 513px;
}
&:has(.active:nth-child(14))::before {
top: calc(100% - 113px);
}
&:has(.active:nth-child(15))::before {
top: calc(100% - 70px);
}
&:has(.active:nth-child(16))::before {
top: calc(100% - 27px);
}
&:not(:first-child) {
margin-top: 0.5rem;
}
hr {
margin-top: 1.5rem;
margin-bottom: 1.5rem;
border: 0.1px solid rgba(150, 150, 150, 0.2);
width: 100%;
}
section {
flex: 1;
}
a {
display: flex;
align-items: center;
gap: 0.75rem;
padding: 8px 10px;
margin-bottom: 0;
text-decoration: none;
font-size: 14px;
font-weight: 500;
line-height: 20px;
letter-spacing: -0.006em;
color: rgba(150, 150, 150, 1);
border-radius: 8px;
transition: background-color 0.35s;
position: relative;
margin-left: 6px;
&:hover:not([aria-disabled="true"]),
&.active:not([aria-disabled="true"]) {
background-color: rgb(47, 47, 47);
color: rgb(199, 199, 199);
}
span:first-child {
display: flex;
align-items: center;
justify-content: center;
width: 20px;
height: 20px;
transition: color 1s;
}
span + span {
display: inline-block;
overflow: hidden;
}
@media (min-width: 801px) {
span + span {
min-width: 0;
}
}
&.active:not([aria-disabled="true"]) span:first-child {
color: var(--codex-color-primary);
}
}
}
}