@teamix-evo/skills 0.2.0 → 0.4.0
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/README.md +18 -8
- package/_template/SKILL.md.hbs +14 -1
- package/manifest.json +79 -6
- package/package.json +7 -3
- package/src/teamix-evo-code-opentrek/SKILL.md +92 -0
- package/src/teamix-evo-code-opentrek/api-layering.md +225 -0
- package/src/teamix-evo-code-opentrek/checklist.md +173 -0
- package/src/teamix-evo-code-opentrek/error-and-loading.md +269 -0
- package/src/teamix-evo-code-opentrek/file-structure.md +273 -0
- package/src/teamix-evo-code-opentrek/forms-and-validation.md +220 -0
- package/src/teamix-evo-code-opentrek/reuse-first.md +130 -0
- package/src/teamix-evo-code-opentrek/routing-and-codesplit.md +298 -0
- package/src/teamix-evo-code-opentrek/testing.md +313 -0
- package/src/teamix-evo-code-uni-manager/SKILL.md +95 -0
- package/src/teamix-evo-code-uni-manager/api-layering.md +370 -0
- package/src/teamix-evo-code-uni-manager/checklist.md +193 -0
- package/src/teamix-evo-code-uni-manager/error-and-loading.md +389 -0
- package/src/teamix-evo-code-uni-manager/file-structure.md +339 -0
- package/src/teamix-evo-code-uni-manager/forms-and-validation.md +459 -0
- package/src/teamix-evo-code-uni-manager/reuse-first.md +188 -0
- package/src/teamix-evo-code-uni-manager/routing-and-codesplit.md +450 -0
- package/src/teamix-evo-code-uni-manager/testing.md +396 -0
- package/src/teamix-evo-design-opentrek/SKILL.md +71 -0
- package/src/teamix-evo-design-opentrek/boundaries.md +513 -0
- package/src/teamix-evo-design-opentrek/brand.md +154 -0
- package/src/teamix-evo-design-opentrek/checklist.md +83 -0
- package/src/teamix-evo-design-opentrek/components.md +245 -0
- package/src/teamix-evo-design-opentrek/flows.md +51 -0
- package/src/teamix-evo-design-opentrek/foundations.md +271 -0
- package/src/teamix-evo-design-opentrek/generation-flow.md +185 -0
- package/src/teamix-evo-design-opentrek/patterns/dashboard.md +31 -0
- package/src/teamix-evo-design-opentrek/patterns/detail-page.md +202 -0
- package/src/teamix-evo-design-opentrek/patterns/form-page.md +289 -0
- package/src/teamix-evo-design-opentrek/patterns/list-page.md +334 -0
- package/src/teamix-evo-design-opentrek/patterns/page-types.md +154 -0
- package/src/teamix-evo-design-opentrek/philosophy.md +96 -0
- package/src/teamix-evo-design-opentrek/rules/README.md +39 -0
- package/src/teamix-evo-design-opentrek/rules/boundaries.rules.json +391 -0
- package/src/teamix-evo-design-uni-manager/SKILL.md +73 -0
- package/src/teamix-evo-design-uni-manager/boundaries.md +564 -0
- package/src/teamix-evo-design-uni-manager/brand.md +202 -0
- package/src/teamix-evo-design-uni-manager/checklist.md +115 -0
- package/src/teamix-evo-design-uni-manager/components.md +254 -0
- package/src/teamix-evo-design-uni-manager/flows.md +63 -0
- package/src/teamix-evo-design-uni-manager/foundations.md +258 -0
- package/src/teamix-evo-design-uni-manager/generation-flow.md +194 -0
- package/src/teamix-evo-design-uni-manager/patterns/dashboard.md +95 -0
- package/src/teamix-evo-design-uni-manager/patterns/detail-page.md +224 -0
- package/src/teamix-evo-design-uni-manager/patterns/form-page.md +329 -0
- package/src/teamix-evo-design-uni-manager/patterns/list-page.md +356 -0
- package/src/teamix-evo-design-uni-manager/patterns/page-types.md +165 -0
- package/src/teamix-evo-design-uni-manager/philosophy.md +106 -0
- package/src/teamix-evo-design-uni-manager/rules/README.md +49 -0
- package/src/teamix-evo-design-uni-manager/rules/boundaries.rules.json +418 -0
- package/src/teamix-evo-manage/SKILL.md +281 -0
- package/skills/teamix-evo-manage/SKILL.md +0 -138
|
@@ -0,0 +1,258 @@
|
|
|
1
|
+
# Foundations — Uni-Manager 视觉地基
|
|
2
|
+
|
|
3
|
+
> 排版 / 色彩 / 间距 / 圆角 / 阴影 / 动效 在 Uni-Manager 下的系统化使用规范。
|
|
4
|
+
> 价值锚:**hybridcloud 锐利风 · 高密度信息可读性 · token-first**。
|
|
5
|
+
> 真值源:`@teamix-evo/tokens/variants/uni-manager/theme.css`(Tailwind v4 `@theme` + `[data-theme='uni-manager']` scoped CSS)。
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## 0. AI 实操路径(先做这步)
|
|
10
|
+
|
|
11
|
+
写任何视觉之前先调 MCP `tokens_list`(group=uni-manager)拿当前真值,**不要凭记忆**:
|
|
12
|
+
|
|
13
|
+
| 拿到结果 → 该做什么 | 工具 |
|
|
14
|
+
| ------------------------------------ | --------------------------------------------------------- |
|
|
15
|
+
| 列出可用语义槽 + 真值 | `tokens_list({ group: "uni-manager" })` |
|
|
16
|
+
| 查某个槽位(如 `--shadow-md`)的值 | `tokens_list({ group: "uni-manager", filter: "shadow" })` |
|
|
17
|
+
| 校验生成代码是否使用了未声明的 token | `validate_tokens(code)`(规划中) |
|
|
18
|
+
|
|
19
|
+
> 圆角、阴影、字号是 uni-manager 与 opentrek 差异最大的三类 token。**禁止**直接套 opentrek 经验值。
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## 1. Token 优先级铁律
|
|
24
|
+
|
|
25
|
+
```
|
|
26
|
+
Tailwind 语义类(bg-card / text-foreground) ← 首选
|
|
27
|
+
↓ 不够用时
|
|
28
|
+
CSS 变量(var(--color-success)) ← 次选
|
|
29
|
+
↓ 不够用时(罕见)
|
|
30
|
+
hardcoded 数值 ← 仅限 token 真空地带,且需评审
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
- **禁止** 直接 `text-blue-600` / `bg-[#0064C8]` / `style={{ color: '#0064C8' }}`(违反 boundaries.md F1 / S1 / S8)
|
|
34
|
+
- **允许** 间距 / 尺寸的 Tailwind 数字类(`p-4` / `gap-3`),它们已在 `theme.css` 中校准
|
|
35
|
+
- 一切色彩走 5 类语义槽:Surface / Text / Action / Boundary / Feedback(见 §4)
|
|
36
|
+
|
|
37
|
+
---
|
|
38
|
+
|
|
39
|
+
## 2. 排版(Typography)
|
|
40
|
+
|
|
41
|
+
### 2.1 字号 9 档(覆盖 Tailwind v4 默认)
|
|
42
|
+
|
|
43
|
+
| Tailwind | px | 用途 | 来源 |
|
|
44
|
+
| ---------------- | --- | ------------------------------------- | -------------- |
|
|
45
|
+
| `text-xxs` | 10 | 角标、密集表格副信息(罕用) | 辅助档 |
|
|
46
|
+
| `text-xs` | 12 | 字段标签、表格副字段、Caption | cd body.1 |
|
|
47
|
+
| `text-sm` | 14 | 默认正文 / 表格主字段 / Form 输入文字 | cd body.2 |
|
|
48
|
+
| `text-base` | 16 | 强调正文 / Card 副标题 | cd subhead |
|
|
49
|
+
| `text-lg` | 18 | Card 标题 / 弹窗主标题 | cd title |
|
|
50
|
+
| `text-xl` | 20 | 区块标题 / DescriptionList 分组标题 | cd headline |
|
|
51
|
+
| `text-2xl` | 24 | 页面 PageHeader.title | cd display.1 |
|
|
52
|
+
| `text-3xl` | 28 | 大数据展示 / Dashboard 数值卡 | cd display.2 ✱ |
|
|
53
|
+
| `text-display-3` | 32 | 超大档(运营 / 营销 banner,罕用) | cd display.3 |
|
|
54
|
+
| `text-4xl` | 36 | 营销超大档 | 备用 |
|
|
55
|
+
|
|
56
|
+
> ✱ uni-manager 把 Tailwind v4 默认 `text-3xl=30px` 覆盖为 28px,与 cd hybridcloud display.2 对齐;其余档与 Tailwind v4 默认一致。
|
|
57
|
+
|
|
58
|
+
### 2.2 字重(4 档)
|
|
59
|
+
|
|
60
|
+
| Tailwind | weight | 用途 |
|
|
61
|
+
| --------------- | ------ | ---------------------------- |
|
|
62
|
+
| `font-normal` | 400 | 正文 / 表格单元格 |
|
|
63
|
+
| `font-medium` | 500 | 标签 / 次级标题 / 数据强调 |
|
|
64
|
+
| `font-semibold` | 600 | 主标题 / Card / Page Title |
|
|
65
|
+
| `font-bold` | 700 | 仅 Dashboard 大数据 / 营销头 |
|
|
66
|
+
|
|
67
|
+
### 2.3 行高
|
|
68
|
+
|
|
69
|
+
- 正文统一 `leading-relaxed`(≈ 1.5×)— Teamix-UI 规范明示行高 1.5×
|
|
70
|
+
- 数据卡片大数字 `leading-none` 让数值贴底
|
|
71
|
+
- 超长正文 ≥ 3 行 `leading-7` 提升阅读节奏
|
|
72
|
+
|
|
73
|
+
---
|
|
74
|
+
|
|
75
|
+
## 3. 间距(Spacing)— 8 档刻度
|
|
76
|
+
|
|
77
|
+
### 3.1 8 档间距锚点(Teamix-UI 规范)
|
|
78
|
+
|
|
79
|
+
| 档位 | px | Tailwind | 用途 |
|
|
80
|
+
| ---- | --- | ----------------- | -------------------------------- |
|
|
81
|
+
| XXS | 4 | `p-1` / `gap-1` | 图标-文字、错误信息内 padding |
|
|
82
|
+
| XS | 8 | `p-2` / `gap-2` | 紧凑分组内、Toolbar 内按钮间 |
|
|
83
|
+
| S | 12 | `p-3` / `gap-3` | 详情页字段行距、紧凑表格行内 |
|
|
84
|
+
| M | 16 | `p-4` / `gap-4` | 默认间距(最常用) |
|
|
85
|
+
| L | 20 | `p-5` / `gap-5` | Form 字段间距 / 区块间留白 |
|
|
86
|
+
| XL | 24 | `p-6` / `gap-6` | 页面 margin / Card padding |
|
|
87
|
+
| XXL | 32 | `p-8` / `gap-8` | Form 分区间距 / 大区块间隔 |
|
|
88
|
+
| XXXL | 48 | `p-12` / `gap-12` | 页面级超大留白(启动页 / Empty) |
|
|
89
|
+
|
|
90
|
+
> **铁律**:8 档之外的间距值(如 `p-2.5` = 10px / `gap-7` = 28px)原则上 **禁止使用**,违反 Teamix-UI 规范。例外:`p-1.5` = 6px 仅用于 Icon Button 内边距(已在组件源码内置)。
|
|
91
|
+
|
|
92
|
+
### 3.2 信息密度 3 档(来自 doc 04)
|
|
93
|
+
|
|
94
|
+
| 密度 | 行间距 / 区间距 | 适用 |
|
|
95
|
+
| ---- | --------------- | ------------------------ |
|
|
96
|
+
| 高 | 32 / 48 | Dashboard / 运营首页 |
|
|
97
|
+
| 中 | 16 / 24 | 列表页 / 详情页(默认) |
|
|
98
|
+
| 低 | 8 / 12 | 紧凑表格 / Drawer 内表单 |
|
|
99
|
+
|
|
100
|
+
### 3.3 Form 间距三档(hardcode token,禁手写)
|
|
101
|
+
|
|
102
|
+
| Token | 值 | 自动应用于 |
|
|
103
|
+
| ---------------------------------- | ---- | ------------------------------- |
|
|
104
|
+
| `--spacing-form-label-to-input` | 4px | `<FieldLabel>` → 控件 |
|
|
105
|
+
| `--spacing-form-error-to-input` | 0px | `<FieldError>` → 控件(防抖动) |
|
|
106
|
+
| `--spacing-form-help-to-input` | 4px | `<FieldDescription>` → 控件 |
|
|
107
|
+
| `--spacing-form-item-gap` | 20px | FieldGroup 组内行距 |
|
|
108
|
+
| `--spacing-form-section-gap` | 32px | FieldSection 组间距 |
|
|
109
|
+
| `--spacing-form-section-title-gap` | 20px | FieldSection 标题 → 第一字段 |
|
|
110
|
+
|
|
111
|
+
详情页只读字段 `density="detail"` → 行距 12px(doc 16)。
|
|
112
|
+
|
|
113
|
+
### 3.4 栅格(Layout)
|
|
114
|
+
|
|
115
|
+
- **24 列栅格 · margin 24 · gutter 16**(Teamix-UI 规范)
|
|
116
|
+
- 4 档断点:`base / xs / s / m / l / xl` → 1280 / 1440 / 1920(Teamix-UI doc 03)
|
|
117
|
+
- 推荐:`max-w-screen-2xl mx-auto` + 内层 `grid grid-cols-24 gap-4`
|
|
118
|
+
|
|
119
|
+
---
|
|
120
|
+
|
|
121
|
+
## 4. 色彩(Color)— 5 类语义槽
|
|
122
|
+
|
|
123
|
+
### 4.1 Brand(uni-manager 锚点)
|
|
124
|
+
|
|
125
|
+
| 角色 | Token | 真值 | 用途 |
|
|
126
|
+
| --------------- | ---------------------------- | -------------- | ----------------------------------- |
|
|
127
|
+
| primary | `--color-primary` | #0064C8(B50) | 主按钮 / 链接 / 选中态 |
|
|
128
|
+
| primary-fg | `--color-primary-foreground` | #ffffff | primary 上的文字 |
|
|
129
|
+
| sidebar | `--color-sidebar` | #ffffff | 侧边栏背景(白底,opentrek 是深色) |
|
|
130
|
+
| sidebar-primary | `--color-sidebar-primary` | #0064C8 | 侧边栏选中条 |
|
|
131
|
+
|
|
132
|
+
### 4.2 Surface
|
|
133
|
+
|
|
134
|
+
`bg-background` / `bg-card` / `bg-popover` / `bg-muted` / `bg-secondary`。
|
|
135
|
+
**禁止** 直接 `bg-white` / `bg-gray-50`。
|
|
136
|
+
|
|
137
|
+
### 4.3 Text
|
|
138
|
+
|
|
139
|
+
`text-foreground` / `text-muted-foreground` / `text-primary` / `text-destructive`。
|
|
140
|
+
**禁止** 直接 `text-gray-700` / `text-zinc-500`。
|
|
141
|
+
|
|
142
|
+
### 4.4 Boundary
|
|
143
|
+
|
|
144
|
+
`border` / `border-input` / `border-border` / `ring-ring`。
|
|
145
|
+
|
|
146
|
+
> **uni-manager 特例**:`--color-ring: transparent` — focus 不显示品牌色 halo,而是通过 `border-color` 加深到 `--color-input-focus: #aaaaaa`(cd hybridcloud 风格)。AI 生成时 **不需要** 主动写 `focus:ring-*`,theme.css scoped CSS 会自动接管。
|
|
147
|
+
|
|
148
|
+
### 4.5 Feedback(语义状态色)
|
|
149
|
+
|
|
150
|
+
| 语义 | Token | 用途 |
|
|
151
|
+
| ----------- | ----------------------------- | --------------------------- |
|
|
152
|
+
| success | `--color-success` #23B066 | 成功状态、运行中 |
|
|
153
|
+
| warning | `--color-warning` #F98E1A | 警告、待处理 |
|
|
154
|
+
| destructive | `--color-destructive` #E84738 | 错误、删除、不可逆操作 |
|
|
155
|
+
| info | `--color-info` #0064C8 | 信息提示(与 primary 同色) |
|
|
156
|
+
|
|
157
|
+
每个语义都附 `*-foreground` / `*-subtle`(弱底色) / `*-border`(弱边框)三件套。
|
|
158
|
+
|
|
159
|
+
### 4.6 Chart(5 色 + 取色规则)
|
|
160
|
+
|
|
161
|
+
`--color-chart-1` ~ `--color-chart-5` 已预设。多于 5 系列:用 `chart-1..5` 顺序循环 + 透明度变化,**禁止** 自创第 6 色。
|
|
162
|
+
|
|
163
|
+
### 4.7 告警色阶(doc 01 P1-P7)
|
|
164
|
+
|
|
165
|
+
按严重等级 P1(最严重)~ P7(最轻)使用,不混用功能色:
|
|
166
|
+
|
|
167
|
+
| 等级 | 用途 | Token / Tailwind 别名(待补) |
|
|
168
|
+
| ----- | --------------- | ----------------------------- |
|
|
169
|
+
| P1 | 紧急 / 不可恢复 | destructive |
|
|
170
|
+
| P2-P3 | 严重 / 高优 | destructive + warning 渐变 |
|
|
171
|
+
| P4-P5 | 一般 / 中优 | warning |
|
|
172
|
+
| P6-P7 | 低优 / 提示性 | info |
|
|
173
|
+
|
|
174
|
+
> P 级映射到具体 token 在 ADR 0030 中定稿;当前阶段 AI 生成可暂用 destructive / warning / info 三档替代。
|
|
175
|
+
|
|
176
|
+
---
|
|
177
|
+
|
|
178
|
+
## 5. 圆角(Radius)— uni-manager 锐利风
|
|
179
|
+
|
|
180
|
+
> uni-manager 的 **核心视觉差异**:相比 opentrek 圆润(base 16px),uni-manager 走 cd hybridcloud 锐利风(base 4px / `radius-sm = 0px`)。
|
|
181
|
+
|
|
182
|
+
| Tailwind | 真值 | 用途 |
|
|
183
|
+
| -------------- | ------ | --------------------------------------------------- |
|
|
184
|
+
| `rounded-none` | 0 | 表格行 / 全屏 banner |
|
|
185
|
+
| `rounded-sm` | 0px | ✱ 输入控件 / 表格 / Tag 边角(uni-manager 默认) |
|
|
186
|
+
| `rounded-md` | 2px | ✱ 按钮 / Card 默认 / Dialog(与 OpenTrek 6px 不同) |
|
|
187
|
+
| `rounded-lg` | 4px | ✱ Card 强调 / Drawer / 弹层 |
|
|
188
|
+
| `rounded-xl` | 8px | ✱ 大型 Card / 营销卡 |
|
|
189
|
+
| `rounded-2xl` | 12px | ✱ 营销 / 大屏数据卡 |
|
|
190
|
+
| `rounded-full` | 9999px | Avatar / Badge dot / 圆形按钮 |
|
|
191
|
+
|
|
192
|
+
> ✱ 标注的档位与 Tailwind v4 默认不同,由 `theme.css` 显式声明覆盖。
|
|
193
|
+
> **AI 生成铁律**:表单控件、表格、Tag 一律 `rounded-sm`(即 0px 直角);常规 Card 用 `rounded-md`(2px);不要套用 opentrek 的 `rounded-lg`(曾是 12px,现在 uni-manager 下是 4px)。
|
|
194
|
+
|
|
195
|
+
### 5.1 组件级圆角 alias
|
|
196
|
+
|
|
197
|
+
| Token | 真值 | 用途 |
|
|
198
|
+
| ----------------- | ---- | ---------------------------------- |
|
|
199
|
+
| `--radius-dialog` | 2px | Dialog / Sheet 圆角(cd corner-1) |
|
|
200
|
+
| `--radius-tag` | 4px | Tag 圆角(cd corner-2) |
|
|
201
|
+
|
|
202
|
+
---
|
|
203
|
+
|
|
204
|
+
## 6. 阴影(Shadow)— hybridcloud 4 级
|
|
205
|
+
|
|
206
|
+
> uni-manager 阴影从 cd hybridcloud `shadow.1/2/3.down` 直接投影,**显著弱于** OpenTrek。
|
|
207
|
+
|
|
208
|
+
| Tailwind | 真值 | 来源 | 用途 |
|
|
209
|
+
| ---------------------- | ------------------------------- | ------------------- | ---------------------------- |
|
|
210
|
+
| `shadow-none` | none | — | 默认(Form 控件、表格行) |
|
|
211
|
+
| `shadow-2xs`/`xs`/`sm` | 0 1px 2px rgba(0,0,0,0.04~0.05) | base | 微弱浮起(罕用) |
|
|
212
|
+
| `shadow-md` | 0 3px 8px rgba(0,0,0,0.06) | hybridcloud S1.down | Card / Form hover |
|
|
213
|
+
| `shadow-lg` | 0 3px 8px rgba(0,0,0,0.18) | hybridcloud S2.down | Dropdown / Popover / Tooltip |
|
|
214
|
+
| `shadow-xl` | 0 6px 24px rgba(0,0,0,0.10) | hybridcloud S3.down | Sheet / Drawer / Dialog |
|
|
215
|
+
| `shadow-2xl` | 0 12px 48px rgba(0,0,0,0.20) | 顶层模态 | AlertDialog / 全屏 modal |
|
|
216
|
+
|
|
217
|
+
### 6.1 圆角 × 阴影对应表(不可乱配)
|
|
218
|
+
|
|
219
|
+
| 容器 | radius | shadow | 备注 |
|
|
220
|
+
| ------------ | ------------------------------------ | --------------------------------- | -------------------- |
|
|
221
|
+
| 表单输入 | `rounded-sm` | `shadow-none` (hover `shadow-md`) | scoped CSS 自动接管 |
|
|
222
|
+
| 表格行 | `rounded-none` | `shadow-none` | — |
|
|
223
|
+
| Card | `rounded-md` | `shadow-md` | hybridcloud 默认浮起 |
|
|
224
|
+
| Dropdown | `rounded-md` | `shadow-lg` | — |
|
|
225
|
+
| Sheet/Drawer | `rounded-lg` | `shadow-xl` | 大尺寸弹层 |
|
|
226
|
+
| Dialog | `rounded-md`(`--radius-dialog: 2px`) | `shadow-xl` | cd hybridcloud 锐利 |
|
|
227
|
+
|
|
228
|
+
### 6.2 Form 控件特殊行为
|
|
229
|
+
|
|
230
|
+
uni-manager `theme.css` 内置的 scoped CSS 会自动让带 `border-input` 的 input/select/textarea:
|
|
231
|
+
|
|
232
|
+
- 默认 `box-shadow: none`
|
|
233
|
+
- hover → `var(--shadow-form-hover)` (= shadow-md)
|
|
234
|
+
- focus → `border-color: #aaaaaa` + `var(--shadow-form-hover)`,**不显示** ring
|
|
235
|
+
|
|
236
|
+
AI 生成时 **不要** 写 `focus:ring-2 focus:ring-primary`,否则与 scoped CSS 冲突。
|
|
237
|
+
|
|
238
|
+
---
|
|
239
|
+
|
|
240
|
+
## 7. 动效(Motion)
|
|
241
|
+
|
|
242
|
+
| 时长 | 用途 |
|
|
243
|
+
| -------------- | ---------------------------- |
|
|
244
|
+
| `duration-75` | 微交互(hover 色变) |
|
|
245
|
+
| `duration-150` | 默认(按钮 / 输入态) |
|
|
246
|
+
| `duration-200` | 中等(折叠 / 展开) |
|
|
247
|
+
| `duration-300` | 较慢(Drawer / Dialog 进出) |
|
|
248
|
+
|
|
249
|
+
缓动统一 `ease-out`(进场)/ `ease-in`(退场)。**禁止** 自定义 `cubic-bezier(...)` 字面量。
|
|
250
|
+
|
|
251
|
+
---
|
|
252
|
+
|
|
253
|
+
## 8. AI 自检(4 条)
|
|
254
|
+
|
|
255
|
+
- [ ] 没有任何 hardcode 色值 / 任意尺寸 / 任意圆角
|
|
256
|
+
- [ ] 圆角档与"组件类型"匹配(Form 控件 → `rounded-sm` / Card → `rounded-md`)
|
|
257
|
+
- [ ] 阴影档与"圆角档"匹配(见 §6.1)
|
|
258
|
+
- [ ] Form 控件没有手动 `focus:ring-*`(让 scoped CSS 接管)
|
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
# 生成 / 翻新 / 验证流程
|
|
2
|
+
|
|
3
|
+
> AI 在执行页面级任务时,按本文件的门控顺序执行。每一步都有明确的输入输出,跳步会导致结果不可控。
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## 1. 生成路径(六步门控)
|
|
8
|
+
|
|
9
|
+
适用关键词:**"生成 / 创建 / 新建 / 设计一个 / 做一个 / 起一个控制台"**。
|
|
10
|
+
|
|
11
|
+
```
|
|
12
|
+
Step 1 需求确认 → Step 2 类型识别 → Step 3 子类型 + 布局
|
|
13
|
+
↓
|
|
14
|
+
Step 6 自检 ← Step 5 视觉填充 ← Step 4 组件挑选
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
### Step 1 · 最小 quorum + 默认值
|
|
18
|
+
|
|
19
|
+
**只有两个信息缺一不可**(最小 quorum,缺则反问):
|
|
20
|
+
|
|
21
|
+
- [ ] **页面类型**:ListPage / DetailPage / FormPage / Dashboard / Console / Dialog(缺则按 Step 2 决策树推断)
|
|
22
|
+
- [ ] **资源实体**:要操作的对象是什么(实例 / VPC / 租户 / 工单 / ……)
|
|
23
|
+
|
|
24
|
+
**其他信息全部走默认值,先生成再细化**:
|
|
25
|
+
|
|
26
|
+
| 维度 | 默认 | 何时升级 |
|
|
27
|
+
| -------- | --------------------------------------------------- | -------------------------------------- |
|
|
28
|
+
| 业务领域 | 云资源管理 | 用户明确说"工作流 / 报表 / 审计"等 |
|
|
29
|
+
| 用户角色 | 平台管理员 | 涉及合规 / 审批 / 租户管理员等敏感角色 |
|
|
30
|
+
| 核心动作 | CRUD(增 / 删 / 改 / 查 + 列表) | 明确出现"批量 / 审批 / 导出 / 监控" |
|
|
31
|
+
| 入口路径 | 从同名菜单进入,无外部跳转 | 明确说"从 X 跳到 Y" |
|
|
32
|
+
| 子类型 | ListPage→standard / FormPage→single-page / 其余各 1 | 用户提到 wizard / drawer / tabbed 等 |
|
|
33
|
+
| 多云感知 | 默认显示 cloud-provider Badge 列 | 单云场景明确不需要时去除 |
|
|
34
|
+
|
|
35
|
+
**反问触发条件**(只有以下情况反问):
|
|
36
|
+
|
|
37
|
+
1. 页面类型与资源实体均无法从需求中推断
|
|
38
|
+
2. 用户描述与默认值明显冲突(如"我要做一个数据看板"但又说"列表")
|
|
39
|
+
|
|
40
|
+
**输出**:页面类型 + 资源实体 + 一句话场景假设("假设是平台管理员的实例 CRUD 列表,多云资源默认显示 cloud Badge,如有偏差请指正")。
|
|
41
|
+
|
|
42
|
+
### Step 2 · 页面类型识别
|
|
43
|
+
|
|
44
|
+
根据 [patterns/page-types.md](./patterns/page-types.md) §决策树匹配类型:
|
|
45
|
+
|
|
46
|
+
```
|
|
47
|
+
页面内容是什么?
|
|
48
|
+
├─ 多条结构化数据 → ListPage
|
|
49
|
+
├─ 单个记录详情 → DetailPage
|
|
50
|
+
├─ 用户输入数据 → FormPage
|
|
51
|
+
├─ 数据可视化/统计 → Dashboard
|
|
52
|
+
├─ 控制台首页 / 多模块入口 → Console Home(Dashboard 子类)
|
|
53
|
+
└─ 二次确认 / 快速操作 → Dialog/Sheet
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
**输出**:页面类型 ID(`ListPage` / `DetailPage` / `Console` / ...)。
|
|
57
|
+
|
|
58
|
+
### Step 3 · 子类型识别 + 布局选择
|
|
59
|
+
|
|
60
|
+
读对应 `patterns/{type}-page.md`:
|
|
61
|
+
|
|
62
|
+
- 列表页:`standard / pure-card / drawer / expandable / l2-sidebar / advanced-filter`
|
|
63
|
+
- 详情页:`tabbed / single-section / resource-detail`
|
|
64
|
+
- 表单页:`single-page / wizard / drawer-form`
|
|
65
|
+
- Dashboard:`overview / console-home / monitor-detail`
|
|
66
|
+
|
|
67
|
+
**输出**:子类型 ID + 区域骨架(参照 [patterns/page-types.md](./patterns/page-types.md) §Zone Map)。
|
|
68
|
+
|
|
69
|
+
### Step 4 · 组件挑选
|
|
70
|
+
|
|
71
|
+
读 [components.md](./components.md) §选型决策树:
|
|
72
|
+
|
|
73
|
+
1. 优先使用 `@teamix-evo/ui` 注册表中的稳定组件
|
|
74
|
+
2. 通过 MCP `list_components(status: "stable")` 查可用列表
|
|
75
|
+
3. 通过 MCP `get_component_meta(id)` 查具体 Props/Examples
|
|
76
|
+
4. 复合场景按 [components.md](./components.md) §5.2 拼装配方装配(SearchCombo / ContextSwitcher / CardGrid 等概念占位)
|
|
77
|
+
5. um-topbar / um-side-nav 等实物业务组件位于 `@teamix-evo/biz-ui/uni-manager/*`
|
|
78
|
+
|
|
79
|
+
**输出**:组件清单 + 每个组件的关键 Props。
|
|
80
|
+
|
|
81
|
+
### Step 5 · 视觉填充(Token 绑定)
|
|
82
|
+
|
|
83
|
+
读 [foundations.md](./foundations.md),所有色彩、间距、字号、圆角、阴影、动效**必须**使用 Token:
|
|
84
|
+
|
|
85
|
+
| 维度 | Token 入口 |
|
|
86
|
+
| ---- | ---------------------------------------------------------------------------- |
|
|
87
|
+
| 色彩 | `bg-primary` / `text-foreground` / `border-border` / `text-muted-foreground` |
|
|
88
|
+
| 间距 | 8 档刻度(`gap-1/2/3/4/5/6/8/12`),对应 4/8/12/16/20/24/32/48 |
|
|
89
|
+
| 字号 | `text-xs` / `text-sm` / `text-base` / `text-lg` / `text-2xl` / `text-3xl` |
|
|
90
|
+
| 圆角 | `rounded-sm`(0) / `rounded-md`(2px) / `rounded-lg`(4px) — 锐利风 |
|
|
91
|
+
| 阴影 | `shadow-md` / `shadow-lg` / `shadow-xl` — 弱浮起 |
|
|
92
|
+
| 动效 | `duration-150` / `duration-300` / `transition-colors` |
|
|
93
|
+
|
|
94
|
+
**禁止**:硬编码 hex 色值、`#xxx` rgb()、内联 `style={{ ... }}`、`text-emerald-600` 等原始色。
|
|
95
|
+
|
|
96
|
+
**输出**:含 Token 引用的可执行代码 / HTML。
|
|
97
|
+
|
|
98
|
+
### Step 6 · 自检
|
|
99
|
+
|
|
100
|
+
对照 [checklist.md](./checklist.md) 12+ 项逐项验证:
|
|
101
|
+
|
|
102
|
+
- 通过 → 输出最终代码
|
|
103
|
+
- 不通过 → 回到对应失败项的步骤修正后重新自检
|
|
104
|
+
|
|
105
|
+
**输出**:合规代码 + 自检报告。
|
|
106
|
+
|
|
107
|
+
---
|
|
108
|
+
|
|
109
|
+
## 2. 翻新路径
|
|
110
|
+
|
|
111
|
+
适用关键词:**"改造 / 升级 / 翻新 / 对齐规范 / 重新生成"**。
|
|
112
|
+
|
|
113
|
+
```
|
|
114
|
+
1. 读取目标页面源码
|
|
115
|
+
2. 扫描违规项(按 boundaries.md F1-F10 + S1-S8 + UM1-UM3)
|
|
116
|
+
3. 生成 old → new 替换清单
|
|
117
|
+
- 硬编码色值 → CSS Token 变量
|
|
118
|
+
- space-y-* → flex + gap-*
|
|
119
|
+
- w-N h-N (等值) → size-N
|
|
120
|
+
- 自定义 dark: 覆盖 → 语义 token
|
|
121
|
+
- rounded-lg/xl 在 Form/Table 控件 → rounded-sm
|
|
122
|
+
- 自建 topbar / sidebar → 用 biz-ui/uni-manager/um-topbar
|
|
123
|
+
4. 对照 components.md 检查组件选型是否合理
|
|
124
|
+
5. 应用替换 + 输出变更报告
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
**输出**:翻新后代码 + 变更报告(每项替换的 old → new + 引用的规则 ID)。
|
|
128
|
+
|
|
129
|
+
---
|
|
130
|
+
|
|
131
|
+
## 3. 验证路径
|
|
132
|
+
|
|
133
|
+
适用关键词:**"检查 / 验证 / 评估 / 是否符合规范"**。
|
|
134
|
+
|
|
135
|
+
```
|
|
136
|
+
1. 读取目标页面源码
|
|
137
|
+
2. 逐条对照 boundaries.md
|
|
138
|
+
- F1-F10(禁止项)
|
|
139
|
+
- FF1-FF4(表单)
|
|
140
|
+
- S1-S8(样式规则)
|
|
141
|
+
- C1-C12(组件结构规则)
|
|
142
|
+
- I1-I4(图标)
|
|
143
|
+
- UM1-UM3(专有云一致性)
|
|
144
|
+
3. 对照 checklist.md 12+ 项自检
|
|
145
|
+
4. 输出验证报告
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
**报告格式**:
|
|
149
|
+
|
|
150
|
+
```markdown
|
|
151
|
+
## 验证报告
|
|
152
|
+
|
|
153
|
+
### ❌ 违规项(N)
|
|
154
|
+
|
|
155
|
+
- F1 第 12 行:硬编码 `#0064C8` → 应改为 `text-primary`
|
|
156
|
+
- S2 第 23 行:使用 `space-y-4` → 应改为 `flex flex-col gap-4`
|
|
157
|
+
- UM1 第 5 行:自建 topbar → 应使用 `<UmTopbar />`
|
|
158
|
+
|
|
159
|
+
### ⚠️ 建议项(M)
|
|
160
|
+
|
|
161
|
+
- ...
|
|
162
|
+
|
|
163
|
+
### ✅ 合规项(K)
|
|
164
|
+
|
|
165
|
+
- ...
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
---
|
|
169
|
+
|
|
170
|
+
## 4. 子任务退出条件
|
|
171
|
+
|
|
172
|
+
| 任务类型 | 何时停止生成 |
|
|
173
|
+
| -------- | --------------------------------- |
|
|
174
|
+
| 生成 | Step 6 自检全部通过 |
|
|
175
|
+
| 翻新 | 替换清单为空 + 重新对照无违规 |
|
|
176
|
+
| 验证 | 报告完整列出所有违规项 + 修复建议 |
|
|
177
|
+
|
|
178
|
+
---
|
|
179
|
+
|
|
180
|
+
## 5. 与 code-uni-manager skill 的协作
|
|
181
|
+
|
|
182
|
+
页面级任务通常**两个 skill 同时触发**。Design skill 决定"长什么样",Code skill 决定"怎么落地":
|
|
183
|
+
|
|
184
|
+
| 决策点 | 由谁主导 |
|
|
185
|
+
| ------------------------ | ----------------------------------------------------------------------------------------- |
|
|
186
|
+
| 页面骨架 / Zone 划分 | design |
|
|
187
|
+
| 组件选型 | design |
|
|
188
|
+
| Token 绑定 / 视觉规则 | design |
|
|
189
|
+
| 文件放置位置 | code([file-structure.md](../teamix-evo-code-uni-manager/file-structure.md)) |
|
|
190
|
+
| import 路径 / reuse 策略 | code([reuse-first.md](../teamix-evo-code-uni-manager/reuse-first.md)) |
|
|
191
|
+
| API / services 层 | code([api-layering.md](../teamix-evo-code-uni-manager/api-layering.md)) |
|
|
192
|
+
| 表单实现细节 | code([forms-and-validation.md](../teamix-evo-code-uni-manager/forms-and-validation.md)) |
|
|
193
|
+
|
|
194
|
+
冲突时按 ADR 0018 AI 上下文路由约定:design 决定"做什么",code 决定"怎么做"。
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
# Dashboard — 控制台首页 / 数据概览页
|
|
2
|
+
|
|
3
|
+
> AI 实操路径:Step 2(页面类型识别)判定为 Dashboard 后,本文档接管。
|
|
4
|
+
>
|
|
5
|
+
> uni-manager 中 Dashboard **同时承担"控制台 Home"** 角色(资源总览 / 待办 / 跨云态势),是用户登录后第一屏。
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## 1. 子类型识别
|
|
10
|
+
|
|
11
|
+
| 子类型 | 关键词 | 差异特征 |
|
|
12
|
+
| ---------------- | ---------------------------------- | ------------------------------------------------------------- |
|
|
13
|
+
| **Console Home** | "控制台首页"/"工作台"/"我的工作台" | 资源总览 + 待办 + 快捷入口 + 资产分布(uni-manager 默认入口) |
|
|
14
|
+
| **资源概览** | "资源概览"/"资产分布" | StatCard + 多云资产分布图 + 区域 Top N |
|
|
15
|
+
| **业务概览** | "业务概览"/"运营总览" | StatCard + Chart + Timeline |
|
|
16
|
+
| **监控概览** | "监控大屏"/"健康度" | 全屏 Chart Grid + 实时刷新 |
|
|
17
|
+
|
|
18
|
+
**默认裁决**:用户描述含"管理控制台/Console/工作台"且未指明子类型 → **Console Home**。
|
|
19
|
+
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
## 2. 标准结构(Console Home)
|
|
23
|
+
|
|
24
|
+
```text
|
|
25
|
+
┌──────────────────────────────────────────────────────────────┐
|
|
26
|
+
│ um-topbar:[logo] 租户切换▼ 区域▼ ··· 用户▼ │ ← 框架级
|
|
27
|
+
├──────────────────────────────────────────────────────────────┤
|
|
28
|
+
│ PageHeader:工作台 · 您好 张三 [今日 ▼] [刷新] │
|
|
29
|
+
├──────────────────────────────────────────────────────────────┤
|
|
30
|
+
│ ┌────────┐┌────────┐┌────────┐┌────────┐ │
|
|
31
|
+
│ │总资源 ││待处理 ││今日告警││工单 │ ← StatCards (4×1) │
|
|
32
|
+
│ │ 1,024 ││ 12 ││ 3 ││ 5 │ │
|
|
33
|
+
│ └────────┘└────────┘└────────┘└────────┘ │
|
|
34
|
+
├──────────────────────────────────────────────────────────────┤
|
|
35
|
+
│ ┌─────────────────────────┐ ┌────────────────────────────┐ │
|
|
36
|
+
│ │ 多云资产分布 │ │ 待办 / 待审批 │ │
|
|
37
|
+
│ │ [饼图:阿里云/AWS/私有云]│ │ [Timeline] │ │
|
|
38
|
+
│ │ │ │ │ │
|
|
39
|
+
│ └─────────────────────────┘ └────────────────────────────┘ │
|
|
40
|
+
├──────────────────────────────────────────────────────────────┤
|
|
41
|
+
│ 快捷入口(最常用 8 个产品) │
|
|
42
|
+
│ [ECS] [RDS] [SLB] [VPC] [OSS] [ACK] [监控] [运维] │
|
|
43
|
+
└──────────────────────────────────────────────────────────────┘
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
---
|
|
47
|
+
|
|
48
|
+
## 3. 标准结构(业务概览 / 监控概览)
|
|
49
|
+
|
|
50
|
+
```text
|
|
51
|
+
┌────────────────────────────────────────────┐
|
|
52
|
+
│ PageHeader: 概览 [今日 ▼] [刷新] │
|
|
53
|
+
├────────────────────────────────────────────┤
|
|
54
|
+
│ ┌──────┐ ┌──────┐ ┌──────┐ ┌──────┐ │
|
|
55
|
+
│ │实例数│ │待办数│ │告警数│ │健康度│ ← StatCards
|
|
56
|
+
│ │ 1024 │ │ 3 │ │ 12 │ │ 98% │ │
|
|
57
|
+
│ └──────┘ └──────┘ └──────┘ └──────┘ │
|
|
58
|
+
├────────────────────────────────────────────┤
|
|
59
|
+
│ 业务趋势 最近异常 │
|
|
60
|
+
│ [Chart 折线图] [Timeline] │
|
|
61
|
+
└────────────────────────────────────────────┘
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
---
|
|
65
|
+
|
|
66
|
+
## 4. 设计要点
|
|
67
|
+
|
|
68
|
+
- 关键指标用 `text-3xl font-bold`,与上一周期对比用 `+/-` 配 `chart-*` 色
|
|
69
|
+
- 时间范围切换持久化到 URL params(`?range=today`)
|
|
70
|
+
- 图表色彩按 `chart-1` `chart-2` `chart-3` ... 顺序消费,**禁止**任意 hex
|
|
71
|
+
- StatCard 数量:4(1×4)/ 6(2×3)/ 8(2×4);超过 8 改用 ListPage
|
|
72
|
+
- 不要在 Dashboard 内放可编辑表单 — 跳转 FormPage
|
|
73
|
+
- **Console Home 的 StatCard 数字必须可点击下钻** —— 跳转预筛选 ListPage(如「待处理 12」→ 工单列表 status=pending)
|
|
74
|
+
- 跨云资产分布图必须使用 cloud Badge 同款色板(与 brand.md §3.3 跨云语义统一)
|
|
75
|
+
|
|
76
|
+
---
|
|
77
|
+
|
|
78
|
+
## 5. Console Home 专属约束(uni-manager)
|
|
79
|
+
|
|
80
|
+
- [ ] 顶部框架必须使用 `um-topbar`(含租户切换 / 区域切换),不可自建 header(UM1)
|
|
81
|
+
- [ ] StatCard 必须有"对比指标"(环比 / 同比),裸数字无意义
|
|
82
|
+
- [ ] 跨云资产分布必须显式标注云厂商(CloudBadge 或饼图扇区 label)
|
|
83
|
+
- [ ] 待办 / 待审批 Timeline 每条必须有"前往处理"链接,不创建死胡同
|
|
84
|
+
- [ ] 快捷入口数量 ≤ 8,超出走"全部产品"二级页
|
|
85
|
+
|
|
86
|
+
---
|
|
87
|
+
|
|
88
|
+
## 6. 自检
|
|
89
|
+
|
|
90
|
+
- [ ] 类型选对:是 Console Home / 资源概览 / 业务概览 / 监控概览?
|
|
91
|
+
- [ ] StatCard 数字可下钻
|
|
92
|
+
- [ ] 时间范围 URL 同步
|
|
93
|
+
- [ ] 图表色用 `chart-*`,无 hex
|
|
94
|
+
- [ ] um-topbar 在位(Console Home 必须)
|
|
95
|
+
- [ ] 跨云分布有 CloudBadge 标注
|