@lark-apaas/coding-steering 0.1.70 → 0.1.71

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.
Files changed (31) hide show
  1. package/package.json +1 -1
  2. package/steering/nestjs-react-fullstack/skills/client-builtins-file-storage-service/SKILL.md +1 -0
  3. package/steering/nestjs-react-fullstack/skills/coding-guide/SKILL.md +2 -1
  4. package/steering/nestjs-react-fullstack/skills/design-guide/SKILL.md +164 -133
  5. package/steering/nestjs-react-fullstack/skills/plugin-guide/SKILL.md +2 -0
  6. package/steering/nestjs-react-fullstack/skills_local/coding-guide/SKILL.md +1 -0
  7. package/steering/nestjs-react-fullstack/skills_local/plugin-guide/SKILL.md +1 -0
  8. package/steering/vite-react/skills/plugin-guide/SKILL.md +5 -2
  9. package/steering/vite-react/skills/plugin-guide/references/plugin-coding-guide.md +44 -0
  10. package/steering/nestjs-react-fullstack/skills/design-guide/references/broadsheet.md +0 -313
  11. package/steering/nestjs-react-fullstack/skills/design-guide/references/claude-editorial-research.md +0 -375
  12. package/steering/nestjs-react-fullstack/skills/design-guide/references/crimson-frosted-glass.md +0 -221
  13. package/steering/nestjs-react-fullstack/skills/design-guide/references/cybernetic-vault-terminal.md +0 -74
  14. package/steering/nestjs-react-fullstack/skills/design-guide/references/dashboard.md +0 -234
  15. package/steering/nestjs-react-fullstack/skills/design-guide/references/digital-e-guide.md +0 -349
  16. package/steering/nestjs-react-fullstack/skills/design-guide/references/finance-report.md +0 -169
  17. package/steering/nestjs-react-fullstack/skills/design-guide/references/flowbite.md +0 -179
  18. package/steering/nestjs-react-fullstack/skills/design-guide/references/frontend-design.md +0 -66
  19. package/steering/nestjs-react-fullstack/skills/design-guide/references/handwritten-sketch.md +0 -215
  20. package/steering/nestjs-react-fullstack/skills/design-guide/references/industry.md +0 -348
  21. package/steering/nestjs-react-fullstack/skills/design-guide/references/metabase.md +0 -226
  22. package/steering/nestjs-react-fullstack/skills/design-guide/references/minimal-jade.md +0 -205
  23. package/steering/nestjs-react-fullstack/skills/design-guide/references/nebula-crimson.md +0 -306
  24. package/steering/nestjs-react-fullstack/skills/design-guide/references/nexuscore-analytics.md +0 -74
  25. package/steering/nestjs-react-fullstack/skills/design-guide/references/organic-minimalism.md +0 -253
  26. package/steering/nestjs-react-fullstack/skills/design-guide/references/pm-spec.md +0 -234
  27. package/steering/nestjs-react-fullstack/skills/design-guide/references/pop-art.md +0 -272
  28. package/steering/nestjs-react-fullstack/skills/design-guide/references/sap-fiori-horizon.md +0 -154
  29. package/steering/nestjs-react-fullstack/skills/design-guide/references/token-mapping.md +0 -68
  30. package/steering/nestjs-react-fullstack/skills/design-guide/references/warm-elegance.md +0 -217
  31. package/steering/nestjs-react-fullstack/skills/design-guide/references/wild-orange.md +0 -203
