Skip to content

设计决策记录

本文档采用 ADR (Architecture Decision Record) 格式记录关键设计决策。

ADR-001: 选择 VitePress 作为文档框架

状态

已采纳 (2024-01)

背景

项目需要一个静态站点生成器来展示 Cursor Rules 规则集合。主要需求:

  • 双语支持(中/英文)
  • 快速的开发体验
  • 良好的 SEO
  • 可扩展的主题系统
  • Markdown 增强(代码高亮、图表)

决策

选择 VitePress 作为文档框架。

理由

框架优点缺点
VitePressVue 生态、Vite 极速、简洁配置社区小于 Docusaurus
DocusaurusReact 生态、功能丰富构建较慢、配置复杂
NextraNext.js 集成、RSC 支持较新、稳定性待验证
Docsify无构建、简单SEO 差、功能有限

关键因素

  1. Vue 3 组合式 API 适合组件开发
  2. Vite HMR 提供极佳开发体验
  3. 内置 i18n 支持满足双语需求
  4. 轻量级,构建快速

后果

  • 正向:开发效率高,构建速度快,Vue 组件开发灵活
  • 负向:部分 React 生态工具不可用,社区资源相对较少

ADR-002: 采用 OKLCH 色彩空间

状态

已采纳 (2024-02)

背景

设计系统需要一套科学的色彩管理方案,支持:

  • 深浅色模式完美适配
  • 可感知均匀的颜色渐变
  • 易于维护的色彩变量

决策

采用 OKLCH 色彩空间定义品牌色。

理由

色彩空间感知均匀性浏览器支持可访问性
OKLCH⭐⭐⭐现代浏览器优秀
HSL全部一般
RGB全部
P3⭐⭐部分优秀

OKLCH 优势

  1. 感知均匀 - 相同亮度变化视觉效果一致
  2. 色域宽广 - 支持比 sRGB 更广的色彩范围
  3. 易于创建色阶 - 固定 L/C,调整 H 即可

示例

css
/* 品牌色阶(11 级) */
--vp-c-brand-50:  oklch(0.98 0.02 269);  /* 最亮 */
--vp-c-brand-500: oklch(0.62 0.18 269);  /* 基准 */
--vp-c-brand-950: oklch(0.20 0.05 269);  /* 最暗 */

后果

  • 正向:色彩系统科学、一致,深浅色适配简单
  • 负向:旧版浏览器需要 fallback(已通过 CSS 变量解决)

ADR-003: 四层架构设计

状态

已采纳 (2024-02)

背景

项目需要清晰的内容组织结构,让不同角色的读者快速找到所需信息。

决策

采用四层系统架构

资产层 → 同步层 → 叙事层 → 发布层

理由

参考 The Architecture of Open Source Applications 的理念:

  1. 资产层:规则文件是唯一权威源
  2. 同步层:构建前自动提取站点事实
  3. 叙事层:白皮书式内容组织
  4. 发布层:主题组件与 GitHub Pages

收益

  • 数据源唯一,避免不一致
  • 内容与展示分离
  • 可追溯的构建流程

后果

  • 正向:数据一致性有保障,内容结构清晰
  • 负向:构建流程增加同步步骤

ADR-004: CSS Cascade Layers 架构

状态

已采纳 (2024-02)

背景

传统 CSS 存在样式优先级问题,导致:

  • 大量 !important 使用
  • 样式覆盖困难
  • 维护成本高

决策

采用 CSS Cascade Layers 组织样式:

css
@layer reset, tokens, fonts, base, layout, components, utilities, overrides;

理由

方案优先级控制维护性兼容性
Layers⭐⭐⭐⭐⭐⭐现代浏览器
ITCSS⭐⭐⭐⭐全部
BEM全部
CSS-in-JS⭐⭐需要 JS

优势

  1. 明确的优先级顺序
  2. 无需 !important
  3. 组件样式解耦

后果

  • 正向:样式可预测,维护简单
  • 负向:需要现代浏览器(> 2022)

ADR-005: 引入 UnoCSS

状态

已采纳 (2025-05)

背景

项目需要:

  • 快速开发 UI 组件
  • 一致的设计令牌使用
  • 减少重复 CSS 代码

决策

引入 UnoCSS 原子化 CSS 框架。

理由

框架性能定制性学习成本
UnoCSS⭐⭐⭐⭐⭐⭐⭐⭐
Tailwind⭐⭐⭐⭐⭐⭐
WindiCSS⭐⭐⭐⭐⭐⭐⭐
纯 CSS⭐⭐⭐⭐⭐⭐

选择理由

  1. 即时按需生成 - 无构建开销
  2. 高度可定制 - 支持自定义 shortcuts
  3. 兼容 Tailwind 语法 - 学习成本低

后果

  • 正向:开发效率提升,CSS 体积减少
  • 负向:团队需要学习原子化 CSS 约定

参考资料

以 132+ 条规则资产、32+ 个技术领域构建系统白皮书、算法说明与证据站