228 lines
6.3 KiB
HTML
228 lines
6.3 KiB
HTML
<!DOCTYPE html>
|
||
<html lang="zh-CN">
|
||
<head>
|
||
<meta charset="UTF-8">
|
||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||
<title>银河锋锐(GVSDS)</title>
|
||
<link rel="icon" href="https://hb.cdn.gvsds.com/assets/icon/ICON.png">
|
||
<!-- 主题预置:在首屏绘制前按「本地偏好 → 系统设置」写入主题,避免深浅色闪烁 -->
|
||
<script>
|
||
(function () {
|
||
var mode = 'system'
|
||
try {
|
||
var stored = localStorage.getItem('gvsds-theme')
|
||
if (stored === 'light' || stored === 'dark' || stored === 'system') mode = stored
|
||
} catch (e) {}
|
||
var systemDark = window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches
|
||
var theme = mode === 'system' ? (systemDark ? 'dark' : 'light') : mode
|
||
var root = document.documentElement
|
||
root.dataset.themeMode = theme
|
||
root.classList.toggle('dark', theme === 'dark')
|
||
root.style.colorScheme = theme
|
||
})()
|
||
</script>
|
||
<!-- 首屏加载样式内联:在 JS 包下载/执行前即可渲染,避免白屏 -->
|
||
<style>
|
||
#site-loader {
|
||
position: fixed;
|
||
inset: 0;
|
||
z-index: 9999;
|
||
display: grid;
|
||
place-items: center;
|
||
overflow: hidden;
|
||
background: #ffffff;
|
||
opacity: 1;
|
||
visibility: visible;
|
||
transition: opacity 0.45s ease, visibility 0.45s ease;
|
||
}
|
||
|
||
#site-loader.is-done {
|
||
opacity: 0;
|
||
visibility: hidden;
|
||
pointer-events: none;
|
||
}
|
||
|
||
#site-loader .gvs-loader-glow {
|
||
position: absolute;
|
||
width: 520px;
|
||
height: 520px;
|
||
border-radius: 50%;
|
||
filter: blur(90px);
|
||
pointer-events: none;
|
||
}
|
||
|
||
#site-loader .gvs-loader-glow-left {
|
||
top: -180px;
|
||
left: -160px;
|
||
background: rgba(59, 130, 246, 0.16);
|
||
}
|
||
|
||
#site-loader .gvs-loader-glow-right {
|
||
right: -180px;
|
||
bottom: -200px;
|
||
background: rgba(30, 64, 175, 0.12);
|
||
}
|
||
|
||
#site-loader .gvs-loader-content {
|
||
position: relative;
|
||
display: flex;
|
||
flex-direction: column;
|
||
align-items: center;
|
||
padding: 0 24px;
|
||
}
|
||
|
||
#site-loader .gvs-loader-logo-wrap {
|
||
position: relative;
|
||
width: 96px;
|
||
height: 96px;
|
||
display: grid;
|
||
place-items: center;
|
||
margin-bottom: 28px;
|
||
}
|
||
|
||
#site-loader .gvs-loader-logo {
|
||
width: 56px;
|
||
height: 56px;
|
||
object-fit: contain;
|
||
filter: drop-shadow(0 6px 14px rgba(30, 64, 175, 0.18));
|
||
}
|
||
|
||
#site-loader .gvs-loader-ring {
|
||
position: absolute;
|
||
inset: 0;
|
||
border: 2px solid transparent;
|
||
border-top-color: #3b82f6;
|
||
border-right-color: rgba(59, 130, 246, 0.35);
|
||
border-radius: 50%;
|
||
animation: gvsLoaderSpin 0.9s linear infinite;
|
||
}
|
||
|
||
#site-loader .gvs-loader-ring-inner {
|
||
inset: 9px;
|
||
border-top-color: rgba(30, 64, 175, 0.5);
|
||
border-right-color: transparent;
|
||
border-bottom-color: #93c5fd;
|
||
animation: gvsLoaderSpin 1.5s linear infinite reverse;
|
||
}
|
||
|
||
#site-loader .gvs-loader-title {
|
||
font-family: 'Inter', system-ui, -apple-system, sans-serif;
|
||
font-size: 22px;
|
||
font-weight: 700;
|
||
letter-spacing: 0.24em;
|
||
text-indent: 0.24em;
|
||
color: #1e40af;
|
||
}
|
||
|
||
#site-loader .gvs-loader-subtitle {
|
||
margin-top: 10px;
|
||
font-family: 'Inter', system-ui, -apple-system, sans-serif;
|
||
font-size: 10px;
|
||
font-weight: 500;
|
||
letter-spacing: 0.28em;
|
||
text-indent: 0.28em;
|
||
color: #9ca3af;
|
||
text-align: center;
|
||
}
|
||
|
||
#site-loader .gvs-loader-track {
|
||
position: relative;
|
||
width: 180px;
|
||
height: 3px;
|
||
margin-top: 30px;
|
||
border-radius: 999px;
|
||
background: #e5edff;
|
||
overflow: hidden;
|
||
}
|
||
|
||
#site-loader .gvs-loader-bar {
|
||
position: absolute;
|
||
top: 0;
|
||
left: 0;
|
||
width: 40%;
|
||
height: 100%;
|
||
border-radius: inherit;
|
||
background: linear-gradient(90deg, #1e40af, #3b82f6, #60a5fa);
|
||
box-shadow: 0 0 12px rgba(59, 130, 246, 0.55);
|
||
animation: gvsLoaderSlide 1.25s cubic-bezier(0.65, 0, 0.35, 1) infinite;
|
||
}
|
||
|
||
#site-loader .gvs-loader-status {
|
||
margin-top: 14px;
|
||
font-family: 'Inter', system-ui, -apple-system, sans-serif;
|
||
font-size: 11px;
|
||
letter-spacing: 0.16em;
|
||
color: #94a3b8;
|
||
animation: gvsLoaderPulse 1.6s ease-in-out infinite;
|
||
}
|
||
|
||
@keyframes gvsLoaderSpin {
|
||
to { transform: rotate(360deg); }
|
||
}
|
||
|
||
@keyframes gvsLoaderSlide {
|
||
0% { left: -40%; }
|
||
100% { left: 100%; }
|
||
}
|
||
|
||
@keyframes gvsLoaderPulse {
|
||
0%, 100% { opacity: 0.55; }
|
||
50% { opacity: 1; }
|
||
}
|
||
|
||
/* 深色主题下的首屏 loading */
|
||
html[data-theme-mode="dark"] #site-loader {
|
||
background: #0b1120;
|
||
}
|
||
|
||
html[data-theme-mode="dark"] #site-loader .gvs-loader-title {
|
||
color: #dbeafe;
|
||
}
|
||
|
||
html[data-theme-mode="dark"] #site-loader .gvs-loader-subtitle {
|
||
color: #64748b;
|
||
}
|
||
|
||
html[data-theme-mode="dark"] #site-loader .gvs-loader-track {
|
||
background: #1e293b;
|
||
}
|
||
|
||
html[data-theme-mode="dark"] #site-loader .gvs-loader-status {
|
||
color: #64748b;
|
||
}
|
||
|
||
@media (prefers-reduced-motion: reduce) {
|
||
#site-loader .gvs-loader-ring,
|
||
#site-loader .gvs-loader-status {
|
||
animation: none;
|
||
}
|
||
#site-loader .gvs-loader-bar {
|
||
left: 0;
|
||
width: 70%;
|
||
animation: none;
|
||
}
|
||
}
|
||
</style>
|
||
<script type="module" crossorigin src="/GVSite/index-BOtwRJwr.js"></script>
|
||
<link rel="stylesheet" crossorigin href="/GVSite/index-DjtT6EMD.css">
|
||
</head>
|
||
<body>
|
||
<div id="site-loader" role="status" aria-live="polite" aria-label="页面加载中">
|
||
<div class="gvs-loader-glow gvs-loader-glow-left"></div>
|
||
<div class="gvs-loader-glow gvs-loader-glow-right"></div>
|
||
<div class="gvs-loader-content">
|
||
<div class="gvs-loader-logo-wrap">
|
||
<span class="gvs-loader-ring"></span>
|
||
<span class="gvs-loader-ring gvs-loader-ring-inner"></span>
|
||
<img class="gvs-loader-logo" src="https://hb.cdn.gvsds.com/assets/hlogos/gnobg.png" alt="GVSDS">
|
||
</div>
|
||
<div class="gvs-loader-title">银河锋锐</div>
|
||
<div class="gvs-loader-subtitle">G V S D S · SOFTWARE DEVELOPMENT STUDIO</div>
|
||
<div class="gvs-loader-track"><span class="gvs-loader-bar"></span></div>
|
||
<div class="gvs-loader-status">正在加载 · LOADING</div>
|
||
</div>
|
||
</div>
|
||
<div id="app"></div>
|
||
</body>
|
||
</html>
|