feat(web): 重构 9 页面界面并统一设计令牌与响应式布局

- index.css 以 Tailwind 4 @theme 落地设计令牌,全部页面按新设计稿重写
  样式:首页/笔记详情/标签页/登录/后台列表/编辑/回收站/设置/404
- Layout 重构导航与主题切换;新增 Toast 轻提示组件
- 移除 vite 手动 codeSplitting:分组 chunk 会被提升进入口静态依赖并对
  HTML 发出 modulepreload,lazy 路由的 CodeMirror 在所有页面被预加载
  (Lighthouse unused-javascript 549KiB 的根因)
- vite dev 代理补 changeOrigin:false,保留浏览器原始 Host,避免后端
  Origin 校验误判跨源 403
This commit is contained in:
2026-09-08 21:41:05 +08:00
parent 412821684b
commit 51f528f516
18 changed files with 3820 additions and 683 deletions
+3 -2
View File
@@ -20,7 +20,7 @@ const AdminEdit = lazy(() => import('./pages/AdminEdit'))
function RequireAuth({ children }: { children: ReactNode }) {
const { authenticated, loading } = useAuth()
if (loading) {
return <div className="flex min-h-screen items-center justify-center text-zinc-500">加载中…</div>
return <div className="pn-loading">加载中…</div>
}
if (!authenticated) {
return <Navigate to="/admin/login" replace />
@@ -30,11 +30,12 @@ function RequireAuth({ children }: { children: ReactNode }) {
export default function App() {
return (
<Suspense fallback={<div className="flex min-h-screen items-center justify-center text-zinc-500">加载中…</div>}>
<Suspense fallback={<div className="pn-loading">加载中…</div>}>
<Routes>
<Route element={<BlogLayout />}>
<Route path="/" element={<Home />} />
<Route path="/notes/:slug" element={<Note />} />
<Route path="/tags" element={<TagPage />} />
<Route path="/tags/:tag" element={<TagPage />} />
</Route>
<Route path="/admin/login" element={<Login />} />