Files
BoostAI/Frontend/src/components/dashboard/dashboard-sidebar.module.scss
2026-05-12 10:34:42 +01:00

239 lines
3.8 KiB
SCSS

.sidebar {
display: grid;
gap: 1rem;
padding: 1rem;
background: var(--surface-panel);
border: 1px solid var(--border-strong);
border-radius: 1.5rem;
box-shadow: var(--shadow-soft);
@media (min-width: 768px) {
padding: 1.15rem;
}
@media (min-width: 1024px) {
gap: 1.25rem;
padding: 1.3rem;
position: sticky;
top: 1rem;
}
}
.brand {
display: flex;
align-items: center;
gap: 0.85rem;
}
.logoMark {
width: 2.6rem;
height: 2.6rem;
display: grid;
place-items: center;
border-radius: 0.9rem;
background: linear-gradient(135deg, var(--action-primary-start), var(--info));
color: var(--action-primary-text);
font-weight: 600;
box-shadow: var(--action-primary-shadow);
}
.brandName {
font-weight: 600;
font-size: 1rem;
}
.brandMeta {
color: var(--text-muted);
font-size: 0.9rem;
}
.navigation {
display: grid;
gap: 0.35rem;
@media (max-width: 519px) {
display: flex;
overflow-x: auto;
gap: 0.55rem;
padding-bottom: 0.1rem;
scrollbar-width: none;
&::-webkit-scrollbar {
display: none;
}
}
@media (min-width: 520px) and (max-width: 1023px) {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
}
.link {
display: flex;
align-items: flex-start;
gap: 0.8rem;
padding: 0.78rem 0.85rem;
border-radius: 1rem;
color: var(--text-muted);
transition:
background-color 0.2s ease,
color 0.2s ease,
transform 0.2s ease;
&:hover {
text-decoration: none;
background: var(--surface-soft);
color: var(--text);
transform: translateX(2px);
}
}
@media (max-width: 519px) {
.link {
flex: 0 0 auto;
align-items: center;
gap: 0.6rem;
padding: 0.7rem 0.82rem;
border: 1px solid var(--border-soft);
background: var(--surface-panel-strong);
white-space: nowrap;
}
}
.linkCopy {
display: grid;
gap: 0.08rem;
min-width: 0;
strong {
color: var(--text);
font-size: 0.94rem;
font-weight: 500;
line-height: 1.15;
}
small {
color: var(--text-muted);
font-size: 0.8rem;
line-height: 1.2;
}
}
@media (max-width: 519px) {
.linkCopy {
gap: 0;
strong {
font-size: 0.9rem;
}
small {
display: none;
}
}
}
.active {
background: var(--surface-info);
color: var(--info);
.iconSlot {
background: var(--blue-100);
border-color: color-mix(in srgb, var(--info) 18%, var(--border-divider));
color: var(--info);
}
.linkCopy {
strong,
small {
color: var(--info);
}
}
}
.iconSlot {
width: 1.9rem;
height: 1.9rem;
display: grid;
place-items: center;
border-radius: 0.65rem;
background: var(--surface-panel-strong);
border: 1px solid var(--border-divider);
font-size: 0.8rem;
font-weight: 600;
flex-shrink: 0;
}
.supportCard {
display: grid;
gap: 0.8rem;
margin-top: 0.25rem;
padding: 1rem;
background: linear-gradient(180deg, var(--surface-panel-strong), var(--surface-soft));
border: 1px solid var(--border-soft);
border-radius: 1.25rem;
}
@media (max-width: 519px) {
.supportCard {
gap: 0.7rem;
padding: 0.9rem;
p {
font-size: 0.86rem;
}
}
}
.avatarRow {
display: flex;
align-items: center;
span {
width: 2rem;
height: 2rem;
display: grid;
place-items: center;
border-radius: 9999px;
border: 2px solid var(--surface-panel);
background: var(--surface-accent-soft);
color: var(--primary);
font-size: 0.85rem;
font-weight: 600;
&:not(:first-child) {
margin-left: -0.4rem;
}
}
}
.supportCard h2 {
font-size: 1.05rem;
font-weight: 500;
line-height: 1.15;
}
.supportCard p {
color: var(--text-muted);
font-size: 0.92rem;
}
.supportButton {
display: inline-flex;
align-items: center;
justify-content: center;
padding: 0.8rem 1rem;
border: none;
border-radius: 9999px;
background: linear-gradient(135deg, var(--action-primary-start), var(--action-primary-end));
color: var(--action-primary-text);
box-shadow: var(--action-primary-shadow);
cursor: pointer;
font-weight: 600;
white-space: nowrap;
&:hover {
text-decoration: none;
}
}