Skip to content

Commit 42947da

Browse files
committed
docs: add ARCHITECTURE_zh-CN.md
1 parent 104c047 commit 42947da

File tree

2 files changed

+76
-10
lines changed

2 files changed

+76
-10
lines changed
Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
# 🧱 项目架构
2+
3+
**如果你想要新增特性或修复 Bug,建议阅读本文档,以便更好地理解代码的实现**
4+
5+
## 📁 目录结构
6+
7+
项目 UI 层由一个浮动入口 `dock` 和一个包含多个功能面板的侧边 `panel` 组成:
8+
9+
```mermaid
10+
graph TB
11+
A[Generator] --> B[float-dock]
12+
A[Generator] --> C[panel-drawer]
13+
14+
C[panel-drawer] --> D[color-panel]
15+
C[panel-drawer] --> E[font-panel]
16+
C[panel-drawer] --> F[shadow-panel]
17+
C[panel-drawer] --> G[radius-panel]
18+
C[panel-drawer] --> H[size-panel]
19+
20+
classDef panelFill fill:#e6fffb,stroke:#13c2c2,stroke-width:2px;
21+
class D,E,F,G,H panelFill;
22+
```
23+
24+
项目还包含两个文件夹:
25+
26+
```mermaid
27+
graph TB
28+
A[styles] --> B["*.min.css 样式文件"]
29+
30+
C[common] --> D[components 通用组件]
31+
C[common] --> E[i18n 国际化]
32+
C[common] --> F[theme 核心逻辑<br>(包括内置主题模板和颜色算法等实现)]
33+
C[common] --> G[utils 工具函数]
34+
35+
classDef themeFill fill:#e6f7ff,stroke:#1890ff,stroke-width:2px;
36+
class F themeFill
37+
```
38+
39+
`*.min.css` 文件来自 `tdesign-vue` 且经过二次压缩
40+
41+
- 额外添加了 `:host` 选择器,确保 Web Components 打包后样式正常
42+
- 移除颜色相关的 token,使主题生成器能与外部主题色直接同步
43+
44+
## 🧚 交互逻辑
45+
46+
### 数据持久化
47+
48+
1. `custom-theme-options`
49+
50+
| Key | 类型 | 示例 |
51+
| ----------------------------- | -------------------------- | --------------------- |
52+
| `theme` | 主题 | `TCloud` |
53+
| `color` | 主题色 | `#45C58B` |
54+
| `gray/success/warning/danger` | 功能色的品牌色 | `#2ba471` |
55+
| `font/radius/shadow` | 预设步骤中的位置 | `1` |
56+
| `line-height` | 固定或递增模式及其参数 | `plus_9` / `time_1.5` |
57+
| `recommend` | 智能推荐 | `true` |
58+
| `neutral` | 关联主题色 | `true` |
59+
60+
2. `custom-theme-tokens`:各种 `--td-*` token,主要来自用户手动修改单个变量的操作
61+
62+
### 执行流程
63+
64+
1. **初始化**:根据本地存储的 `theme`(或默认主题),进行 CSS 模板挂载
65+
66+
2. **配置恢复**:读取本地存储的 `tokens`,并还原用户的自定义修改
67+
68+
3. **面板渲染**:各个 Panel 根据 `options` 确定数值
69+
70+
## 😈 开发规范
71+
72+
1. **常量管理**:使用 `UPPER_CASE` 命名方式,独立存放在 JS 文件中,与 Vue 逻辑分离
73+
74+
2. **全局状态管理**:避免通过 props 层层传递共享变量,优先使用 `inject``mixin``store` 管理
75+
76+
3. **动态编码管理**:避免硬编码数值,特别是 Token 相关的映射,优先从 CSS 中获取配置

packages/theme-generator/src/README.md

Lines changed: 0 additions & 10 deletions
This file was deleted.

0 commit comments

Comments
 (0)