feat: 初始化项目

- 初始化 Vue 3 + Vite 项目结构
- 添加核心组件 (Hero, About, Projects, Friends 等)
- 配置页面路由和基础样式
- 添加服务端 API 接口 (邮件发送, 好友请求)
- 添加项目配置文件 (vercel.json, vite.config.js)
This commit is contained in:
2025-12-06 23:39:15 +08:00
commit f80e5c0b5a
33 changed files with 1964 additions and 0 deletions

80
public/404.html Normal file
View File

@@ -0,0 +1,80 @@
<!doctype html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width,initial-scale=1.0" />
<title>404 - Not Found</title>
<style>
:root {
color-scheme: dark;
font-family: "Inter", "Segoe UI", system-ui, -apple-system, sans-serif;
}
* {
box-sizing: border-box;
}
body {
margin: 0;
min-height: 100vh;
display: grid;
place-items: center;
background: radial-gradient(circle at 20% 20%, rgba(244, 151, 218, 0.14), transparent 32%),
radial-gradient(circle at 80% 10%, rgba(124, 193, 255, 0.16), transparent 32%),
#0f1116;
color: #e8eefc;
}
.card {
width: min(480px, 92vw);
padding: 24px 26px;
border-radius: 16px;
border: 1px solid rgba(255, 255, 255, 0.12);
background: linear-gradient(135deg, rgba(244, 151, 218, 0.12), rgba(255, 255, 255, 0.05));
box-shadow: 0 16px 46px rgba(0, 0, 0, 0.28);
text-align: center;
}
h1 {
margin: 0 0 8px;
font-size: 32px;
}
p {
margin: 0 0 18px;
color: rgba(232, 238, 252, 0.82);
}
a.btn {
display: inline-flex;
align-items: center;
justify-content: center;
gap: 8px;
padding: 10px 16px;
border-radius: 12px;
border: 1px solid rgba(124, 193, 255, 0.5);
background: rgba(124, 193, 255, 0.12);
color: #e8eefc;
text-decoration: none;
font-weight: 600;
transition: transform 0.15s ease, box-shadow 0.15s ease, border-color 0.15s ease;
}
a.btn:hover {
transform: translateY(-2px);
border-color: rgba(244, 151, 218, 0.6);
box-shadow: 0 10px 28px rgba(0, 0, 0, 0.25);
}
</style>
</head>
<body>
<main class="card">
<h1>404</h1>
<p>页面不见了,或已被移除。</p>
<a class="btn" href="/">返回首页</a>
</main>
</body>
</html>