141 lines
3.6 KiB
HTML
141 lines
3.6 KiB
HTML
<!doctype html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="UTF-8"/>
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
|
|
<meta name="theme-color" content="#F1F1F1" id="theme-color-meta">
|
|
<meta name="description" content="Cloud Mail 是一个 Serverless 响应式邮箱服务,支持邮件发送,可部署到 Cloudflare 平台,降低服务器成本。Cloud Mail is a serverless responsive email service that supports email sending and can be deployed on Cloudflare to reduce server costs.">
|
|
<title>Cloud Mail</title>
|
|
<link rel="icon" href="/public/mail.png" type="image/png">
|
|
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;600&display=swap" rel="stylesheet">
|
|
<script src="https://challenges.cloudflare.com/turnstile/v0/api.js" async defer></script>
|
|
<script>
|
|
const uiStoreStr = localStorage.getItem('ui')
|
|
if (uiStoreStr) {
|
|
const uiStore = JSON.parse(uiStoreStr)
|
|
const root = document.documentElement
|
|
root.setAttribute('class', uiStore.dark ? 'dark' : '');
|
|
const metaTag = document.getElementById('theme-color-meta');
|
|
const isMobile = !window.matchMedia("(pointer: fine) and (hover: hover)").matches;
|
|
metaTag.setAttribute('content', uiStore.dark ? (isMobile ? '#141414' : '#000000') : (isMobile ? '#FFFFFF' : '#F1F1F1'));
|
|
}
|
|
</script>
|
|
</head>
|
|
<style>
|
|
html {
|
|
background: #FFFFFF;
|
|
}
|
|
.dark {
|
|
background: #141414;
|
|
}
|
|
#loading-first {
|
|
position: fixed;
|
|
left: 0;
|
|
top: 0;
|
|
height: 100%;
|
|
width: 100%;
|
|
display: flex;
|
|
justify-content: center;
|
|
align-items: center;
|
|
z-index: 500;
|
|
background: var(--el-bg-color);
|
|
}
|
|
|
|
.loading-hide {
|
|
pointer-events: none;
|
|
transition: all 200ms;
|
|
opacity: 0;
|
|
}
|
|
|
|
.loading-icon {
|
|
display: inline-flex;
|
|
flex-direction: column;
|
|
align-items: center;
|
|
justify-content: center;
|
|
gap: 2px;
|
|
}
|
|
|
|
.loading-image {
|
|
width: 70px;
|
|
height: 70px;
|
|
object-fit: contain;
|
|
}
|
|
|
|
.loading-progress {
|
|
position: relative;
|
|
width: 64px;
|
|
height: 4px;
|
|
overflow: hidden;
|
|
border-radius: 999px;
|
|
background: rgba(64, 158, 255, 0.18);
|
|
}
|
|
|
|
.loading-progress::before {
|
|
content: "";
|
|
position: absolute;
|
|
left: 0;
|
|
top: 0;
|
|
width: 100%;
|
|
height: 100%;
|
|
border-radius: inherit;
|
|
background: #409EFF;
|
|
transform: scaleX(0);
|
|
transform-origin: left center;
|
|
animation: loading-progress-grow 2.4s linear forwards;
|
|
}
|
|
|
|
.loading-progress::after {
|
|
content: "";
|
|
position: absolute;
|
|
top: 0;
|
|
width: 24px;
|
|
height: 100%;
|
|
border-radius: inherit;
|
|
background: rgba(64, 158, 255, 0.45);
|
|
filter: blur(4px);
|
|
transform: translateX(-24px);
|
|
animation: loading-progress-peg 2.4s linear forwards;
|
|
}
|
|
|
|
.loading-complete .loading-progress::before {
|
|
animation: none;
|
|
transform: scaleX(1);
|
|
transition: transform 200ms linear;
|
|
}
|
|
|
|
.loading-complete .loading-progress::after {
|
|
animation: none;
|
|
transform: translateX(60px);
|
|
transition: transform 200ms linear;
|
|
}
|
|
|
|
@keyframes loading-progress-grow {
|
|
0% {
|
|
transform: scaleX(0);
|
|
}
|
|
100% {
|
|
transform: scaleX(1);
|
|
}
|
|
}
|
|
|
|
@keyframes loading-progress-peg {
|
|
0% {
|
|
transform: translateX(-24px);
|
|
}
|
|
100% {
|
|
transform: translateX(60px);
|
|
}
|
|
}
|
|
</style>
|
|
<body>
|
|
<div id="loading-first" >
|
|
<div class="loading-icon">
|
|
<img class="loading-image" src="/mail-pwa.png" alt="Cloud Mail">
|
|
<div class="loading-progress" aria-hidden="true"></div>
|
|
</div>
|
|
</div>
|
|
<div id="app"></div>
|
|
<script type="module" src="/src/main.js"></script>
|
|
</body>
|
|
</html>
|