@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,313 +0,0 @@
1
- ---
2
- version: alpha
3
- name: broadsheet
4
- name_zh: 新闻大报
5
- description: 网页新闻纸风格:纸白底、Source Serif 4 衬线字与近黑墨色构成主体,青与洋红仅作克制点色;页面层级主要依靠字阶和留白,图像可使用 CMYK 套印偏移与网点处理。
6
- colors:
7
- background: "#f3f2f2"
8
- card: "#eae9e9"
9
- foreground: "#201e1d"
10
- primary: "#0088b0"
11
- primary-foreground: "#f3f2f2"
12
- ring: "#0088b0"
13
- primary-dark: "#006786"
14
- highlight: "#d6006c"
15
- process-yellow: "#edbb00"
16
- neutral-dark: "#2d2b2b"
17
- typography:
18
- heading:
19
- fontFamily: "'Source Serif 4', 'Noto Serif SC', 'Songti SC', system-ui, serif"
20
- fontWeight: "600"
21
- body:
22
- fontFamily: "'Source Serif 4', 'Noto Serif SC', 'Songti SC', system-ui, serif"
23
- fontSize: "15px"
24
- lineHeight: "1.5"
25
- h1:
26
- fontSize: "42px"
27
- h2:
28
- fontSize: "32px"
29
- h3:
30
- fontSize: "25px"
31
- spacing:
32
- space-1: "5px"
33
- space-2: "10px"
34
- space-3: "15px"
35
- space-4: "20px"
36
- space-6: "30px"
37
- space-8: "40px"
38
- rounded:
39
- sm: "1px"
40
- md: "2px"
41
- lg: "4px"
42
- components:
43
- primary-button:
44
- background: "{colors.primary}"
45
- color: "{colors.primary-foreground}"
46
- fontFamily: "{typography.heading.fontFamily}"
47
- card:
48
- background: "{colors.card}"
49
- description: "仅用于真正离散的条目,不作为页面布局容器"
50
- cmyk-image:
51
- description: "CMYK 分色印版错位叠印与网点处理;完整结构和依赖见来源规格"
52
- anchors:
53
- - id: paper-and-ink
54
- type: token
55
- desc: 纸白底与近黑墨色形成新闻纸基调
56
- - id: serif-everywhere
57
- type: token
58
- desc: 标题、正文与界面控件统一使用衬线字族
59
- - id: restrained-process-colors
60
- type: pattern
61
- desc: 青与洋红只作小面积点色,同一组件不同时出现
62
- - id: whitespace-hierarchy
63
- type: pattern
64
- desc: 页面结构主要依靠字阶与留白,不依赖框盒
65
- - id: cmyk-registration
66
- type: component
67
- desc: 图像使用套印偏移分色版与新闻纸网点
68
- - id: square-paper-components
69
- type: component
70
- desc: 组件圆角接近零,维持印刷纸面感
71
- gaps:
72
- - 原始 styles.css、print-plates.js、_ds_bundle.js 与模板资产未随 markdown 提供;CMYK 签名效果的完整滤镜代码无法从二手描述还原,接入时需使用来源资产。
73
- - 暗色模式未定义。
74
- exceptions:
75
- - 工艺黄仅用于 CMYK 分色、印版数字等印刷处理,不进入正文或界面 chrome。
76
- - 卡片仅用于真正离散的列表条目,不作为页面结构容器。
77
- ---
78
-
79
- ## Overview
80
-
81
- 网页上的新闻纸:纸白、墨色、衬线字阶和通透留白构成主体,青与洋红作为印刷点色,CMYK 套印图像提供签名视觉。
82
-
83
- ## Colors
84
-
85
- 页面使用 {colors.background} 纸底与 {colors.foreground} 墨色;{colors.primary} 和 {colors.highlight} 小面积点色,同一小组件只使用其中一种。段落级青字使用 {colors.primary-dark}。主按钮文字用 {colors.primary-foreground},键盘焦点环用 {colors.ring}。
86
-
87
- ## Typography
88
-
89
- @import url('https://miaoda.feishu.cn/fonts/css2?family=Noto+Serif+SC:wght@400;600&family=Source+Serif+4:ital,wght@0,400;0,600;1,400&display=swap');
90
-
91
- HARD REQUIREMENT:字体加载与字体族分工禁止替换。标题、正文和界面 chrome 均使用 {typography.heading.fontFamily};中文多行标题行高不低于 1.05,正文不低于 1.5,中文负字距归零。
92
-
93
- ## Layout
94
-
95
- 内容左对齐并保留宽松右侧留白,主要依靠字号层级和间距组织,不用卡片或分割线搭建页面结构。
96
-
97
- ## Elevation & Depth
98
-
99
- 使用源规格的墨色调柔投影;页面结构主要依靠留白,离散条目需要分层时才使用投影。
100
-
101
- ## Shapes
102
-
103
- 圆角接近零,保留纸张与印刷物的硬朗边缘;图片可使用 CMYK 套印偏移和网点处理。
104
-
105
- ## Components
106
-
107
- 按钮、标签、原生表单、离散条目卡片、表格和对话框的精确规格见下方“来源规格”。CMYK 图像依赖来源中的 print-plates.js 与滤镜资产。
108
-
109
- ## Hard Rules
110
-
111
- - 同一小组件只使用青或洋红中的一种。
112
- - 正文青色使用 {colors.primary-dark};工艺黄只进入印刷处理。
113
- - 页面结构由字阶与留白组织,卡片仅承载真正离散的条目。
114
- - Source Serif 4 真斜体随正文字重加载,不使用合成斜体。
115
-
116
- ## Exceptions
117
-
118
- - 工艺黄只用于 CMYK 分色、印版数字等印刷处理。
119
- - 真正离散的列表条目可使用 card 卡片与源规格投影。
120
-
121
- ## Source Specification
122
-
123
- 以下内容从用户提供的原始 design.md 原样保留,仅将标题层级下调以纳入 DSM v1 单文件结构。
124
-
125
- ### 一句话定位
126
-
127
- 网页上的新闻纸。纸白底上全篇 Source Serif 4 近黑墨色,四色印刷的青与洋红作为**点色**小面积、克制地用(印刷处理里再补一个工艺黄)。页面结构**不用框、不用分割线**——层级只来自衬线字阶和留白。唯一印线的地方是头版活件:landing 上日期栏两侧的粗-细线对,满墨强度。图片按自己的**套印偏移印版**输出。
128
-
129
- ---
130
-
131
- ### 1. 颜色
132
-
133
- #### 基础角色
134
-
135
- | Token | 值 | 用途 |
136
- | --- | --- | --- |
137
- | `--color-background` | `#f3f2f2` | 纸白底 |
138
- | `--color-card` | `#eae9e9` | 卡片 / 面板填充 |
139
- | `--color-foreground` | `#201e1d` | 墨色正文 |
140
- | `--color-primary` | `#0088b0` | 青 —— 交互元素专用 |
141
- | `--color-highlight` | `#d6006c` | 洋红 —— 更罕用的第二点色 |
142
- | `--color-process-yellow` | `#edbb00` | 第三道工艺墨,**仅印刷处理**用(CMYK 分色、印版数字);正文与界面 chrome 永不取它 |
143
- | `--color-divider` | `foreground` 16% 混合 | 1px 细线 |
144
-
145
- **双点色,但不许同框**:一个小组件里不能同时出现青和洋红。
146
-
147
- #### 色阶(OKLCH 同一感知明度轴,同 step 视觉重量一致)
148
-
149
- **Neutral** `#f8f4f4` · `#eae7e7` · `#d7d3d3` · `#bab6b6` · `#9b9797` · `#7d7979` · `#605d5d` · `#444141` · `#2d2b2b`
150
-
151
- **Primary(青)** `#e9f8ff` · `#cbeeff` · `#99e0ff` · `#62c5ee` · `#38a6cf` · `#1186ac` · `#006786` · `#004961` · `#0a303e`
152
-
153
- **Highlight(洋红)** `#fff1f4` · `#ffdee6` · `#ffc0d0` · `#ff90b1` · `#ff458e` · `#d82071` · `#aa0b56` · `#790e3d` · `#4b1528`
154
-
155
- 用法规则:
156
- - 100–300 → 浅色填充、hover 底、细边框
157
- - 500 → 该角色基准
158
- - 700–900 → 浅色填充上的文字、按下态
159
- - 优先取色阶 step,不要临时 `color-mix()`
160
-
161
- #### 对比度红线
162
-
163
- primary 对纸底只到 **3:1** —— 够图标、大字号、界面 chrome,**不够正文**。段落级青字必须用 `--color-primary-700`(`#006786`)。
164
-
165
- ---
166
-
167
- ### 2. 字体
168
-
169
- | Token | 值 |
170
- | --- | --- |
171
- | `--font-heading` | `"Source Serif 4", system-ui, sans-serif` |
172
- | `--font-heading-weight` | `600` |
173
- | `--font-body` | `"Source Serif 4", system-ui, sans-serif` |
174
-
175
- 单一字族,字重 400 / 600 分层,**真斜体按正文字重载入**(引言和强调走衬线的斜体声音,绝不用合成倾斜)。
176
-
177
- 从 Google Fonts 载入:`Source+Serif+4:ital,wght@0,400;0,600;1,400`
178
-
179
- #### 字号阶梯
180
-
181
- | 元素 | 字号 | 备注 |
182
- | --- | --- | --- |
183
- | h1 | 42px | |
184
- | h2 | 32px | |
185
- | h3 | 25px | |
186
- | h4 | 20px | |
187
- | h5 | 16px | |
188
- | h6 | 13px | **全大写**,letter-spacing 0.08em |
189
- | body | 15px | |
190
- | figcaption | 11px | foreground 55% |
191
- | `.card-title` | 17px | heading 族 600 |
192
- | `.card-kicker` | 10px | 大写,ls 0.1em,青色 |
193
- | `.btn` / `.input` | 14px | 刻意同字号——注册行里两者并排 |
194
- | `.tag` | 11px | |
195
- | `.table th` | 11px | 大写,ls 0.08em,foreground 60% |
196
-
197
- **不许为界面 chrome 引入无衬线字**——衬线本身就是 chrome。
198
-
199
- ---
200
-
201
- ### 3. 间距与圆角
202
-
203
- 密度 **1.25×**(宽松,已烘进变量):
204
-
205
- ```
206
- --space-1: 5px --space-2: 10px --space-3: 15px
207
- --space-4: 20px --space-6: 30px --space-8: 40px
208
- ```
209
-
210
- 圆角几乎为零:`--radius-sm: 1px` / `--radius-md: 2px` / `--radius-lg: 4px`
211
-
212
- **不许压缩这套通透的间距**。
213
-
214
- ### 4. 阴影
215
-
216
- ```
217
- --shadow-sm: 0 1px 2px (#2d2b2b 14%)
218
- --shadow-md: 0 3px 10px (#2d2b2b 16%)
219
- --shadow-lg: 0 12px 32px (#2d2b2b 22%)
220
- ```
221
-
222
- 墨色调柔投影,已针对纸底调过。工具类 `.elev-sm / -md / -lg`。不要自造 box-shadow。
223
-
224
- ---
225
-
226
- ### 5. 布局方向
227
-
228
- - **左对齐、不对称**:标题齐左,内容贴左边缘,留白留在右侧
229
- - **区块之间只用留白**,不用分割线、不用卡片
230
- - deck 分节页 = 印版的打样余白:**页面保持纸白**(本系统没有深色面**)**,靠印刷活件承担断点——右侧一片套印偏移的网点场、`.cmyk-num` 印版数字、十级黑白灰梯、八格色标、一个星形套准标
231
- - 多数幻灯片把第一笔墨锚在同一个左上角落点,真正的套准标记落在纸张边缘
232
-
233
- ### 6. 图像处理
234
-
235
- | 类名 | 说明 |
236
- | --- | --- |
237
- | `.cmyk` | **主打处理** —— 照片印成四张套印偏移的分色版。结构:`figure.cmyk` 内五份同图,第一份作布局尺子(`opacity:0`,保留在无障碍树里承载 alt),其余四份分别标 `.sep-c/.sep-m/.sep-y/.sep-k`;分色由 `print-plates.js` 的 SVG `feColorMatrix` 实时抽取,错开数像素后 multiply 叠到纸底,最后过一层 3px 网点 |
238
- | `.cmyk` + `.print` | 单图版本:`figure.cmyk > .print > image-slot`,用一个复合滤镜 `#sep-all` 处理可替换的单张图。hover 时印版回套准(印刷工在灯台上验套准),reduced-motion / 触屏下退化为直接切到清晰原图 |
239
- | `.cmyk-num` | 印版数字:**只三版 C/M/Y,没有黑版** —— 暗部完全来自三色 multiply 叠加,边缘毛刺就是套印漂移。结构:`.cmyk-num` 内一个 `.paper` span(纸白,用偏移 text-shadow 拼出字形并集)+ 三个 `.plate` span;自带 `--cmyk-num-ground` 兜底纸底 |
240
- | `.halftone` | 简版新闻纸网点(`grayscale(.35) contrast(1.15)` + 3px 径向网点 multiply),**给界面截图用** |
241
-
242
- `.cmyk` 依赖 `print-plates.js` 的 filter defs 在文档里。模板页通过编译好的 `_ds_bundle.js` 自动拿到;直接 link `styles.css` 的页面要自己在样式表旁加 `<script src="print-plates.js"></script>`(data-URI 滤镜引用在 Chromium 下不成立,外部文件引用跨引擎不可靠)。
243
-
244
- ### 7. 组件
245
-
246
- | 类名 | 说明 |
247
- | --- | --- |
248
- | `.btn` + `.btn-primary / -secondary / -ghost / -icon / -block` | primary 是实心青填充,文字 `--color-background`;字体用 heading 族 600 / 14px;`.btn-icon` 36×36 |
249
- | `.tag` + `.tag-accent / -accent-2 / -neutral / -outline` | 色阶染色小标签(100 底 + 800 字) |
250
- | `.field` + `label` / `.input` / `.radio` + `.dot` / `.seg` + `.seg-opt` | 原生元素表单,无脚本。`.input` 36px 高、card 底、caret 用青;placeholder 明确定为 foreground 65%(实测 4.8:1,浏览器默认灰过不了小字 4.5:1) |
251
- | `.card` + `.card-kicker / -title / -body / -meta`;`.elev-sm/md/lg` | card 填充卡。**只用于真正离散的条目**(如列表项),绝不用来搭布局 |
252
- | `.nav` + `.nav-brand` | 顶栏,`border-bottom: none`(刻意) |
253
- | `.table` | 大写细字表头 + 8% 墨行线,hover 行底 4% |
254
- | `.dialog-backdrop` + `.dialog`(`-title / -body / -actions`) | 最高层模态 |
255
- | `.hr` | 1px 细线,存在但本系统偏好留白——**避免使用** |
256
- | `.text-muted` | foreground 55% |
257
-
258
- #### 交互态(已内建,不要逐页重写)
259
-
260
- - `.btn-primary` hover → `--color-primary-600`;active → `--color-primary-700`
261
- - `.btn-secondary` hover → foreground 7%;active → 14%
262
- - `.btn-ghost` hover → 青 10%;active → 18%
263
- - `.input:hover` → 边框 foreground 45%;`:focus-visible` → 青边框,`outline-offset: 0`
264
- - `.radio input:checked + .dot` → 青填充 + `inset 0 0 0 4px var(--color-background)` 做出内圈
265
- - `.seg-opt:has(input:checked)` → 青底 + 纸色字
266
- - 键盘焦点:`:focus-visible { outline: 2px solid var(--color-primary); outline-offset: 2px }`
267
- - `::selection` → 青 30%
268
- - disabled → `opacity: 0.45` + `cursor: not-allowed`
269
- - `a` → 青,`text-underline-offset: 3px`;`.nav a:hover` / `[aria-current=page]` → 青
270
-
271
- ### 8. 图标
272
-
273
- Phosphor(phosphoricons.com),**统一用 duotone 字重**。
274
-
275
- ---
276
-
277
- ### 禁止清单
278
-
279
- 1. 用线、边框或框盒搭页面结构 —— 页面是一张摊开的大报
280
- 2. 同一个小组件里同时用青和洋红
281
- 3. 压缩间距(密度 1.25× 是刻意的)
282
- 4. 为界面 chrome 引入无衬线字
283
- 5. `.card` 当布局容器
284
- 6. `.hr` 当主要分隔手段
285
- 7. 正文级文字用 `--color-primary` 本值(要用 `-700`)
286
- 8. 工艺黄出现在正文或界面 chrome 里
287
- 9. 合成斜体(用真斜体)
288
- 10. 硬编码 hex / 字体名 / px(token 里已有的)
289
-
290
- ### 接入方式
291
-
292
- ```html
293
- <helmet>
294
- <link rel="stylesheet" href="_ds/broadsheet-fed8f2ec-b6d6-4630-b717-2d074781ac94/styles.css">
295
- <script src="_ds/broadsheet-fed8f2ec-b6d6-4630-b717-2d074781ac94/_ds_bundle.js"></script>
296
- </helmet>
297
- ```
298
-
299
- 组件直接在模板里挂载:
300
-
301
- ```html
302
- <x-import component-from-global-scope="Broadsheet_broads.Button" hint-size="auto,40px">Label</x-import>
303
- ```
304
-
305
- ### 可用模板
306
-
307
- - `templates/deck/` —— 23 页演示起点:封面、目录、分节页、分栏、四宫格、数据表、SVG 图表、分色印版页、出血图、引言、结尾
308
- - `templates/landing/` —— 单页落地页(虚构产品 Daybreak,晨间新闻摘要):衬线 hero、日期栏与索引头、功能分栏、分色照片、注册收尾
309
-
310
- ## Do's and Don'ts
311
-
312
- - Do:按上述 token 与签名组件实现视觉语言,并根据用户内容组织信息。
313
- - Don't:不要为套用示例而改变用户内容的业务语义。