From 5495e18173c0778c6eaba4ae1eb8c30ea46bbef7 Mon Sep 17 00:00:00 2001 From: kevin Date: Mon, 16 Mar 2026 11:30:34 +0100 Subject: [PATCH 1/6] feat: add check backup --- assets/css/main.css | 41 ++++++ components/MessageDiscord.vue | 39 ++++-- components/Speed-test.vue | 35 ++++-- components/StatusBackup.vue | 224 +++++++++++++++++++++++++++++++++ components/StatusSite.vue | 22 ++-- components/SystemResources.vue | 31 +++-- layouts/default.vue | 78 ++++++++---- pages/backup.vue | 121 +++++++++++++----- pages/index.vue | 33 ++++- server/api/check-backup.get.ts | 149 ++++++++++++++++++++++ 10 files changed, 678 insertions(+), 95 deletions(-) create mode 100644 components/StatusBackup.vue create mode 100644 server/api/check-backup.get.ts diff --git a/assets/css/main.css b/assets/css/main.css index 1a04409..d7aaddf 100644 --- a/assets/css/main.css +++ b/assets/css/main.css @@ -34,12 +34,35 @@ min-height: 100vh; font-family: var(--font-display); background: rgb(var(--m-bg)); + background-image: + radial-gradient(circle at top left, rgb(var(--m-accent) / 0.1), transparent 24%), + radial-gradient(circle at top right, rgb(var(--m-success) / 0.08), transparent 18%); color: rgb(var(--m-text)); -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; transition: background-color 0.4s ease, color 0.4s ease; } + ::selection { + background: rgb(var(--m-accent) / 0.28); + color: rgb(var(--m-text)); + } + + a, + button { + transition: + color 0.2s ease, + background-color 0.2s ease, + border-color 0.2s ease, + box-shadow 0.2s ease, + transform 0.2s ease; + } + + :focus-visible { + outline: 2px solid rgb(var(--m-accent) / 0.85); + outline-offset: 2px; + } + img { display: block; } @@ -75,6 +98,13 @@ transition: box-shadow 0.3s ease; } + .card-glow:hover { + box-shadow: + 0 0 0 1px rgb(var(--m-accent) / calc(var(--m-card-border-opacity) + 0.04)), + 0 10px 30px -10px rgba(0, 0, 0, calc(var(--m-shadow-opacity) + 0.08)), + 0 0 56px -14px rgb(var(--m-accent) / 0.1); + } + .card-glow-success { box-shadow: 0 0 0 1px rgb(var(--m-success) / 0.15), @@ -165,3 +195,14 @@ ::-webkit-scrollbar-thumb:hover { background: rgb(var(--m-muted)); } + +@media (prefers-reduced-motion: reduce) { + *, + *::before, + *::after { + animation-duration: 0.01ms !important; + animation-iteration-count: 1 !important; + transition-duration: 0.01ms !important; + scroll-behavior: auto !important; + } +} diff --git a/components/MessageDiscord.vue b/components/MessageDiscord.vue index 7f17a83..3767056 100644 --- a/components/MessageDiscord.vue +++ b/components/MessageDiscord.vue @@ -56,12 +56,15 @@ const { data: messages, error } = await useFetch('/api/discord/messages', { diff --git a/components/Speed-test.vue b/components/Speed-test.vue index c0243d4..0848ae4 100644 --- a/components/Speed-test.vue +++ b/components/Speed-test.vue @@ -118,10 +118,13 @@ async function runTests() { diff --git a/components/StatusBackup.vue b/components/StatusBackup.vue new file mode 100644 index 0000000..c2f9140 --- /dev/null +++ b/components/StatusBackup.vue @@ -0,0 +1,224 @@ + + + + + diff --git a/components/StatusSite.vue b/components/StatusSite.vue index 9e3b883..1616b83 100644 --- a/components/StatusSite.vue +++ b/components/StatusSite.vue @@ -1,7 +1,7 @@