sendou.ink/app/components/SideNav.module.css
2026-01-05 21:24:56 +02:00

109 lines
2.1 KiB
CSS

.sideNav {
--side-nav-width: 200px;
background-color: var(--color-bg-high);
min-width: var(--side-nav-width);
max-width: var(--side-nav-width);
border: 1.5px solid var(--color-border);
border-radius: var(--rounded);
overflow: hidden;
}
.sideNavInner {
display: flex;
flex-direction: column;
gap: var(--s-2);
padding: var(--s-1-5);
padding-block-end: var(--s-2);
overflow-y: auto;
max-height: calc(100vh - var(--sticky-top) - var(--s-3-5));
border-radius: calc(var(--rounded) - var(--s-1-5));
}
.sideNavHeader {
color: var(--color-text-high);
padding: var(--s-2-5) var(--s-2);
margin-inline: calc(-1 * var(--s-1-5));
background-color: var(--color-border);
display: flex;
align-items: center;
gap: var(--s-2);
}
.sideNavHeader:first-child {
margin-block-start: calc(-1 * var(--s-1-5));
}
.sideNavHeader h2 {
font-size: var(--fonts-xs);
font-weight: var(--bold);
}
.sideNavHeader svg {
width: 18px;
}
.iconContainer {
background-color: var(--color-bg-high);
border-radius: var(--rounded-sm);
padding: var(--s-1-5);
}
.sideNavLink {
font-size: var(--fonts-xs);
color: var(--color-text-high);
text-decoration: none;
padding: var(--s-1) var(--s-2);
border-radius: var(--rounded-xs);
transition:
background-color 0.15s,
color 0.15s;
display: flex;
align-items: center;
gap: var(--s-2);
&:hover {
&:not(:has(.sideNavLinkSubtitle)) {
color: var(--color-text);
}
background-color: var(--color-bg-higher);
}
&[aria-current="page"] {
color: var(--color-text);
background-color: var(--color-bg-higher);
font-weight: 600;
}
}
.sideNavLinkImage {
width: 32px;
height: 32px;
border-radius: var(--rounded-xs);
object-fit: cover;
flex-shrink: 0;
}
.sideNavLinkContent {
display: flex;
flex-direction: column;
min-width: 0;
}
.sideNavLinkTitle {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
&:has(+ .sideNavLinkSubtitle) {
color: var(--color-text);
}
}
.sideNavLinkSubtitle {
font-size: var(--fonts-xxs);
color: var(--color-text-lighter);
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}