zen-gitsync 2.7.16 → 2.8.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/scripts/README_COLOR_CONVERTER.md +196 -0
- package/scripts/README_FONTSIZE_CONVERTER.md +278 -0
- package/scripts/README_SPACING_CONVERTER.md +126 -0
- package/scripts/README_STYLE_VARS.md +180 -0
- package/scripts/convert-colors-to-vars.cjs +272 -0
- package/scripts/convert-fontsize-to-vars.cjs +207 -0
- package/scripts/convert-spacing-to-vars.cjs +242 -0
- package/scripts/convert-to-standard-vars.cjs +268 -0
- package/src/ui/public/assets/index-CH5DTWNH.css +1 -0
- package/src/ui/public/assets/index-RwvqqyZn.js +80 -0
- package/src/ui/public/assets/{vendor-CV-gp1cL.js → vendor-BZoR2k4d.js} +19 -19
- package/src/ui/public/index.html +3 -3
- package/src/ui/public/assets/index-DC2ZmrV6.js +0 -80
- package/src/ui/public/assets/index-XBl7lo3-.css +0 -1
- package/src/ui/public/assets/vscode-twqwGmNt.webp +0 -0
package/package.json
CHANGED
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
# 颜色值转换工具使用说明
|
|
2
|
+
|
|
3
|
+
## 功能说明
|
|
4
|
+
|
|
5
|
+
该脚本将项目中硬编码的十六进制颜色值转换为标准的 CSS 变量引用。
|
|
6
|
+
|
|
7
|
+
## 颜色映射规则
|
|
8
|
+
|
|
9
|
+
基于项目中的 `src/ui/client/src/styles/variables.scss` 定义:
|
|
10
|
+
|
|
11
|
+
### 主色调
|
|
12
|
+
- `#409eff` → `var(--color-primary)`
|
|
13
|
+
- `#5a67d8`, `#66b1ff` → `var(--color-primary-light)`
|
|
14
|
+
- `#337ecc` → `var(--color-primary-dark)`
|
|
15
|
+
|
|
16
|
+
### 成功色
|
|
17
|
+
- `#67c23a` → `var(--color-success)`
|
|
18
|
+
- `#10b981` → `var(--color-success-light)`
|
|
19
|
+
|
|
20
|
+
### 警告色
|
|
21
|
+
- `#e6a23c` → `var(--color-warning)`
|
|
22
|
+
- `#f59e0b` → `var(--color-warning-light)`
|
|
23
|
+
|
|
24
|
+
### 危险色
|
|
25
|
+
- `#f56c6c` → `var(--color-danger)`
|
|
26
|
+
- `#ef4444` → `var(--color-danger-light)`
|
|
27
|
+
- `#dc2626` → `var(--color-danger-dark)`
|
|
28
|
+
|
|
29
|
+
### 信息色
|
|
30
|
+
- `#909399` → `var(--color-info)`
|
|
31
|
+
- `#8b5cf6` → `var(--color-info-light)`
|
|
32
|
+
|
|
33
|
+
### 文字颜色
|
|
34
|
+
- `#303133` → `var(--text-primary)`
|
|
35
|
+
- `#606266` → `var(--text-secondary)`
|
|
36
|
+
- `#909399` → `var(--text-tertiary)`
|
|
37
|
+
- `#c0c4cc`, `#a8abb2` → `var(--text-placeholder)`
|
|
38
|
+
|
|
39
|
+
### Git 状态颜色
|
|
40
|
+
- `#10b981` → `var(--git-status-added)`
|
|
41
|
+
- `#f59e0b` → `var(--git-status-modified)`
|
|
42
|
+
- `#ef4444` → `var(--git-status-deleted)`
|
|
43
|
+
- `#8b5cf6` → `var(--git-status-untracked)`
|
|
44
|
+
|
|
45
|
+
## 使用方法
|
|
46
|
+
|
|
47
|
+
### 预览模式(推荐先运行)
|
|
48
|
+
|
|
49
|
+
```bash
|
|
50
|
+
# 预览将要进行的更改,不修改文件
|
|
51
|
+
node scripts/convert-colors-to-vars.cjs --dry-run
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
### 实际应用
|
|
55
|
+
|
|
56
|
+
```bash
|
|
57
|
+
# 应用更改到文件
|
|
58
|
+
node scripts/convert-colors-to-vars.cjs
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
## 转换示例
|
|
62
|
+
|
|
63
|
+
**转换前:**
|
|
64
|
+
```vue
|
|
65
|
+
<style>
|
|
66
|
+
.button {
|
|
67
|
+
background: #409eff;
|
|
68
|
+
color: #ffffff;
|
|
69
|
+
border: 1px solid #66b1ff;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
.success-button {
|
|
73
|
+
background: #67c23a;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
.text {
|
|
77
|
+
color: #303133;
|
|
78
|
+
}
|
|
79
|
+
</style>
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
**转换后:**
|
|
83
|
+
```vue
|
|
84
|
+
<style>
|
|
85
|
+
.button {
|
|
86
|
+
background: var(--color-primary);
|
|
87
|
+
color: var(--color-white);
|
|
88
|
+
border: 1px solid var(--color-primary-light);
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
.success-button {
|
|
92
|
+
background: var(--color-success);
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
.text {
|
|
96
|
+
color: var(--text-primary);
|
|
97
|
+
}
|
|
98
|
+
</style>
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
## 支持的文件类型
|
|
102
|
+
|
|
103
|
+
- `.vue` - Vue 单文件组件
|
|
104
|
+
- `.scss` - Sass 样式文件
|
|
105
|
+
- `.css` - 纯 CSS 文件
|
|
106
|
+
|
|
107
|
+
## 跳过的文件
|
|
108
|
+
|
|
109
|
+
脚本会自动跳过以下文件(这些文件定义了变量本身):
|
|
110
|
+
- `variables.scss`
|
|
111
|
+
- `dark-theme.scss`
|
|
112
|
+
|
|
113
|
+
同时自动跳过以下目录:
|
|
114
|
+
- `node_modules`
|
|
115
|
+
- `.git`
|
|
116
|
+
- `dist`
|
|
117
|
+
|
|
118
|
+
## 输出报告
|
|
119
|
+
|
|
120
|
+
执行完成后会显示详细的统计报告:
|
|
121
|
+
|
|
122
|
+
```
|
|
123
|
+
📊 转换统计报告
|
|
124
|
+
============================================================
|
|
125
|
+
总文件数: 150
|
|
126
|
+
修改文件数: 42
|
|
127
|
+
总替换次数: 289
|
|
128
|
+
|
|
129
|
+
📋 替换详情:
|
|
130
|
+
#409eff => var(--color-primary): 78 次
|
|
131
|
+
#67c23a => var(--color-success): 45 次
|
|
132
|
+
#f56c6c => var(--color-danger): 32 次
|
|
133
|
+
...
|
|
134
|
+
|
|
135
|
+
⚠️ 未映射的颜色(需要手动检查):
|
|
136
|
+
#f8faff
|
|
137
|
+
#eef4ff
|
|
138
|
+
...
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
## 注意事项
|
|
142
|
+
|
|
143
|
+
1. **备份建议**:运行脚本前建议先使用 `--dry-run` 参数预览更改
|
|
144
|
+
2. **Git 提交**:建议在运行前提交当前代码,方便回滚
|
|
145
|
+
3. **未映射颜色**:脚本会列出未映射的颜色,需要手动检查这些颜色是否需要添加到映射表
|
|
146
|
+
4. **特殊颜色**:某些渐变色或特殊效果的颜色可能需要保留原值
|
|
147
|
+
5. **rgba 颜色**:当前脚本仅处理十六进制颜色值,rgba 格式需要手动处理
|
|
148
|
+
|
|
149
|
+
## 优势
|
|
150
|
+
|
|
151
|
+
使用 CSS 变量替代硬编码颜色的好处:
|
|
152
|
+
|
|
153
|
+
1. **统一管理**:所有颜色在 `variables.scss` 中统一定义
|
|
154
|
+
2. **主题切换**:轻松实现深色主题等样式变体
|
|
155
|
+
3. **易于维护**:修改变量值即可全局更新
|
|
156
|
+
4. **语义化**:变量名更具可读性(如 `--color-success` vs `#67c23a`)
|
|
157
|
+
5. **一致性**:确保整个项目使用统一的配色方案
|
|
158
|
+
|
|
159
|
+
## 扩展映射表
|
|
160
|
+
|
|
161
|
+
如果发现新的颜色值需要映射,编辑脚本中的 `COLOR_MAP` 对象:
|
|
162
|
+
|
|
163
|
+
```javascript
|
|
164
|
+
const COLOR_MAP = {
|
|
165
|
+
// 添加新的映射
|
|
166
|
+
'#your-color': 'var(--your-variable)',
|
|
167
|
+
// ...
|
|
168
|
+
};
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
## 回滚方法
|
|
172
|
+
|
|
173
|
+
如果需要回滚更改:
|
|
174
|
+
|
|
175
|
+
```bash
|
|
176
|
+
# 如果还未提交
|
|
177
|
+
git checkout -- src/
|
|
178
|
+
|
|
179
|
+
# 如果已提交
|
|
180
|
+
git revert <commit-hash>
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
## 与其他脚本配合
|
|
184
|
+
|
|
185
|
+
该脚本可以与其他样式标准化脚本配合使用:
|
|
186
|
+
|
|
187
|
+
```bash
|
|
188
|
+
# 1. 转换间距值
|
|
189
|
+
node scripts/convert-spacing-to-vars.cjs
|
|
190
|
+
|
|
191
|
+
# 2. 转换圆角和阴影
|
|
192
|
+
node scripts/convert-to-standard-vars.js
|
|
193
|
+
|
|
194
|
+
# 3. 转换颜色值
|
|
195
|
+
node scripts/convert-colors-to-vars.cjs
|
|
196
|
+
```
|
|
@@ -0,0 +1,278 @@
|
|
|
1
|
+
# 字体大小转换工具使用说明
|
|
2
|
+
|
|
3
|
+
## 功能说明
|
|
4
|
+
|
|
5
|
+
该脚本将项目中硬编码的 `font-size` 值转换为标准的 CSS 变量引用。
|
|
6
|
+
|
|
7
|
+
## 字体大小映射规则
|
|
8
|
+
|
|
9
|
+
基于项目中的 `src/ui/client/src/styles/variables.scss` 定义:
|
|
10
|
+
|
|
11
|
+
### 标准字体大小
|
|
12
|
+
|
|
13
|
+
| 原值 | 映射变量 | 说明 |
|
|
14
|
+
|------|---------|------|
|
|
15
|
+
| `10px` | `var(--font-size-xs)` | 超小字体 |
|
|
16
|
+
| `12px` | `var(--font-size-sm)` | 小字体 |
|
|
17
|
+
| `13px` | `var(--font-size-sm)` | 映射到小字体 |
|
|
18
|
+
| `14px` | `var(--font-size-base)` | 基础字体 |
|
|
19
|
+
| `15px` | `var(--font-size-base)` | 映射到基础字体 |
|
|
20
|
+
| `16px` | `var(--font-size-md)` | 中等字体 |
|
|
21
|
+
| `18px` | `var(--font-size-lg)` | 大字体 |
|
|
22
|
+
| `20px` | `var(--font-size-xl)` | 超大字体 |
|
|
23
|
+
| `22px` | `var(--font-size-2xl)` | 2倍大字体 |
|
|
24
|
+
| `24px` | `var(--font-size-3xl)` | 3倍大字体 |
|
|
25
|
+
|
|
26
|
+
### rem 单位支持
|
|
27
|
+
|
|
28
|
+
| 原值 | 映射变量 | 等效 px |
|
|
29
|
+
|------|---------|---------|
|
|
30
|
+
| `0.625rem` | `var(--font-size-xs)` | 10px |
|
|
31
|
+
| `0.75rem` | `var(--font-size-sm)` | 12px |
|
|
32
|
+
| `0.875rem` | `var(--font-size-base)` | 14px |
|
|
33
|
+
| `1rem` | `var(--font-size-md)` | 16px |
|
|
34
|
+
| `1.125rem` | `var(--font-size-lg)` | 18px |
|
|
35
|
+
| `1.25rem` | `var(--font-size-xl)` | 20px |
|
|
36
|
+
| `1.375rem` | `var(--font-size-2xl)` | 22px |
|
|
37
|
+
| `1.5rem` | `var(--font-size-3xl)` | 24px |
|
|
38
|
+
|
|
39
|
+
## 使用方法
|
|
40
|
+
|
|
41
|
+
### 预览模式(推荐先运行)
|
|
42
|
+
|
|
43
|
+
```bash
|
|
44
|
+
# 预览将要进行的更改,不修改文件
|
|
45
|
+
node scripts/convert-fontsize-to-vars.cjs --dry-run
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
### 实际应用
|
|
49
|
+
|
|
50
|
+
```bash
|
|
51
|
+
# 应用更改到文件
|
|
52
|
+
node scripts/convert-fontsize-to-vars.cjs
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
## 转换示例
|
|
56
|
+
|
|
57
|
+
**转换前:**
|
|
58
|
+
```vue
|
|
59
|
+
<style>
|
|
60
|
+
.title {
|
|
61
|
+
font-size: 20px;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
.subtitle {
|
|
65
|
+
font-size: 16px;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
.body-text {
|
|
69
|
+
font-size: 14px;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
.small-text {
|
|
73
|
+
font-size: 12px;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
.code {
|
|
77
|
+
font-size: 13px;
|
|
78
|
+
}
|
|
79
|
+
</style>
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
**转换后:**
|
|
83
|
+
```vue
|
|
84
|
+
<style>
|
|
85
|
+
.title {
|
|
86
|
+
font-size: var(--font-size-xl);
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
.subtitle {
|
|
90
|
+
font-size: var(--font-size-md);
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
.body-text {
|
|
94
|
+
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
.small-text {
|
|
98
|
+
font-size: var(--font-size-sm);
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
.code {
|
|
102
|
+
font-size: var(--font-size-sm);
|
|
103
|
+
}
|
|
104
|
+
</style>
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
## 特殊说明
|
|
108
|
+
|
|
109
|
+
### 近似值映射
|
|
110
|
+
|
|
111
|
+
脚本会将接近标准尺寸的值映射到最接近的标准尺寸:
|
|
112
|
+
|
|
113
|
+
- `13px` → `var(--font-size-sm)` (12px)
|
|
114
|
+
- `15px` → `var(--font-size-base)` (14px)
|
|
115
|
+
|
|
116
|
+
这样做的目的是统一项目中的字体大小,减少碎片化。
|
|
117
|
+
|
|
118
|
+
### 保留特殊值
|
|
119
|
+
|
|
120
|
+
以下情况的字体大小会被保留(不会转换):
|
|
121
|
+
|
|
122
|
+
1. **非标准尺寸**:如 `11px`、`17px`、`19px` 等
|
|
123
|
+
2. **计算值**:如 `calc(14px + 2px)`
|
|
124
|
+
3. **变量值**:已经使用 CSS 变量的值
|
|
125
|
+
|
|
126
|
+
## 支持的文件类型
|
|
127
|
+
|
|
128
|
+
- `.vue` - Vue 单文件组件
|
|
129
|
+
- `.scss` - Sass 样式文件
|
|
130
|
+
- `.css` - 纯 CSS 文件
|
|
131
|
+
|
|
132
|
+
## 跳过的文件
|
|
133
|
+
|
|
134
|
+
脚本会自动跳过以下文件:
|
|
135
|
+
- `variables.scss` - 变量定义文件
|
|
136
|
+
- `dark-theme.scss` - 主题文件
|
|
137
|
+
|
|
138
|
+
同时自动跳过以下目录:
|
|
139
|
+
- `node_modules`
|
|
140
|
+
- `.git`
|
|
141
|
+
- `dist`
|
|
142
|
+
|
|
143
|
+
## 输出报告
|
|
144
|
+
|
|
145
|
+
执行完成后会显示详细的统计报告:
|
|
146
|
+
|
|
147
|
+
```
|
|
148
|
+
📊 转换统计报告
|
|
149
|
+
============================================================
|
|
150
|
+
总文件数: 150
|
|
151
|
+
修改文件数: 38
|
|
152
|
+
总替换次数: 156
|
|
153
|
+
|
|
154
|
+
📋 替换详情:
|
|
155
|
+
font-size: 14px => var(--font-size-base): 42 次
|
|
156
|
+
font-size: 16px => var(--font-size-md): 35 次
|
|
157
|
+
font-size: 12px => var(--font-size-sm): 28 次
|
|
158
|
+
font-size: 13px => var(--font-size-sm): 18 次
|
|
159
|
+
...
|
|
160
|
+
|
|
161
|
+
⚠️ 未映射的字体大小(需要手动检查):
|
|
162
|
+
11px
|
|
163
|
+
17px
|
|
164
|
+
...
|
|
165
|
+
|
|
166
|
+
💡 建议:
|
|
167
|
+
1. 检查这些值是否是特殊尺寸,需要保留
|
|
168
|
+
2. 如果需要映射,可以将其添加到 FONT_SIZE_MAP 中
|
|
169
|
+
3. 或考虑调整为最接近的标准尺寸
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
## 优势
|
|
173
|
+
|
|
174
|
+
使用 CSS 变量替代硬编码字体大小的好处:
|
|
175
|
+
|
|
176
|
+
1. **统一管理**:所有字体大小在 `variables.scss` 中统一定义
|
|
177
|
+
2. **响应式设计**:可以基于视口大小动态调整所有字体
|
|
178
|
+
3. **易于维护**:修改变量值即可全局更新字体大小
|
|
179
|
+
4. **语义化**:变量名更具可读性(如 `--font-size-base` vs `14px`)
|
|
180
|
+
5. **一致性**:确保整个项目使用统一的字体大小体系
|
|
181
|
+
6. **可访问性**:便于实现字体缩放功能
|
|
182
|
+
|
|
183
|
+
## 与其他脚本配合
|
|
184
|
+
|
|
185
|
+
该脚本可以与其他样式标准化脚本配合使用:
|
|
186
|
+
|
|
187
|
+
```bash
|
|
188
|
+
# 1. 转换间距值
|
|
189
|
+
node scripts/convert-spacing-to-vars.cjs
|
|
190
|
+
|
|
191
|
+
# 2. 转换圆角和阴影
|
|
192
|
+
node scripts/convert-to-standard-vars.js
|
|
193
|
+
|
|
194
|
+
# 3. 转换颜色值
|
|
195
|
+
node scripts/convert-colors-to-vars.cjs
|
|
196
|
+
|
|
197
|
+
# 4. 转换字体大小
|
|
198
|
+
node scripts/convert-fontsize-to-vars.cjs
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
## 注意事项
|
|
202
|
+
|
|
203
|
+
1. **备份建议**:运行脚本前建议先使用 `--dry-run` 参数预览更改
|
|
204
|
+
2. **Git 提交**:建议在运行前提交当前代码,方便回滚
|
|
205
|
+
3. **视觉检查**:转换后应检查页面显示,确保视觉效果符合预期
|
|
206
|
+
4. **响应式考虑**:某些特殊场景可能需要保留精确的像素值
|
|
207
|
+
5. **行内样式**:脚本仅处理 CSS 样式,不处理内联样式中的 font-size
|
|
208
|
+
|
|
209
|
+
## 扩展映射表
|
|
210
|
+
|
|
211
|
+
如果发现新的字体大小需要映射,编辑脚本中的 `FONT_SIZE_MAP` 对象:
|
|
212
|
+
|
|
213
|
+
```javascript
|
|
214
|
+
const FONT_SIZE_MAP = {
|
|
215
|
+
// 添加新的映射
|
|
216
|
+
'26px': 'var(--font-size-4xl)',
|
|
217
|
+
// ...
|
|
218
|
+
};
|
|
219
|
+
```
|
|
220
|
+
|
|
221
|
+
同时需要在 `variables.scss` 中定义对应的变量。
|
|
222
|
+
|
|
223
|
+
## 回滚方法
|
|
224
|
+
|
|
225
|
+
如果需要回滚更改:
|
|
226
|
+
|
|
227
|
+
```bash
|
|
228
|
+
# 如果还未提交
|
|
229
|
+
git checkout -- src/
|
|
230
|
+
|
|
231
|
+
# 如果已提交
|
|
232
|
+
git revert <commit-hash>
|
|
233
|
+
```
|
|
234
|
+
|
|
235
|
+
## 实际案例
|
|
236
|
+
|
|
237
|
+
### 案例 1:CommandConsole.vue
|
|
238
|
+
|
|
239
|
+
**转换前:**
|
|
240
|
+
```scss
|
|
241
|
+
.prompt {
|
|
242
|
+
font-size: 13px;
|
|
243
|
+
font-weight: 500;
|
|
244
|
+
}
|
|
245
|
+
```
|
|
246
|
+
|
|
247
|
+
**转换后:**
|
|
248
|
+
```scss
|
|
249
|
+
.prompt {
|
|
250
|
+
font-size: var(--font-size-sm);
|
|
251
|
+
font-weight: 500;
|
|
252
|
+
}
|
|
253
|
+
```
|
|
254
|
+
|
|
255
|
+
### 案例 2:CommitForm.vue
|
|
256
|
+
|
|
257
|
+
**转换前:**
|
|
258
|
+
```scss
|
|
259
|
+
.commit-message-input {
|
|
260
|
+
font-size: 15px;
|
|
261
|
+
font-weight: 500;
|
|
262
|
+
}
|
|
263
|
+
```
|
|
264
|
+
|
|
265
|
+
**转换后:**
|
|
266
|
+
```scss
|
|
267
|
+
.commit-message-input {
|
|
268
|
+
|
|
269
|
+
font-weight: 500;
|
|
270
|
+
}
|
|
271
|
+
```
|
|
272
|
+
|
|
273
|
+
## 最佳实践
|
|
274
|
+
|
|
275
|
+
1. **优先使用标准尺寸**:尽量使用预定义的 8 个标准尺寸
|
|
276
|
+
2. **语义化命名**:根据用途选择合适的变量名
|
|
277
|
+
3. **保持一致**:相同级别的元素使用相同的字体大小变量
|
|
278
|
+
4. **文档化**:在团队中明确各个字体大小变量的使用场景
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
# 间距值转换工具使用说明
|
|
2
|
+
|
|
3
|
+
## 功能说明
|
|
4
|
+
|
|
5
|
+
该脚本将项目中 `padding`、`margin`、`gap` 属性中的 px 值转换为标准的 CSS 变量引用。
|
|
6
|
+
|
|
7
|
+
## 标准间距映射规则
|
|
8
|
+
|
|
9
|
+
根据项目中的 CSS 变量定义(`src/ui/client/src/styles/variables.scss`):
|
|
10
|
+
|
|
11
|
+
| 原始值 | 转换后 | CSS变量定义 |
|
|
12
|
+
|--------|--------|-------------|
|
|
13
|
+
| 2px | var(--spacing-xs) | 2px |
|
|
14
|
+
| 4px | var(--spacing-sm) | 4px |
|
|
15
|
+
| 8px | var(--spacing-base) | 8px |
|
|
16
|
+
| 12px | var(--spacing-md) | 12px |
|
|
17
|
+
| 16px | var(--spacing-lg) | 16px |
|
|
18
|
+
| 20px | var(--spacing-xl) | 20px |
|
|
19
|
+
| 24px | var(--spacing-2xl) | 24px |
|
|
20
|
+
| 32px | var(--spacing-3xl) | 32px |
|
|
21
|
+
|
|
22
|
+
### 保留的特殊值
|
|
23
|
+
|
|
24
|
+
以下值不会被转换,保持原样:
|
|
25
|
+
- **1px** - 通常用于边框
|
|
26
|
+
- **3px, 5px** - 特殊设计值
|
|
27
|
+
- **6px, 10px** - 常用于紧凑布局
|
|
28
|
+
- **18px** - 通常与字体相关
|
|
29
|
+
- **40px 及其他** - 特殊大间距值
|
|
30
|
+
|
|
31
|
+
## 使用方法
|
|
32
|
+
|
|
33
|
+
### 基本用法
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
# 在项目根目录执行
|
|
37
|
+
node scripts/convert-spacing-to-vars.js
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
### 转换示例
|
|
41
|
+
|
|
42
|
+
**转换前:**
|
|
43
|
+
```css
|
|
44
|
+
.example {
|
|
45
|
+
padding: 12px 16px;
|
|
46
|
+
margin: 8px;
|
|
47
|
+
gap: 16px;
|
|
48
|
+
}
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
**转换后:**
|
|
52
|
+
```css
|
|
53
|
+
.example {
|
|
54
|
+
padding: var(--spacing-md) var(--spacing-lg);
|
|
55
|
+
margin: var(--spacing-base);
|
|
56
|
+
gap: var(--spacing-lg);
|
|
57
|
+
}
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
**保留特殊值示例:**
|
|
61
|
+
```css
|
|
62
|
+
.example {
|
|
63
|
+
padding: 6px var(--spacing-md); /* 6px 保持不变 */
|
|
64
|
+
margin: 1px; /* 1px 保持不变(边框用途)*/
|
|
65
|
+
gap: var(--spacing-base); /* 8px 被转换 */
|
|
66
|
+
}
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
## 支持的文件类型
|
|
70
|
+
|
|
71
|
+
- `.vue` - Vue 单文件组件
|
|
72
|
+
- `.scss` - Sass 样式文件
|
|
73
|
+
- `.css` - 纯 CSS 文件
|
|
74
|
+
|
|
75
|
+
## 扫描范围
|
|
76
|
+
|
|
77
|
+
脚本会扫描 `src` 目录下的所有目标文件,自动跳过:
|
|
78
|
+
- `node_modules` 目录
|
|
79
|
+
- `.git` 目录
|
|
80
|
+
- `dist` 目录
|
|
81
|
+
|
|
82
|
+
## 输出报告
|
|
83
|
+
|
|
84
|
+
执行完成后会显示统计报告:
|
|
85
|
+
|
|
86
|
+
```
|
|
87
|
+
📊 转换统计报告
|
|
88
|
+
============================================================
|
|
89
|
+
总文件数: 150
|
|
90
|
+
修改文件数: 45
|
|
91
|
+
总替换次数: 234
|
|
92
|
+
|
|
93
|
+
📋 替换详情:
|
|
94
|
+
12px => var(--spacing-md): 89 次
|
|
95
|
+
16px => var(--spacing-lg): 67 次
|
|
96
|
+
8px => var(--spacing-base): 45 次
|
|
97
|
+
...
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
## 注意事项
|
|
101
|
+
|
|
102
|
+
1. **备份建议**:运行脚本前建议先提交或备份当前代码
|
|
103
|
+
2. **检查结果**:转换完成后请检查 Git diff,确认转换符合预期
|
|
104
|
+
3. **测试验证**:转换后请运行项目测试,确保样式显示正常
|
|
105
|
+
4. **混合值处理**:脚本能正确处理混合值,如 `padding: 6px var(--spacing-md)`
|
|
106
|
+
|
|
107
|
+
## 优势
|
|
108
|
+
|
|
109
|
+
使用 CSS 变量的好处:
|
|
110
|
+
|
|
111
|
+
1. **统一管理**:所有间距在 `variables.scss` 中统一定义
|
|
112
|
+
2. **易于维护**:修改变量值即可全局更新
|
|
113
|
+
3. **主题支持**:方便实现深色主题等样式变体
|
|
114
|
+
4. **语义化**:变量名更具可读性(如 `--spacing-md` vs `12px`)
|
|
115
|
+
|
|
116
|
+
## 回滚方法
|
|
117
|
+
|
|
118
|
+
如果需要回滚更改:
|
|
119
|
+
|
|
120
|
+
```bash
|
|
121
|
+
# 如果还未提交
|
|
122
|
+
git checkout -- src/
|
|
123
|
+
|
|
124
|
+
# 如果已提交
|
|
125
|
+
git revert <commit-hash>
|
|
126
|
+
```
|