vibe coded frontend
This commit is contained in:
238
Frontend/src/components/dashboard/dashboard-sidebar.module.scss
Normal file
238
Frontend/src/components/dashboard/dashboard-sidebar.module.scss
Normal file
@@ -0,0 +1,238 @@
|
||||
.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;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user