@@ -1,348 +0,0 @@
1
- ---
2
- version: alpha
3
- name: industry
4
- name_zh: 工业图纸
5
- description: 工程图纸风格:冷灰白技术底配单一钢蓝,Barlow Condensed 标题与 Barlow 正文形成压缩对比;卡片、图框和按钮采用直角发丝边框与四角套准标,内容照片双色化为钢蓝。
6
- colors:
7
- background: "#f2f2f3"
8
- surface: "#e9e9ea"
9
- foreground: "#1d1f20"
10
- primary: "#5980a6"
11
- primary-foreground: "#f2f2f3"
12
- ring: "#5980a6"
13
- primary-dark: "#416180"
14
- primary-deep: "#1d2d3d"
15
- primary-2: "#728fab"
16
- neutral-dark: "#2b2b2d"
17
- typography:
18
- heading:
19
- fontFamily: "'Barlow Condensed', 'Noto Sans SC', 'PingFang SC', system-ui, sans-serif"
20
- fontWeight: "600"
21
- lineHeight: "1.12"
22
- body:
23
- fontFamily: "'Barlow', 'Noto Sans SC', 'PingFang SC', system-ui, sans-serif"
24
- fontSize: "15px"
25
- lineHeight: "1.55"
26
- h1:
27
- fontSize: "42px"
28
- h2:
29
- fontSize: "32px"
30
- h3:
31
- fontSize: "25px"
32
- spacing:
33
- space-1: "3.4px"
34
- space-2: "6.8px"
35
- space-3: "10.2px"
36
- space-4: "13.6px"
37
- space-6: "20.4px"
38
- space-8: "27.2px"
39
- rounded:
40
- sm: "2px"
41
- md: "4px"
42
- lg: "7px"
43
- components:
44
- blueprint-frame:
45
- border: "1px solid color-mix(in srgb, {colors.foreground} 16%, transparent)"
46
- borderRadius: "0"
47
- background: "transparent"
48
- description: "四角各带一个由两条 1px 线构成的套准十字标"
49
- primary-button:
50
- background: "{colors.primary}"
51
- color: "{colors.primary-foreground}"
52
- border: "1px solid {colors.primary}"
53
- borderRadius: "0"
54
- duotone-image:
55
- description: "图片去饱和后覆盖钢蓝混合层,并与 blueprint-frame 组合"
56
- anchors:
57
- - id: drawing-paper
58
- type: token
59
- desc: 冷灰白图纸底与钢蓝构成单色技术基调
60
- - id: condensed-heading
61
- type: token
62
- desc: 压缩标题与常规宽度正文形成明确对比
63
- - id: blueprint-frame
64
- type: component
65
- desc: 透明直角线框配四角套准十字标
66
- - id: solid-primary-only
67
- type: component
68
- desc: 主按钮是图板上主要的实体钢蓝区域
69
- - id: modular-grid
70
- type: pattern
71
- desc: 内容沿等宽模块网格形成可见的横纵节奏
72
- - id: steel-blue-duotone
73
- type: pattern
74
- desc: 内容照片统一进行钢蓝双色化处理
75
- gaps:
76
- - 原始 styles.css、_ds_bundle.js 与模板资产未随 markdown 提供;接入时需使用来源资产。
77
- - 暗色模式未定义。
78
- exceptions:
79
- - 对话框是带 surface 填充的容器例外。
80
- - 单选按钮保留圆形;主按钮允许实心钢蓝。
81
- - primary-deep 仅可在演示分节页使用大面积色场。
82
- ---
83
-
84
- ## Overview
85
-
86
- 一张工程图纸:冷灰白技术底、钢蓝、压缩标题、模块网格与带四角套准标的透明线框构成主体。
87
-
88
- ## Colors
89
-
90
- 页面使用 {colors.background} 技术底、{colors.foreground} 正文和 {colors.primary} 钢蓝;段落级钢蓝文字使用 {colors.primary-dark},大面积 {colors.primary-deep} 仅用于演示分节色场。主按钮文字用 {colors.primary-foreground},键盘焦点环用 {colors.ring}。
91
-
92
- ## Typography
93
-
94
- @import url('https://miaoda.feishu.cn/fonts/css2?family=Barlow:wght@400;500;700&family=Barlow+Condensed:wght@400;600&family=Noto+Sans+SC:wght@400;500;600;700&display=swap');
95
-
96
- HARD REQUIREMENT:字体加载与字体族分工禁止替换。标题使用 {typography.heading.fontFamily},正文使用 {typography.body.fontFamily};中文多行标题行高不低于 1.05,正文不低于 1.5,中文负字距归零。
97
-
98
- ## Layout
99
-
100
- 内容沿模块化等宽网格组织,保持清晰的横向与纵向节奏;网格列数与模块顺序根据内容和容器宽度自适应。
101
-
102
- ## Elevation & Depth
103
-
104
- 线稿卡片和图框通常不使用投影;需要层级时仅采用源规格的墨色调柔投影,不自造阴影。
105
-
106
- ## Shapes
107
-
108
- 组件采用直角、发丝边框和完整的四角套准标;图片使用钢蓝双色化包装器,图标统一 1.5 描边。
109
-
110
- ## Components
111
-
112
- 按钮、标签、原生表单、透明卡片、表格、对话框、blueprint 框架与 duotone 图像的精确规格见下方“来源规格”。
113
-
114
- ## Hard Rules
115
-
116
- - 卡片、图框与按钮保持直角;透明卡片和图框保留完整四角套准标。
117
- - 卡片与图框保持透明线稿,主按钮是主要的实体钢蓝区域。
118
- - 标题使用压缩字族,正文使用常规宽度字族。
119
- - 内容照片使用 blueprint + duotone 包装器,图标描边为 1.5。
120
-
121
- ## Exceptions
122
-
123
- - 对话框可使用 surface 填充;单选按钮保留圆形。
124
- - 演示分节页可使用 {colors.primary-deep} 整幅色场。
125
-
126
- ## Source Specification
127
-
128
- 以下内容从用户提供的原始 design.md 原样保留,仅将标题层级下调以纳入 DSM v1 单文件结构。
129
-
130
- ### 一句话定位
131
-
132
- 一张工程图纸。浅色技术底上的钢蓝,Barlow Condensed 标题配 Barlow 正文,模块化网格;卡片、图框、按钮都是**蓝图对象**——直角、发丝边框、四角带 `+` 套准标记。卡片和图框永远保持**透明线稿**;主按钮是图板上唯一的实体——实心钢蓝填充,但直角和角标一样不丢。照片双色化为钢蓝,图标细线。
133
-
134
- ---
135
-
136
- ### 1. 颜色
137
-
138
- #### 基础角色
139
-
140
- | Token | 值 | 用途 |
141
- | --- | --- | --- |
142
- | `--color-background` | `#f2f2f3` | 图纸底(冷灰白) |
143
- | `--color-surface` | `#e9e9ea` | 仅 `.input` / `.dialog` 用(卡片**不用**它) |
144
- | `--color-foreground` | `#1d1f20` | 正文墨色 |
145
- | `--color-primary` | `#5980a6` | 钢蓝,唯一强调色 |
146
- | `--color-primary-2` | `#728fab` | 机器派生占位,视作与 primary 同一角色 |
147
- | `--color-divider` | `foreground` 16% 混合 | 所有发丝边框和分隔 |
148
-
149
- **单色方案**:没有第二强调色。`primary-2` 的整条色阶存在只为让两组变量都能解析——`.tag-accent-2` 看起来和 `.tag-accent` 基本一样。
150
-
151
- #### 色阶(OKLCH 同一感知明度轴,同 step 视觉重量一致)
152
-
153
- **Neutral** `#f5f5f8` · `#e7e7ea` · `#d4d4d7` · `#b7b7ba` · `#98989b` · `#7a7a7d` · `#5d5d60` · `#424244` · `#2b2b2d`
154
-
155
- **Primary** `#eef6ff` · `#d6ebff` · `#b5d9fd` · `#94bce3` · `#749dc4` · `#597ea3` · `#416180` · `#2c455d` · `#1d2d3d`
156
-
157
- **Primary-2(占位)** `#eef6ff` · `#d6ebff` · `#bdd8f2` · `#9ebbd8` · `#7e9cb8` · `#627d98` · `#486077` · `#314457` · `#1f2d3a`
158
-
159
- 用法规则:
160
- - 100–300 → 浅色填充、hover 底、细边框
161
- - 500 → 该角色基准
162
- - 700–900 → 浅色填充上的文字、按下态
163
- - 优先取色阶 step,不要临时 `color-mix()`
164
-
165
- #### `--color-primary-900` 的特权
166
-
167
- `#1d2d3d` 可以铺**整幅色场**——deck 的分节页就用它:钢蓝作地,文字反白成纸色。这是唯一允许大面积上色的地方。(landing 的数字改走「画出来的规格牌」,落在纸底上,是另一套语法,不是色场。)
168
-
169
- #### 对比度红线
170
-
171
- primary 对底色只到 **3:1** —— 够图标、大字号、界面 chrome,**不够正文**。段落级钢蓝文字必须用 `--color-primary-700`(`#416180`)。
172
-
173
- ---
174
-
175
- ### 2. 字体
176
-
177
- | Token | 值 |
178
- | --- | --- |
179
- | `--font-heading` | `"Barlow Condensed", system-ui, sans-serif` |
180
- | `--font-heading-weight` | `600` |
181
- | `--font-body` | `"Barlow", system-ui, sans-serif` |
182
-
183
- 从 Google Fonts 载入:`Barlow:wght@400;500;700` + `Barlow+Condensed:wght@400;600`
184
-
185
- **标题压缩、正文不压缩** —— 这是本系统最容易被做错的一条:全篇都用 Condensed 就毁了对比。
186
-
187
- #### 字号阶梯
188
-
189
- | 元素 | 字号 | 备注 |
190
- | --- | --- | --- |
191
- | h1 | 42px | line-height 1.12,letter-spacing −0.015em |
192
- | h2 | 32px | 同上 |
193
- | h3 | 25px | 同上 |
194
- | h4 | 20px | 同上 |
195
- | h5 | 16px | 同上 |
196
- | h6 | 13px | **全大写**,letter-spacing 0.08em |
197
- | body | 15px | line-height 1.55,weight 400 |
198
- | figcaption | 11px | foreground 55% |
199
- | `.card-title` | 17px | heading 族 600 |
200
- | `.card-kicker` | 10px | 大写,ls 0.1em,钢蓝 |
201
- | `.btn` / `.input` | 14px | 刻意同字号——注册行里两者并排 |
202
- | `.tag` | 11px | |
203
- | `.table th` | 11px | 大写,ls 0.08em,foreground 60% |
204
- | `.dialog-title` | 20px | |
205
-
206
- ---
207
-
208
- ### 3. 间距与圆角
209
-
210
- 密度 **0.85×**(偏紧,已烘进变量):
211
-
212
- ```
213
- --space-1: 3.4px --space-2: 6.8px --space-3: 10.2px
214
- --space-4: 13.6px --space-6: 20.4px --space-8: 27.2px
215
- ```
216
-
217
- 圆角 token:`--radius-sm: 2px` / `--radius-md: 4px` / `--radius-lg: 7px`
218
-
219
- **但组件层把它们全部覆盖掉了** —— 样式表末尾:
220
-
221
- ```css
222
- .card, .btn, .input, .tag, .seg, .dialog { border-radius: 0; }
223
- .card, .dialog { background: transparent; border: 1px solid var(--color-divider); }
224
- .btn { border: 1px solid var(--color-divider); }
225
- .btn-primary { border-color: var(--color-primary); }
226
- ```
227
-
228
- 所以实际渲染出来**全部是直角**。radius 变量只对你自己写的元素有意义,组件一律方角。
229
-
230
- ### 4. 阴影
231
-
232
- ```
233
- --shadow-sm: 0 1px 2px (#2b2b2d 14%)
234
- --shadow-md: 0 3px 10px (#2b2b2d 16%)
235
- --shadow-lg: 0 12px 32px (#2b2b2d 22%)
236
- ```
237
-
238
- 工具类 `.elev-sm / -md / -lg`。但线稿系统里阴影用得极少——透明卡片配投影是矛盾的,谨慎使用。不要自造 box-shadow。
239
-
240
- ---
241
-
242
- ### 5. 蓝图框架(本系统的核心标识)
243
-
244
- ```html
245
- <div class="card blueprint">
246
- <i class="corner tl"></i><i class="corner tr"></i>
247
- <i class="corner bl"></i><i class="corner br"></i>
248
- …
249
- </div>
250
- ```
251
-
252
- `.blueprint` = `position: relative` + 1px `--color-divider` 边 + `border-radius: 0`。
253
-
254
- 四个 `.corner` 是 11×11px 的十字标,用 `::before`(1px 竖线)+ `::after`(1px 横线)画出,颜色是 `foreground` 55%,定位在框外 −6px 处。
255
-
256
- **注意**:`.blueprint` 与图像处理类(`.halftone` / `.plate` / `.duotone`)共用一个包装器时,样式表强制 `overflow: visible`——因为角标画在盒子外面,框必须赢过图像裁剪。
257
-
258
- **绝不许从已加框元素上去掉套准标记。** 四个都要,少一个就破了语法。
259
-
260
- ### 6. 图像处理
261
-
262
- ```html
263
- <figure class="blueprint duotone">
264
- <i class="corner tl"></i>…
265
- <img src="…">
266
- </figure>
267
- ```
268
-
269
- `.duotone` = `position: relative; overflow: hidden` + 一层 `::after` 铺满 `--color-primary`,`mix-blend-mode: color`。效果是照片去饱和后被钢蓝洗过一遍,像跟着主题重新上色的丝网印。
270
-
271
- **所有内容照片都必须过这个包装器。** 图和图框跟卡片同样待遇:方角、发丝边、带角标,永不圆角、永不裁切成异形。
272
-
273
- ### 7. 组件
274
-
275
- | 类名 | 说明 |
276
- | --- | --- |
277
- | `.btn` + `.btn-primary / -secondary / -ghost / -icon / -block` | 全部方角带边。primary 是实心钢蓝 + 钢蓝边 + 纸色字(图板上唯一实体);ghost 边框透明;`.btn-icon` 36×36;字体 heading 族 600 / 14px |
278
- | `.tag` + `.tag-accent / -accent-2 / -neutral / -outline` | 方角小标签(100 底 + 800 字)。单色调色板下 primary-2 与 primary 观感相同 |
279
- | `.field` + `label` / `.input` / `.radio` + `.dot` / `.seg` + `.seg-opt` | 原生元素表单,无脚本。`.input` 36px 高、surface 底、方角、caret 钢蓝 |
280
- | `.card` + `.card-kicker / -title / -body / -meta` | **透明**、发丝边、方角;配 `.blueprint` + 四角标使用。`.elev-sm/md/lg` 可选高度 |
281
- | `.nav` + `.nav-brand` | 顶栏,`border-bottom: none` |
282
- | `.table` | 大写细字表头 + 8% 墨行线,hover 行底 4% |
283
- | `.dialog-backdrop` + `.dialog`(`-title / -body / -actions`) | 背景 `neutral-900` 50%;对话框 `min(440px, 100%)`、方角、**surface 填充 + 发丝边**(唯一带填充的容器例外) |
284
- | `.hr` | 1px 细线,存在但本系统偏好留白——**避免使用** |
285
- | `.blueprint` + 四个 `.corner` | 上面第 5 节 |
286
- | `.duotone` | 上面第 6 节 |
287
- | `.text-muted` | foreground 55% |
288
-
289
- #### 交互态(已内建,不要逐页重写)
290
-
291
- - `.btn-primary` hover → `--color-primary-600`;active → `--color-primary-700`
292
- - `.btn-secondary` hover → foreground 7%;active → 14%
293
- - `.btn-ghost` hover → 钢蓝 10%;active → 18%
294
- - `.input:hover` → 边框 foreground 45%;`:focus-visible` → 钢蓝边框,`outline-offset: 0`
295
- - `.radio input:checked + .dot` → 钢蓝填充 + `inset 0 0 0 4px var(--color-background)` 做内圈(这里是圆的——radio 保留 `border-radius: 50%`)
296
- - `.seg-opt:has(input:checked)` → 钢蓝底 + 纸色字
297
- - 键盘焦点:`:focus-visible { outline: 2px solid var(--color-primary); outline-offset: 2px }`
298
- - `::selection` → 钢蓝 30%
299
- - disabled → `opacity: 0.45` + `cursor: not-allowed`
300
- - `a` → 钢蓝,`text-underline-offset: 3px`;`.nav a:hover` / `[aria-current=page]` → 钢蓝
301
-
302
- ### 8. 图标
303
-
304
- Lucide(lucide.dev),**统一 stroke-width 1.5**。不许用粗描边。
305
-
306
- ### 9. 布局方向
307
-
308
- 模块化网格:内容放进**等宽单元格**,强横向与纵向节奏,结构可见。别把它做成流动的、居中的、卡片浮起的常规网页——它是图板。
309
-
310
- ---
311
-
312
- ### 禁止清单
313
-
314
- 1. 给卡片、图框、按钮加圆角
315
- 2. 给卡片或图框加填充底(它们是线稿;实心 primary 主按钮是唯一刻意的例外)
316
- 3. 从已加框元素上去掉套准标记
317
- 4. 粗描边图标(Lucide 固定 1.5)
318
- 5. 钢蓝之外的装饰色(唯一放行:`--color-primary-900` 在 deck 分节页铺整幅)
319
- 6. 正文用 `--color-primary` 本值(要用 `-700`)
320
- 7. 正文也用 Barlow Condensed
321
- 8. `.hr` 当主要分隔手段
322
- 9. 硬编码 hex / 字体名 / px(token 里已有的)
323
-
324
- ### 接入方式
325
-
326
- ```html
327
- <helmet>
328
- <link rel="stylesheet" href="_ds/industry-7eb0c315-f7e5-4fe7-9873-401826ed322b/styles.css">
329
- <script src="_ds/industry-7eb0c315-f7e5-4fe7-9873-401826ed322b/_ds_bundle.js"></script>
330
- </helmet>
331
- ```
332
-
333
- 组件直接在模板里挂载:
334
-
335
- ```html
336
- <x-import component-from-global-scope="Industry_indust.Button" hint-size="auto,40px">Label</x-import>
337
- ```
338
-
339
- ### 可用模板
340
-
341
- - `templates/deck/` —— 21 页演示起点:封面、目录、分节页、分栏、四宫格、数据表、SVG 图表与时间轴、出血图、引言、结尾
342
- - `templates/landing/` —— 单页产品落地页(虚构产品 Holdfast,紧固件目录):压缩字 hero、编号规格牌、线框单元格、双色照片
343
- - `assets/photo.jpg` —— 图像处理页用的参考照片
344
-
345
- ## Do's and Don'ts
346
-
347
- - Do:按上述 token 与签名组件实现视觉语言,并根据用户内容组织信息。
348
- - Don't:不要为套用示例而改变用户内容的业务语义。
@@ -1,226 +0,0 @@
1
- ---
2
- version: alpha
3
- name: metabase
4
- name_zh: 湖光蓝调
5
- description: "纯白主面与大块极浅蓝静区,深蓝文字配明亮蓝主按钮和焦点;Lato 人文无衬线字体,4–12px 圆角、半透明边框、轻投影平铺卡片和较深漫射浮层构成层级。"
6
-
7
- colors:
8
- background: "#FFFFFF"
9
- foreground: "#222C3E"
10
- card: "#FFFFFF"
11
- primary: "#509EE3"
12
- primary-foreground: "#FFFFFF"
13
- muted: "#F0F8FF"
14
- muted-foreground: "#5A6072"
15
- accent: "#F0F8FF"
16
- border: "rgba(90, 96, 114, 0.15)"
17
- ring: "#509EE3"
18
- surface-quiet: "#FAFBFE"
19
- placeholder: "#8D93A5"
20
- text-hint: "#4C5773"
21
-
22
- typography:
23
- display:
24
- fontFamily: '"Lato", "Noto Sans SC", "PingFang SC", "Microsoft YaHei", sans-serif'
25
- fontSize: 48px
26
- lineHeight: 1.1
27
- fontWeight: 700
28
- letterSpacing: "-0.5px"
29
- h1:
30
- fontFamily: '"Lato", "Noto Sans SC", "PingFang SC", "Microsoft YaHei", sans-serif'
31
- fontSize: 40px
32
- lineHeight: 1.2
33
- fontWeight: 700
34
- letterSpacing: "0"
35
- h2:
36
- fontFamily: '"Lato", "Noto Sans SC", "PingFang SC", "Microsoft YaHei", sans-serif'
37
- fontSize: 28px
38
- lineHeight: 1.3
39
- fontWeight: 700
40
- letterSpacing: "0"
41
- body:
42
- fontFamily: '"Lato", "Noto Sans SC", "PingFang SC", "Microsoft YaHei", sans-serif'
43
- fontSize: 16px
44
- lineHeight: 1.5
45
- fontWeight: 400
46
- letterSpacing: "0"
47
- small:
48
- fontFamily: '"Lato", "Noto Sans SC", "PingFang SC", "Microsoft YaHei", sans-serif'
49
- fontSize: 14px
50
- lineHeight: 1.4
51
- fontWeight: 400
52
- letterSpacing: "0"
53
-
54
- rounded:
55
- sm: 4px
56
- md: 8px
57
- lg: 12px
58
- pill: 999px
59
-
60
- spacing:
61
- xs: 4px
62
- sm: 8px
63
- md: 12px
64
- lg: 16px
65
- xl: 20px
66
- 2xl: 24px
67
- 3xl: 32px
68
-
69
- components:
70
- button:
71
- background: "{colors.primary}"
72
- color: "{colors.primary-foreground}"
73
- borderRadius: "{rounded.md}"
74
- description: "主按钮用强调蓝实底 + 8px 圆角;次级为描边按钮(border {colors.border}、文字 {colors.foreground})。"
75
- card:
76
- background: "{colors.card}"
77
- border: "1px solid {colors.border}"
78
- borderRadius: "{rounded.lg}"
79
- boxShadow: "0 1px 2px rgba(16, 24, 40, 0.05)"
80
- description: "干净白卡,纤细半透明中性边框 + 柔和漫射阴影,避免生硬边缘。"
81
- chip:
82
- borderRadius: "{rounded.pill}"
83
- description: "柔和药丸标签,弱底 {colors.muted} 用于分类与筛选。"
84
- input:
85
- background: "{colors.background}"
86
- border: "1px solid {colors.border}"
87
- borderRadius: "{rounded.md}"
88
- description: "干净描边输入框,聚焦描边转 {colors.primary}。"
89
- hero:
90
- background: "{colors.background}"
91
- description: "大号标题 + 副标 + 两个醒目 CTA,纯白平面无渐变。"
92
-
93
- anchors:
94
- - id: white-plus-vivid-blue
95
- type: token
96
- desc: "纯白底 + 醒目主色蓝强调(见 colors.primary),柔和中性调色板不与数据竞争"
97
- - id: humanist-sans-bold-heads
98
- type: token
99
- desc: "人文无衬线全局承载,标题用 700 字重建立清晰层级"
100
- - id: blue-solid-button
101
- type: component
102
- desc: "主按钮强调蓝实底 + 中圆角(见 rounded.md),次级为描边按钮"
103
- - id: soft-shadow-card
104
- type: component
105
- desc: "白卡靠柔和漫射阴影 + 纤细半透明中性边框(colors.border)定义,无生硬边缘"
106
- - id: open-airy-layout
107
- type: pattern
108
- desc: "标准居中容器 + 清晰分节线 + 充足留白,开放通透"
109
- - id: rounded-corners-only
110
- type: pattern
111
- desc: "卡片与按钮一律圆角,不用尖锐 90 度直角"
112
-
113
- gaps:
114
- - "深色模式:源明确排除,只做明亮浅色主题"
115
- - "chip:源未明确出现,按柔和药丸形推导(见 Components)"
116
- - "看板图表序列色:源未逐一给出,已按 primary 主序列 + 中性梯度补推(见 Components)"
117
- ---
118
-
119
- ## Overview
120
-
121
- 利用 AI 回答问题的开源分析平台。设计系统是一个简洁、数据驱动的仪表盘——一个精确的仪器面板,信息清晰度是首要结构原则;身份建立在开源、分析、AI 驱动与数据之上,构成从颜色到组件每个决策的逻辑基础。
122
-
123
- **One-liner:** 利用 AI 回答问题的开源分析平台。
124
- **Keywords:** 开源 · 数据分析 · AI 驱动 · 数据
125
- **Analogy:** 一个简洁、数据驱动的仪表盘。
126
-
127
- ## Colors
128
-
129
- 色彩系统简洁且以数据为中心,醒目主色蓝点缀白色背景,创造高清晰度画布,让数据可视化与交互元素呈现而不产生视觉竞争;调色板作为专业中立的框架。
130
-
131
- - **底色 `colors.background` `#FFFFFF`** — 主背景,纯白平面。
132
- - **卡面 `colors.card` `#FFFFFF`** — 白卡底色。
133
- - **柔底 `colors.muted` `#F0F8FF`** — 浅蓝静区与筛选区底色。
134
- - **静区 `colors.surface-quiet` `#FAFBFE`** — 极浅静区。
135
- - **正文 `colors.foreground` `#222C3E`** — 主要文本与关键数字。
136
- - **次级文本 `colors.muted-foreground` `#5A6072`** — 说明性文本。
137
- - **弱化 `colors.placeholder` `#8D93A5`** — 占位符。
138
- - **弱提示 `colors.text-hint` `#4C5773`** — 次级提示文字。
139
- - **主色 `colors.primary` `#509EE3`** — 醒目主色蓝,用于主按钮与交互焦点;`colors.ring` 同值作聚焦环,主按钮上的文字用 `colors.primary-foreground` `#FFFFFF`。
140
- - **弱强调底 `colors.accent` `#F0F8FF`** — 悬停、选中行和加载占位的浅蓝底。
141
- - **分隔线 `colors.border` `rgba(90, 96, 114, 0.15)`** — 纤细半透明中性边框。
142
-
143
- **用色原则:** 简洁数据导向,以白底上的醒目强调蓝为主色;不引入高对比霓虹色。
144
-
145
- ## Typography
146
-
147
- 字体由 Lato 人文主义无衬线系列处理,因干净专业与跨屏可读性被选用;比例从主标题到辅助文本逐步递进,为数据驱动内容建立清晰层级。
148
-
149
- - **@import(HARD REQUIREMENT / 禁止替换,原样写入全局样式首行):**
150
- `@import url('https://miaoda.feishu.cn/fonts/css2?family=Lato:wght@400;700&family=Noto+Sans+SC:wght@400;500;700&display=swap');`
151
- - **字体栈:** `"Lato", "Noto Sans SC", "PingFang SC", "Microsoft YaHei", sans-serif` —— 拉丁用 Lato(源推荐,人文无衬线),中文用 Noto Sans SC(气质同为清晰人文无衬线),系统字体末位保底。
152
-
153
- | 角色 | Size | Line-height | Weight | Letter-spacing | 用法 |
154
- |---|---|---|---|---|---|
155
- | display | 48px | 1.1 | 700 | -0.5px | 主标题 |
156
- | h1 | 40px | 1.2 | 700 | 0 | 主要章节标题 |
157
- | h2 | 28px | 1.3 | 700 | 0 | 子章节标题 |
158
- | body | 16px | 1.5 | 400 | 0 | 正文文本 |
159
- | small | 14px | 1.4 | 400 | 0 | 辅助文本 |
160
-
161
- **字体规则:**
162
- - 标题用 Lato 700 字重建立层级;正文用 400 字重保持易读。
163
- - display 用 -0.5px 负字距收紧,其余标题字距为 0。
164
- - **CJK 行高转译:** display 负字距在中文场景清零;中文标题 line-height 保持 ≥1.1,中文正文 ≥1.5,避免字形重叠。
165
-
166
- ## Layout
167
-
168
- 标准居中容器,提供稳定熟悉的框架;用清晰分节线与充足空白划分内容,保持开放通透。
169
-
170
- - **Container max:** 1280px
171
- - **Paragraph max:** 680px
172
- - **Grid:** 12 columns, gutter 24px
173
- - **Breakpoints:** 768 / 1024 px
174
- - **Rhythm:** 8px 基础单位 + 4px 微间距(见 spacing.xs / spacing.sm)。
175
-
176
- 12 列仅作为对齐工具,不要求固定分栏、组件位置或页面骨架;实际列数与跨度按内容关系决定。
177
-
178
- ## Elevation & Depth
179
-
180
- 表面靠柔和漫射阴影创造微妙深度,避免生硬边缘;边框始终纤细浅淡,用半透明中性色定义卡片与输入框而不增加视觉重量。
181
-
182
- - 0 1px 2px rgba(16, 24, 40, 0.05)
183
- - 0 16px 28px -6px rgba(24, 39, 75, 0.12)
184
- - 0 32px 88px -4px rgba(24, 39, 75, 0.14)
185
- - **Borders:** 1px 实线 colors.border。
186
-
187
- ## Shapes
188
-
189
- 圆角一致,卡片与按钮用小到中圆角,药丸标签用满圆角;不用尖锐直角。
190
-
191
- - **Radius:** sm 4px(见 rounded.sm) · md 8px(rounded.md) · lg 12px(rounded.lg) · pill 999px(rounded.pill)
192
- - **Borders:** 1px 半透明中性边框 colors.border。
193
-
194
- ## Components
195
-
196
- - **button:** 主按钮强调蓝实底(background {colors.primary}、文字 {colors.primary-foreground}、圆角 {rounded.md});次级为描边按钮(border {colors.border}、文字 {colors.foreground})。
197
- - **card:** 干净白卡(background {colors.card}、border 1px {colors.border}、圆角 {rounded.lg}),柔和漫射阴影 rgba(16,24,40,0.05)。
198
- - **chip:** 柔和药丸标签(圆角 {rounded.pill}),弱底 {colors.muted},用于分类与筛选。
199
- - **input:** 干净描边输入框(border 1px {colors.border}、圆角 {rounded.md}),聚焦描边转 {colors.primary}。
200
- - **hero:** 大号标题 + 副标 + 两个醒目 CTA,纯白平面无渐变。
201
- - **看板图表(数据看板落地补充):** 主序列用 colors.primary 醒目蓝,次序列/对比用 colors.placeholder 与柔和中性梯度;图表容器为白卡,柔和漫射阴影 + colors.border 纤细边框成组,不引入高对比霓虹色。
202
-
203
- ## Do's and Don'ts
204
-
205
- **Do:**
206
- - 用清晰分节线与充足留白保持开放通透。
207
- - 标题用 700 字重建立粗体层级。
208
- - 卡片/按钮一律圆角,配柔和漫射阴影。
209
-
210
- **Don't:**
211
- - 别在正文用纤细优雅衬线 —— 一律人文无衬线。
212
- - 别用密集大段文字缺留白 —— 布局开放通透。
213
- - 别用复杂渐变做主背景 —— 背景纯白或极浅浅蓝。
214
-
215
- ## Hard Rules
216
-
217
- - 不使用深色模式:背景始终明亮浅色 colors.background(#FFFFFF),只做浅色主题。
218
- - 不使用高对比霓虹色:强调统一用醒目主色蓝 colors.primary,其余为柔和中性。
219
- - 卡片与按钮不用尖锐 90 度直角,一律圆角。
220
- - 正文一律人文无衬线,不用纤细优雅衬线承载可读文本。
221
- - 主背景不用复杂渐变,保持纯白或极浅浅蓝平面。
222
-
223
- ## Exceptions
224
-
225
- - 主按钮允许唯一的强调蓝实底(colors.primary):它是界面上主要的实底色块,承担关键行动召唤;次级动作用描边按钮。
226
- - 悬浮层/模态可用更深的第二/三层漫射阴影(0 16px 28px / 0 32px 88px),平铺卡片仍用第一层 0.05 极轻投影。