Add local automatic backups and Aniimo regions lists
All checks were successful
Deploy Sokko G / deploy (push) Successful in 18s

This commit is contained in:
Shinuwa 2026-09-24 09:39:33 +02:00
parent 2255de94a7
commit 0a3bb4dffd
24 changed files with 908 additions and 16 deletions

View file

@ -31,6 +31,218 @@
margin-bottom: var(--space-6);
}
.auto-backup-modal {
width: min(620px, calc(100vw - 32px));
max-height: min(760px, calc(100vh - 32px));
overflow-y: auto;
}
.auto-backup-modal-header {
display: flex;
align-items: flex-start;
justify-content: space-between;
gap: var(--space-4);
}
.auto-backup-modal-header h2 {
margin-bottom: 0;
}
.auto-backup-modal-header .eyebrow,
.auto-backup-folder .eyebrow,
.auto-backup-last .eyebrow {
margin-bottom: 4px;
}
.auto-backup-description {
color: var(--color-text-secondary);
line-height: 1.6;
}
.auto-backup-compatibility {
margin-bottom: var(--space-5);
padding: var(--space-4);
border: 1px solid rgba(165, 180, 252, 0.14);
border-radius: var(--radius-md);
background: rgba(5, 7, 17, 0.32);
}
.auto-backup-compatibility strong {
display: block;
color: var(--color-text-primary);
font-size: var(--font-size-sm);
}
.auto-backup-compatibility ul {
display: flex;
flex-wrap: wrap;
gap: 8px;
margin: var(--space-3) 0;
padding: 0;
list-style: none;
}
.auto-backup-compatibility li {
padding: 5px 9px;
border: 1px solid rgba(246, 196, 83, 0.2);
border-radius: var(--radius-pill);
background: rgba(246, 196, 83, 0.08);
color: var(--color-text-secondary);
font-size: var(--font-size-xs);
font-weight: 800;
}
.auto-backup-compatibility p {
margin: 0;
color: var(--color-text-muted);
font-size: var(--font-size-sm);
}
.auto-backup-folder {
display: flex;
align-items: stretch;
flex-direction: column;
gap: var(--space-4);
margin-top: var(--space-5);
}
.auto-backup-folder,
.auto-backup-last {
padding: var(--space-4);
border: 1px solid rgba(165, 180, 252, 0.14);
border-radius: var(--radius-md);
background: rgba(16, 20, 38, 0.42);
}
.auto-backup-folder > div {
display: flex;
min-width: 0;
flex-direction: column;
gap: 4px;
}
.auto-backup-folder strong {
overflow-wrap: anywhere;
color: var(--color-text-primary);
}
.auto-backup-last {
margin-top: var(--space-6);
}
.auto-backup-last strong {
display: block;
color: var(--color-text-primary);
font-size: var(--font-size-lg);
}
.auto-backup-toggle {
display: grid;
grid-template-columns: auto minmax(0, 1fr);
align-items: center;
gap: var(--space-3);
margin-top: var(--space-5);
padding: var(--space-4);
border: 1px solid rgba(165, 180, 252, 0.16);
border-radius: var(--radius-md);
background: rgba(16, 20, 38, 0.52);
cursor: pointer;
}
.auto-backup-toggle:has(input:disabled) {
cursor: not-allowed;
opacity: 0.65;
}
.auto-backup-toggle .native-switch-input {
position: absolute;
width: 1px;
height: 1px;
overflow: hidden;
clip: rect(0 0 0 0);
clip-path: inset(50%);
white-space: nowrap;
}
.auto-backup-toggle .switch-track {
position: relative;
display: block;
width: 52px;
height: 30px;
flex: 0 0 auto;
border: 1px solid rgba(165, 180, 252, 0.24);
border-radius: var(--radius-pill);
background: rgba(7, 10, 24, 0.72);
transition: background-color var(--duration-fast) var(--ease-standard), border-color var(--duration-fast) var(--ease-standard);
}
.auto-backup-toggle .switch-thumb {
position: absolute;
top: 50%;
left: 4px;
width: 20px;
height: 20px;
border-radius: 50%;
background: var(--color-text-muted);
transform: translateY(-50%);
transition: left var(--duration-fast) var(--ease-standard), background-color var(--duration-fast) var(--ease-standard);
}
.auto-backup-toggle input:checked + .switch-track {
border-color: rgba(246, 196, 83, 0.5);
background: rgba(246, 196, 83, 0.16);
}
.auto-backup-toggle input:checked + .switch-track .switch-thumb {
left: 26px;
background: var(--color-accent-gold);
}
.auto-backup-toggle:focus-within {
border-color: rgba(246, 196, 83, 0.45);
}
.auto-backup-toggle-copy {
display: flex;
min-width: 0;
flex-direction: column;
gap: 4px;
}
.auto-backup-toggle-copy strong {
color: var(--color-text-primary);
font-size: var(--font-size-base);
}
.auto-backup-toggle-copy small {
color: var(--color-text-muted);
line-height: 1.45;
}
.auto-backup-modal-footer {
margin-top: var(--space-5);
}
.auto-backup-close-footer {
margin-top: var(--space-3);
padding-top: var(--space-4);
border-top: 1px solid rgba(165, 180, 252, 0.12);
}
@media (max-width: 600px) {
.auto-backup-folder {
gap: var(--space-3);
}
.auto-backup-modal-footer {
flex-wrap: wrap;
}
.auto-backup-modal-footer > button {
flex: 1 1 180px;
}
}
@property --notification-toast-angle {
syntax: "<angle>";
inherits: false;