nosignal-shell/scss/sidebar.scss
2025-03-25 12:59:51 +11:00

221 lines
5.4 KiB
SCSS

@use "sass:color";
@use "scheme";
@use "lib";
@use "font";
@mixin notification($accent) {
.separator {
background-color: $accent;
}
.image {
@include lib.border($accent, 0.05);
}
}
.sidebar {
@include font.mono;
background-color: scheme.$mantle;
color: scheme.$text;
padding: lib.s(18) lib.s(20);
min-width: lib.s(380);
.pane {
@include lib.spacing(20, true);
}
.separator {
background-color: if(scheme.$light, scheme.$surface1, scheme.$overlay0);
margin: 0 lib.s(10);
}
.user {
@include lib.spacing(15);
.face {
@include lib.rounded(10);
background-position: center;
background-repeat: no-repeat;
background-size: cover;
min-width: lib.s(96);
min-height: lib.s(96);
font-size: lib.s(48);
font-weight: bold;
background-color: scheme.$base;
}
.details {
font-size: lib.s(14);
color: scheme.$yellow;
@include lib.spacing(8, true);
.name {
font-size: lib.s(18);
color: scheme.$text;
margin-bottom: lib.s(10);
}
.uptime {
color: scheme.$blue;
}
}
}
.media {
@include lib.spacing(15);
.cover-art {
@include lib.rounded(10);
@include lib.element-decel;
background-position: center;
background-repeat: no-repeat;
background-size: cover;
min-width: lib.s(128);
min-height: lib.s(128);
font-size: lib.s(64);
font-weight: bold;
background-color: scheme.$base;
}
.details {
font-size: lib.s(14);
.title {
font-size: lib.s(16);
color: scheme.$text;
}
.artist {
color: scheme.$green;
}
.controls {
margin-top: lib.s(20);
margin-bottom: lib.s(5);
font-size: lib.s(24);
& > * {
@include lib.element-decel;
&:disabled {
color: scheme.$overlay0;
}
&:hover,
&:focus {
color: scheme.$subtext0;
}
&:active {
color: scheme.$overlay2;
}
}
}
.slider {
@include lib.rounded(5);
@include lib.fluent-decel(1000ms);
min-height: lib.s(8);
background-color: scheme.$surface0;
color: scheme.$overlay0;
}
.time {
margin-top: lib.s(5);
font-size: lib.s(13);
color: scheme.$subtext0;
}
}
}
.notifications {
.header-bar {
margin-bottom: lib.s(10);
margin-right: lib.s(-10);
@include lib.spacing;
& > button {
@include lib.element-decel;
@include lib.rounded(10);
padding: lib.s(3) lib.s(8);
&:hover,
&:focus {
color: scheme.$subtext0;
}
&:active {
color: scheme.$overlay2;
}
&.enabled {
background-color: scheme.$primary;
color: scheme.$base;
&:hover,
&:focus {
background-color: color.mix(scheme.$primary, scheme.$base, 80%);
}
&:active {
background-color: color.mix(scheme.$primary, scheme.$base, 70%);
}
}
}
}
.notification {
.wrapper {
padding-bottom: lib.s(10);
}
.inner {
@include lib.rounded(20);
background-color: color.change(scheme.$surface1, $alpha: 0.4);
&.low {
@include notification(if(scheme.$light, scheme.$surface1, scheme.$overlay0));
}
&.normal {
@include lib.border(scheme.$primary, if(scheme.$light, 0.5, 0.3));
@include notification(scheme.$primary);
}
&.critical {
@include lib.border(scheme.$error, 0.8);
@include notification(scheme.$error);
}
}
.actions {
@include lib.spacing;
& > button {
@include lib.rounded(10);
@include lib.element-decel;
padding: lib.s(5) lib.s(10);
background-color: color.change(scheme.$surface1, $alpha: 0.5);
&:hover,
&:focus {
background-color: color.change(scheme.$surface2, $alpha: 0.5);
}
&:active {
background-color: color.change(scheme.$overlay0, $alpha: 0.5);
}
}
}
}
}
}