Signed-off-by: NotAShelf <raf@notashelf.dev> Change-Id: If8fe8b38c1d9c4fecd40ff71f88d2ae06a6a6964
281 lines
4.6 KiB
SCSS
281 lines
4.6 KiB
SCSS
@use 'variables' as *;
|
|
@use 'mixins' as *;
|
|
|
|
// Light theme
|
|
|
|
.theme-light {
|
|
// Background
|
|
--bg-0: #{$light-bg-0};
|
|
--bg-1: #{$light-bg-1};
|
|
--bg-2: #{$light-bg-2};
|
|
--bg-3: #{$light-bg-3};
|
|
|
|
// Border
|
|
--border-subtle: #{$light-border-subtle};
|
|
--border: #{$light-border};
|
|
--border-strong: #{$light-border-strong};
|
|
|
|
// Text
|
|
--text-0: #{$light-text-0};
|
|
--text-1: #{$light-text-1};
|
|
--text-2: #{$light-text-2};
|
|
|
|
// Accent
|
|
--accent: #{$light-accent};
|
|
--accent-dim: #{$light-accent-dim};
|
|
--accent-text: #{$light-accent-text};
|
|
|
|
// Shadows
|
|
--shadow-sm: #{$light-shadow-sm};
|
|
--shadow: #{$light-shadow};
|
|
--shadow-lg: #{$light-shadow-lg};
|
|
|
|
// Scrollbar
|
|
::-webkit-scrollbar-thumb {
|
|
background: $overlay-inverse-strong;
|
|
|
|
&:hover {
|
|
background: $overlay-inverse-medium;
|
|
}
|
|
}
|
|
|
|
::-webkit-scrollbar-track {
|
|
background: $overlay-inverse-light;
|
|
}
|
|
|
|
// Graph
|
|
.graph-nodes .graph-node text {
|
|
fill: $light-text-0;
|
|
}
|
|
|
|
.graph-edges line {
|
|
stroke: $overlay-inverse-strong;
|
|
}
|
|
|
|
// PDF
|
|
.pdf-container {
|
|
background: $light-bg-3;
|
|
}
|
|
}
|
|
|
|
// Skeleton
|
|
|
|
.skeleton-pulse {
|
|
@include skeleton-pulse;
|
|
border-radius: 4px;
|
|
}
|
|
|
|
.skeleton-card {
|
|
@include flex(column, flex-start, stretch, $space-4);
|
|
padding: $space-4;
|
|
}
|
|
|
|
.skeleton-thumb {
|
|
width: 100%;
|
|
aspect-ratio: 1;
|
|
border-radius: 6px;
|
|
}
|
|
|
|
.skeleton-text {
|
|
height: 14px;
|
|
width: 80%;
|
|
|
|
&-short {
|
|
width: 50%;
|
|
}
|
|
}
|
|
|
|
.skeleton-row {
|
|
display: flex;
|
|
gap: $space-6;
|
|
padding: 10px $space-8;
|
|
align-items: center;
|
|
}
|
|
|
|
.skeleton-cell {
|
|
height: 14px;
|
|
flex: 1;
|
|
border-radius: 4px;
|
|
|
|
&-icon {
|
|
width: 32px;
|
|
height: 32px;
|
|
flex: none;
|
|
border-radius: 4px;
|
|
}
|
|
|
|
&-wide {
|
|
flex: 3;
|
|
}
|
|
}
|
|
|
|
.loading-overlay {
|
|
position: absolute;
|
|
inset: 0;
|
|
@include flex(column, center, center, $space-5);
|
|
background: $media-overlay-light;
|
|
z-index: 100;
|
|
border-radius: $radius-lg;
|
|
}
|
|
|
|
.loading-spinner {
|
|
width: 32px;
|
|
height: 32px;
|
|
border: 3px solid $border;
|
|
border-top-color: $accent;
|
|
border-radius: 50%;
|
|
animation: spin 0.8s linear infinite;
|
|
}
|
|
|
|
.loading-message {
|
|
color: $text-1;
|
|
font-size: 0.9rem;
|
|
}
|
|
|
|
// Login
|
|
|
|
.login-container {
|
|
@include flex-center;
|
|
height: 100vh;
|
|
background: $bg-0;
|
|
}
|
|
|
|
.login-card {
|
|
background: $bg-2;
|
|
border: 1px solid $border;
|
|
border-radius: $radius-md;
|
|
padding: $space-12;
|
|
width: 360px;
|
|
box-shadow: $shadow-lg;
|
|
}
|
|
|
|
.login-title {
|
|
font-size: 20px;
|
|
font-weight: $font-weight-bold;
|
|
color: $text-0;
|
|
text-align: center;
|
|
margin-bottom: $space-1;
|
|
}
|
|
|
|
.login-subtitle {
|
|
font-size: $font-size-lg;
|
|
color: $text-2;
|
|
text-align: center;
|
|
margin-bottom: 20px;
|
|
}
|
|
|
|
.login-error {
|
|
background: $error-light;
|
|
border: 1px solid $error-border;
|
|
border-radius: $radius-sm;
|
|
padding: $space-4 $space-6;
|
|
margin-bottom: $space-6;
|
|
font-size: $font-size-md;
|
|
color: $error;
|
|
}
|
|
|
|
.login-form {
|
|
input[type='text'],
|
|
input[type='password'] {
|
|
width: 100%;
|
|
}
|
|
}
|
|
|
|
.login-btn {
|
|
width: 100%;
|
|
padding: $space-4 $space-8;
|
|
font-size: $font-size-lg;
|
|
margin-top: $space-1;
|
|
}
|
|
|
|
// Pagination
|
|
|
|
.pagination {
|
|
@include flex(row, center, center, $space-1);
|
|
margin-top: $space-8;
|
|
padding: $space-4 0;
|
|
}
|
|
|
|
.page-btn {
|
|
min-width: 28px;
|
|
text-align: center;
|
|
font-variant-numeric: tabular-nums;
|
|
}
|
|
|
|
.page-ellipsis {
|
|
color: $text-2;
|
|
padding: 0 $space-2;
|
|
font-size: $font-size-md;
|
|
user-select: none;
|
|
}
|
|
|
|
// Help overlay
|
|
|
|
.help-overlay {
|
|
position: fixed;
|
|
inset: 0;
|
|
background: $media-overlay-medium;
|
|
@include flex-center;
|
|
z-index: 200;
|
|
animation: fade-in 0.1s ease-out;
|
|
}
|
|
|
|
.help-dialog {
|
|
background: $bg-2;
|
|
border: 1px solid $border;
|
|
border-radius: $radius-md;
|
|
padding: $space-8;
|
|
min-width: 300px;
|
|
max-width: 400px;
|
|
box-shadow: $shadow-lg;
|
|
|
|
h3 {
|
|
font-size: $font-size-3xl;
|
|
font-weight: $font-weight-semibold;
|
|
margin-bottom: $space-8;
|
|
}
|
|
}
|
|
|
|
.help-shortcuts {
|
|
@include flex(column, flex-start, stretch, $space-4);
|
|
margin-bottom: $space-8;
|
|
}
|
|
|
|
.shortcut-row {
|
|
@include flex(row, flex-start, center, $space-6);
|
|
|
|
kbd {
|
|
display: inline-block;
|
|
padding: $space-1 $space-4;
|
|
background: $bg-0;
|
|
border: 1px solid $border;
|
|
border-radius: $radius-sm;
|
|
font-family: $font-family-mono;
|
|
font-size: $font-size-base;
|
|
color: $text-0;
|
|
min-width: 32px;
|
|
text-align: center;
|
|
}
|
|
|
|
span {
|
|
font-size: $font-size-lg;
|
|
color: $text-1;
|
|
}
|
|
}
|
|
|
|
.help-close {
|
|
display: block;
|
|
width: 100%;
|
|
padding: 6px $space-6;
|
|
background: $bg-3;
|
|
border: 1px solid $border;
|
|
border-radius: $radius-sm;
|
|
color: $text-0;
|
|
font-size: $font-size-md;
|
|
cursor: pointer;
|
|
text-align: center;
|
|
|
|
&:hover {
|
|
background: $overlay-strong;
|
|
}
|
|
}
|