new start

This commit is contained in:
Jesse Winton
2025-02-28 16:37:46 -05:00
parent a924d75bcd
commit 05c190e480
3 changed files with 87 additions and 71 deletions
+1 -1
View File
@@ -80,5 +80,5 @@
"vitest": "^1.6.0"
},
"type": "module",
"packageManager": "pnpm@10.4.1"
"packageManager": "pnpm@10.5.2"
}
+7 -17
View File
@@ -155,24 +155,14 @@
</script>
<div id="svelte">%sveltekit.body%</div>
<div class="page-loader">
<div class="animation">
<div></div>
<div></div>
<div></div>
<div></div>
<div class="content">
<img
src="/console/logos/appwrite-icon.svg"
width="40"
height="40"
alt="Appwrite Logo" />
<span class="message">Loading Cloud...</span>
</div>
<img
src="/console/images/appwrite-logo-light.svg"
width="120"
height="22"
class="logo-light"
alt="Appwrite Logo" />
<img
src="/console/images/appwrite-logo-dark.svg"
width="120"
height="22"
class="logo-dark"
alt="Appwrite Logo" />
</div>
</body>
</html>
+79 -53
View File
@@ -1,20 +1,21 @@
body {
margin: 0;
font-size: 100%;
width: 100%;
}
[data-loading='true'] .page-loader {
pointer-events: initial;
visibility: visible;
opacity: 1;
}
.theme-dark .page-loader {
--p-page-loader-background-color: #000;
--p-page-loader-background-color: hsl(240 5.7% 10.4%);
--base-gradient-color: #fff;
--base-color: #999;
}
.theme-light .page-loader {
--p-page-loader-background-color: #fff;
--base-gradient-color: #000;
--base-color: #aaa;
}
.theme-light .page-loader {
@@ -22,69 +23,94 @@ body {
}
.page-loader {
pointer-events: none;
--message-font-family: 'Inter, arial, sans-serif';
visibility: hidden;
opacity: 0;
z-index: 100000;
position: fixed;
height: 100%;
width: 100%;
inset: 0;
display: flex;
align-items: center;
justify-content: center;
background-color: var(--p-page-loader-background-color);
top: 0;
transition: all 0.2s ease-in-out;
}
transition: all 0.3s ease-in-out 0.35s;
.page-loader img {
visibility: hidden;
position: absolute;
max-width: 100%;
bottom: 60px;
left: 50%;
transform: translate(-50%, -50%);
img {
max-width: 100%;
width: 40px; /* Explicitly set width */
height: 40px; /* Explicitly set height */
object-fit: contain; /* Ensures image scales proportionally */
}
}
.page-loader {
.content {
display: flex;
flex-direction: column;
gap: 0.75rem;
align-items: center;
justify-content: center;
animation: content-in 0.75s ease-in-out forwards;
will-change: transform, filter;
}
.message {
--spread: 50px;
--bg: linear-gradient(
90deg,
#0000 calc(50% - var(--spread)),
var(--base-gradient-color),
#0000 calc(50% + var(--spread))
);
.theme-dark .page-loader .logo-dark {
visibility: visible;
display: block;
font-size: 1rem;
font-family: var(--message-font-family);
position: relative;
background: var(--bg), linear-gradient(var(--base-color), var(--base-color));
background-clip: text;
background-size:
250% 150%,
auto;
animation: loader 1.5s linear infinite;
color: transparent;
}
}
.theme-light .page-loader .logo-light {
visibility: visible;
[data-loading='false'] .page-loader {
.content {
animation: content-out 0.75s ease-in-out forwards;
}
}
.page-loader .animation {
position: absolute;
top: 45%;
left: 50%;
transform: translate(-50%, -50%) translateZ(1px);
width: 140px;
height: 140px;
@keyframes content-in {
from {
transform: translateY(4px);
filter: blur(2px);
}
to {
transform: translateY(0);
filter: blur(0);
}
}
.page-loader .animation > div {
box-sizing: border-box;
display: block;
position: absolute;
width: 124px;
height: 124px;
margin: 10px;
border: 10px solid rgb(219, 26, 90);
border-radius: 50%;
animation: animation 1.2s cubic-bezier(0.5, 0, 0.5, 1) infinite;
border-color: rgb(219, 26, 90) transparent transparent transparent;
@keyframes content-out {
from {
transform: translateY(0);
filter: blur(0);
}
to {
transform: translateY(4px);
filter: blur(2px);
}
}
.page-loader .animation > div:nth-child(1) {
animation-delay: -0.45s;
}
.page-loader .animation > div:nth-child(2) {
animation-delay: -0.3s;
}
.page-loader .animation > div:nth-child(3) {
animation-delay: -0.15s;
}
@keyframes animation {
0% {
transform: rotate(0deg);
@keyframes loader {
from {
background-position: 100% center;
}
100% {
transform: rotate(360deg);
to {
background-position: 0% center;
}
}