160 lines
4.5 KiB
HTML
160 lines
4.5 KiB
HTML
<!DOCTYPE html>
|
||
<html lang="zh-CN" data-theme="light">
|
||
<head>
|
||
<meta charset="UTF-8">
|
||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||
|
||
<!-- 核心元数据 -->
|
||
<title>Cat Tom | Try to do my best!</title>
|
||
<meta name="description" content="Cat Tom的个人主页,展示作品和联系方式">
|
||
|
||
<!-- 主题色 -->
|
||
<meta name="theme-color" content="#a8d8ea">
|
||
|
||
<!-- PWA配置 -->
|
||
<link rel="manifest" href="/manifest.webmanifest">
|
||
<meta name="mobile-web-app-capable" content="yes">
|
||
<meta name="apple-mobile-web-app-capable" content="yes">
|
||
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent">
|
||
<meta name="apple-mobile-web-app-title" content="Cat Tom">
|
||
<link rel="apple-touch-icon" href="/assets/icons/icon-192x192.png">
|
||
|
||
<!-- 预加载关键资源 -->
|
||
<link rel="preload" href="/assets/images/logo.png" as="image" type="image/png">
|
||
<link rel="preload" href="/assets/images/wechat-qr.png" as="image" type="image/png">
|
||
<link rel="preload" href="https://cdn.jsdelivr.net/npm/remixicon@3.5.0/fonts/remixicon.css" as="style">
|
||
<link rel="preconnect" href="https://cdn.jsdelivr.net">
|
||
|
||
<!-- 字体加载策略 -->
|
||
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/remixicon@3.5.0/fonts/remixicon.css" media="print" onload="this.media='all'">
|
||
<noscript>
|
||
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/remixicon@3.5.0/fonts/remixicon.css">
|
||
</noscript>
|
||
|
||
<!-- 默认图标 -->
|
||
<link rel="icon" type="image/svg+xml" href="/assets/icons/favicon.svg">
|
||
<link rel="alternate icon" href="/favicon.ico">
|
||
|
||
<!-- 社交分享优化 -->
|
||
<meta property="og:title" content="Cat Tom | Try to do my best!">
|
||
<meta property="og:description" content="Cat Tom的个人主页,展示作品和联系方式">
|
||
<meta property="og:type" content="website">
|
||
<meta property="og:url" content="https://yourdomain.com">
|
||
<meta property="og:image" content="/assets/images/social-share.png">
|
||
|
||
<!-- 防止搜索引擎索引开发环境 -->
|
||
<meta name="robots" content="noindex, nofollow">
|
||
</head>
|
||
<body>
|
||
<div id="app">
|
||
<div class="content-wrapper">
|
||
<!-- 页面主要内容 -->
|
||
|
||
<!-- 初始加载动画 -->
|
||
<div class="app-loading">
|
||
<div class="loading-spinner">
|
||
<svg viewBox="0 0 50 50">
|
||
<circle cx="25" cy="25" r="20" fill="none" stroke="#7ac5e8" stroke-width="4"></circle>
|
||
</svg>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<!-- 主应用脚本 -->
|
||
<script type="module" src="/src/main.js"></script>
|
||
|
||
<!-- 加载状态样式 -->
|
||
<style>
|
||
html, body {
|
||
height: 100%;
|
||
margin: 0;
|
||
}
|
||
|
||
#app {
|
||
display: flex;
|
||
flex-direction: column;
|
||
min-height: 100vh;
|
||
max-height: 100vh;
|
||
overflow: hidden;
|
||
}
|
||
|
||
.content-wrapper {
|
||
flex: 1;
|
||
overflow-y: auto;
|
||
padding: 2rem;
|
||
scrollbar-width: thin;
|
||
scrollbar-color: #7ac5e8 transparent;
|
||
}
|
||
|
||
.app-loading {
|
||
position: absolute;
|
||
top: 50%;
|
||
left: 50%;
|
||
transform: translate(-50%, -50%);
|
||
background: rgba(255,255,255,0.9);
|
||
border-radius: 1rem;
|
||
padding: 2rem;
|
||
box-shadow: 0 4px 6px rgba(0,0,0,0.1);
|
||
z-index: 10000;
|
||
transition: opacity 0.3s ease;
|
||
}
|
||
|
||
.loading-spinner svg {
|
||
animation: rotate 1.5s linear infinite;
|
||
width: 50px;
|
||
height: 50px;
|
||
}
|
||
|
||
.loading-spinner circle {
|
||
stroke-dasharray: 90, 150;
|
||
stroke-dashoffset: 0;
|
||
stroke-linecap: round;
|
||
animation: dash 1.5s ease-in-out infinite;
|
||
}
|
||
|
||
@keyframes rotate {
|
||
100% { transform: rotate(360deg); }
|
||
}
|
||
|
||
@keyframes dash {
|
||
0% { stroke-dasharray: 1, 150; stroke-dashoffset: 0; }
|
||
50% { stroke-dasharray: 90, 150; stroke-dashoffset: -35; }
|
||
100% { stroke-dasharray: 90, 150; stroke-dashoffset: -124; }
|
||
}
|
||
|
||
/* 滚动条样式 */
|
||
::-webkit-scrollbar {
|
||
width: 8px;
|
||
}
|
||
|
||
::-webkit-scrollbar-track {
|
||
background: rgba(122,197,232,0.1);
|
||
}
|
||
|
||
::-webkit-scrollbar-thumb {
|
||
background: #7ac5e8;
|
||
border-radius: 4px;
|
||
}
|
||
|
||
/* 当Vue挂载后隐藏加载动画 */
|
||
[data-v-app] .app-loading {
|
||
opacity: 0;
|
||
pointer-events: none;
|
||
}
|
||
|
||
@media (max-width: 768px) {
|
||
.content-wrapper {
|
||
padding: 1rem;
|
||
}
|
||
|
||
.app-loading {
|
||
padding: 1rem;
|
||
width: 80%;
|
||
max-width: 300px;
|
||
}
|
||
}
|
||
</style>
|
||
</body>
|
||
</html>
|