Compendium 前端优化计划:知识阅读器 (Knowledge Reader)¶
定位: Compendium 是一本在线知识书籍的浏览器。用户在这里阅读 AI 编译好的结构化知识,而非操作仪表盘或写代码。 灵感来源: Obsidian Publish · GitBook · Notion Published Pages · Stripe Docs · Bear Notes 核心原则: 内容为王 (Content-First),让界面消失,让知识涌现。
一、风格定位:「温暖的深色书房」¶
不是冰冷的控制台,不是花哨的 SaaS 仪表盘,而是一间安静的、光线恰到好处的深色书房——你坐在里面翻阅一本精心编排的百科全书。
核心美学¶
| 维度 | 当前状态 | 目标状态 |
|---|---|---|
| 整体感受 | 功能堆砌的工具面板 | 沉浸式知识阅读体验 |
| 视觉重心 | 侧栏/顶栏/按钮均分注意力 | 90% 注意力聚焦在正文区 |
| 色彩温度 | 冷色调蓝灰 | 微暖的深灰+克制的青色点缀 |
| 装饰程度 | 多种阴影/光晕/渐变 | 极简——仅靠字体层级和留白 |
| 信息密度 | 中等 | 阅读区低密度(大量留白),导航区高密度 |
概念图¶

二、具体设计方案¶
2.1 排版 (Typography) — 这是最重要的改进¶
知识库的灵魂是排版。当前的 .prose 样式已经不错,但还需要进一步打磨到"出版物级别"。
正文区 (Prose):
- 字体保持 Inter,行高从 1.75 提升到 1.85
- 段落间距加大(margin: 1.2em 0),让每段知识像独立的呼吸单元
- 阅读区最大宽度收窄到 680px(从 740px),更接近出版物的最佳阅读行宽(每行 60-75 个字符)
- 正文颜色从纯白降低一档(oklch(0.88 0.005 250)),减轻阅读疲劳
标题层级:
- h1 使用 font-weight: 700,字号 1.875em,底部加一道极淡的分隔线
- h2 使用 font-weight: 650,上方留出 2.5em 间距,制造"章节感"
- h3/h4 适度缩小,与正文的对比度适中
- 所有标题保持 letter-spacing: -0.02em,紧凑而有力
代码块:
- 背景色微微区别于主背景,用极细边框勾勒
- 行号颜色极淡,不干扰代码本身
- 代码字号 0.85em,与正文形成清晰的层级差异
表格:
- 去掉条纹背景(zebra stripes),改用极淡的行间分隔线
- 表头用稍重的字重(600)而非背景色来区分
- 表格整体与正文等宽,不溢出
2.2 色彩 (Color) — 减法策略¶
核心原则:青色(Teal)只在需要用户注意的地方出现。
| 元素 | 当前 | 调整 |
|---|---|---|
| 链接/Wiki-link | var(--primary-light) 亮青 |
保持,这是唯一大量使用彩色的地方 |
| 侧栏活动项 | 青色背景 + 左边框 | 改为仅左边框,背景极淡或无 |
| 各类 Badge | 6 种不同色彩 | 统一为 2-3 种:正常(灰)/警告(暖橙)/错误(红) |
| 按钮 | 多种样式 | 统一为 ghost 样式(文字+极淡边框),仅主操作用实心 |
| 背景发光效果 | radial-gradient 伪元素 |
移除。纯净的深色背景 |
新增的微暖调整:
/* 背景从纯冷灰微调为带一丝暖意的深灰 */
--bg: oklch(0.14 0.008 260); /* 极微的蓝紫底调,比纯冷灰更有书房感 */
--surface: oklch(0.18 0.008 260);
--text: oklch(0.88 0.005 260); /* 正文不用纯白,降低刺激 */
--text-secondary: oklch(0.62 0.008 260);
2.3 布局 (Layout) — 让阅读区成为绝对主角¶
三栏比例调整:
- 侧栏和右栏各缩窄 30-40px,让阅读区更宽敞 - 侧栏字号缩小到0.8125rem,降低对阅读区的视觉争夺
顶部栏弱化:
- 高度从 48px 降到 42px
- 背景色与主背景融合(不再使用半透明玻璃效果),仅保留底部 1px 分隔线
- Logo 和工具按钮色彩降低(使用 --text-muted),hover 时才亮起
右栏优化: - TOC(目录)的视觉层次通过缩进深度来表达,而非字号变化 - 移除 Mermaid 预览区的等宽代码展示,改为简洁的纯文本关系列表 - 整体色彩极淡,避免与正文区争夺视线
阅读区留白:
- 正文区 padding 增大(padding: 2.5rem 2rem 6rem)
- 正文块 max-width: 680px,居中显示
- 标题与正文之间的 Meta 信息区压缩为单行
2.4 组件优化 — 减少"存在感"¶
条目详情页 (EntryDetail):
- 移除 .entry-card 的边框和背景,标题直接铺在页面上
- Meta 信息(域/层级/质量分/版本)从醒目的彩色 Badge 改为灰色小字、内联排列,类似书籍封面下方的出版信息
- 标签(Tags)从圆角胶囊改为朴素的 #tag 文字形式,用等宽字体
搜索覆盖层 (SearchOverlay): - 不做成花哨的 Command Palette - 保持当前的下拉式覆盖层,但优化搜索结果的排版 - 搜索结果卡片去掉边框和阴影,改为列表形式(标题+摘要+域标签),用悬停时的微淡背景色区分
对话框 (Dialogs):
- 圆角从 16px 降到 8px
- 移除外层半透明遮罩的 blur 效果,改为纯色半透明遮罩
- 内部布局保持当前结构,仅微调字号和间距
首页 (WikiBrowser): - 不做仪表盘。保持"空状态欢迎页"的定位 - 优化排版:使用更优雅的欢迎文案和键盘快捷键提示 - 可选:展示"最近浏览的 3 个条目"链接列表(纯文本链接,无卡片)
三、不做的事情¶
[!IMPORTANT] 以下元素明确不引入,以保持 Wiki 阅读器的纯粹性:
- ❌ 毛玻璃效果 (Glassmorphism / backdrop-filter: blur)
- ❌ 卡片网格 (Card Grids)
- ❌ 仪表盘/数据看板
- ❌ Command Palette (⌘K)
- ❌ 渐变文字
- ❌ 环形图/趋势图等数据可视化组件
- ❌ 交错入场动画 (Staggered animations)
- ❌ 全站等宽字体
四、实施计划¶
Phase 1: Typography & Color 精修 (2 天)¶
核心目标:让阅读体验达到出版物级别。
[MODIFY] tokens.css¶
- 调整背景色温度(微暖化)
- 降低正文颜色亮度
- 缩小圆角(
--radius: 6px,--radius-lg: 8px) - 缩窄侧栏/右栏/顶栏尺寸
- 缩窄内容区最大宽度(
--content-max: 680px)
[MODIFY] main.css¶
.prose排版全面精修(行高、段距、标题间距、代码块、表格、引用块).entry-card去边框去阴影,扁平化- Badge 颜色统一为灰色系,降低色彩噪音
- Meta 信息区紧凑化
[MODIFY] layout.css¶
- 顶栏高度缩减,去除
backdrop-filter,背景融入页面 - 移除
.app-layout::before的发光伪元素 - 侧栏/右栏宽度缩减
- 阅读区 padding 加大
Phase 2: Component Polish (1-2 天)¶
[MODIFY] EntryDetail.vue¶
- Meta Badge 改为灰色内联文字
- Tags 改为
#tag朴素文字形式
[MODIFY] WikiBrowser.vue¶
- 优化欢迎页文案和排版
- 可选:增加"最近浏览"纯文本链接
[MODIFY] AppHeader.vue¶
- 降低按钮色彩强度,hover 时才亮起
- Logo 颜色弱化
[MODIFY] RightBar.vue¶
- TOC 样式优化(通过缩进而非字号区分层级)
- 整体色彩降低
Phase 3: 收尾与技术债 (1 天)¶
- 合并
FRONTEND_IMPROVEMENT_PLAN.md中已自然解决的项目 - 验证亮色主题(
[data-theme="light"])下的视觉一致性 - 确保
npm run build零 error
五、预期效果¶
改造完成后,用户打开 Compendium 的感受应该是:
"这是一本排版精美的知识百科全书,恰好长在浏览器里。"
而不是"这是一个开发者工具"或"这是一个后台管理系统"。
总预估工时: 4-5 天(单人)