@lark-apaas/coding-steering 0.1.70 → 0.1.72

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 +4 -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 +7 -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,253 +0,0 @@
1
- ---
2
- version: alpha
3
- name: organic-minimalism
4
- name_zh: 有机极简
5
- description: 有机极简主义界面风——大面积留白配柔和自然绿调,超大圆角卡片(40-48px)+极简线性图标+无装饰主义排版;单一强调色石灰绿严格聚焦于激活态/CTA/关键结果,全局仅浅阴影(shadow-sm)。自然、轻盈、精确、值得信赖。
6
- colors:
7
- background: "#FFFFFF"
8
- card: "#F6F7F2"
9
- header: "#1A1A1A"
10
- foreground: "#1A1A1A"
11
- muted-foreground: "#9CA3AF"
12
- primary: "#D8EC9D"
13
- primary-foreground: "#1A1A1A"
14
- primary-strong: "#B3D166"
15
- border: "rgba(243, 244, 246, 0.5)"
16
- accent: "#F3F4F6"
17
- primary-soft: "rgba(179, 209, 102, 0.3)"
18
- select-target-hover: "#1F2937"
19
- select-target-bg: "#111827"
20
- selection-highlight: "#D1FAE5"
21
- typography:
22
- base:
23
- fontFamily: '"Noto Sans SC", sans-serif'
24
- usage: 全局唯一字体族,标题/正文/数值统一继承(无字体切换);数值以 font-bold 呈现区分,非独立数字字体
25
- hero-title:
26
- fontSize: 48px
27
- fontWeight: 700
28
- lineHeight: leading-tight
29
- usage: 页面主标题(Tailwind text-5xl font-bold leading-tight)
30
- section-title:
31
- fontSize: 36px
32
- fontWeight: 700
33
- usage: 区块标题、转换器数值显示(Tailwind text-4xl font-bold)
34
- card-title:
35
- fontSize: 24px
36
- fontWeight: 700
37
- usage: 网格卡片标题(Tailwind text-2xl font-bold)
38
- body:
39
- fontSize: 18px
40
- fontWeight: 400
41
- lineHeight: leading-relaxed
42
- usage: 描述段落(Tailwind text-lg font-normal leading-relaxed)
43
- small-label:
44
- fontSize: 14px
45
- fontWeight: 500
46
- usage: 按钮文字、卡片副标题(Tailwind text-sm font-medium)
47
- breadcrumb:
48
- fontSize: 12px
49
- fontWeight: 500
50
- usage: 面包屑导航、底部版权(Tailwind text-[12px] font-medium)
51
- micro-label:
52
- fontSize: 11px
53
- fontWeight: 700
54
- letterSpacing: tracking-widest
55
- upper: true
56
- usage: 表单标签(uppercase+tracking-widest)、页脚关键词(Tailwind text-[11px] font-bold uppercase tracking-widest)
57
- pill-select:
58
- fontSize: 12px
59
- fontWeight: 700
60
- usage: 下拉选择器文字(Tailwind text-xs font-bold)
61
- rounded:
62
- hero: 48px
63
- panel: 40px
64
- icon: 16px
65
- full: 9999px
66
- spacing:
67
- page-top: 48px
68
- hero-margin-top: 64px
69
- hero-padding: "48px~64px"
70
- grid-margin-top: 96px
71
- grid-margin-bottom: 128px
72
- card-padding: 40px
73
- panel-padding: "32px~48px"
74
- grid-gap: 24px
75
- form-group-gap: 48px
76
- footer-padding: 48px
77
- components:
78
- cta-button:
79
- container: flex items-center gap-3 group px-1
80
- text: "font-bold {colors.foreground}"
81
- circle: "w-10 h-10 rounded-full {colors.primary} shadow-sm"
82
- icon: "w-5 h-5 {colors.foreground}"
83
- hover: group-hover:translate-x-1
84
- learn-more-button:
85
- container: flex items-center gap-2 group
86
- text: "text-sm font-medium {colors.foreground}"
87
- circle: "w-8 h-8 rounded-full {colors.accent}"
88
- icon: "w-4 h-4 {colors.foreground}"
89
- hover: group-hover:rotate-45
90
- swap-button:
91
- container: "w-12 h-12 rounded-full {colors.background} border border-gray-100 shadow-sm"
92
- icon: "w-4 h-4 {colors.muted-foreground}"
93
- hover: hover:bg-gray-50 hover:scale-110
94
- category-card:
95
- radius: "{rounded.panel}"
96
- padding: "{spacing.card-padding}"
97
- layout: "h-[320px] flex flex-col justify-between text-left"
98
- default: "bg={colors.card},hover:bg-gray-100/50"
99
- active: "bg={colors.primary}"
100
- icon-container:
101
- default: "w-12 h-12 {rounded.icon} bg-transparent {colors.foreground}"
102
- active: "w-12 h-12 {rounded.icon} bg-white {colors.foreground}"
103
- hover: group-hover:scale-110
104
- title: "见 {typography.card-title}"
105
- subtitle: "{colors.muted-foreground} text-sm mt-1"
106
- arrow-default: "w-10 h-10 rounded-full bg-white shadow-sm,icon={colors.muted-foreground}"
107
- arrow-active: "w-10 h-10 rounded-full bg-white,icon={colors.foreground}"
108
- transition: "all 0.3s cubic-bezier(0.4, 0, 0.2, 1)"
109
- number-input:
110
- style: "text-4xl font-bold {colors.foreground} bg-transparent focus:outline-none w-full"
111
- placeholder: "0"
112
- validation: "仅允许数字和小数点 /^-?\\d*\\.?\\d*$/"
113
- appearance: "-webkit-appearance: none(隐藏浏览器数字控件)"
114
- unit-select:
115
- source: "bg={colors.primary-soft},文字色 text-lime-800(源未提供 hex,见 gaps),text-xs font-bold px-4 py-2 rounded-full,hover:bg-lime-primary/50"
116
- target: "bg={colors.select-target-bg},color=white,text-xs font-bold px-4 py-2 rounded-full,hover:bg={colors.select-target-hover}"
117
- result-display:
118
- style: "text-4xl font-bold {colors.primary-strong} truncate w-full"
119
- anchors:
120
- - id: huge-rounded-cards
121
- type: token
122
- desc: 全站卡片/面板圆角均为超大有机圆角(见 rounded.hero 与 rounded.panel),取代常规小圆角体系
123
- - id: lime-accent-single
124
- type: token
125
- desc: 唯一强调色石灰绿(primary/primary-strong),仅用于激活态、CTA、数值结果,不做大面积铺色
126
- - id: category-card-active-state
127
- type: component
128
- desc: 分类网格卡片默认态暖灰底,激活态整卡切换为强调色底+图标容器反白,是全站唯一的状态切换视觉焦点
129
- - id: minimal-line-icon
130
- type: pattern
131
- desc: 全站图标为极简线性图标,无填充无装饰边框,仅描边呈现
132
- - id: whitespace-heavy-layout
133
- type: pattern
134
- desc: 区块间距远大于常规密度,留白本身是主要视觉语言而非装饰元素
135
- - id: soft-shadow-only
136
- type: token
137
- desc: 全局阴影统一为极轻的 shadow-sm 一档,无重投影、无模糊分级体系
138
- - id: no-decoration-typography
139
- type: pattern
140
- desc: 全站单一无衬线字体族,无手写体/衬线体混排,标题与正文靠字重字号区分而非装饰
141
- gaps:
142
- - 下拉选择器(来源单位)文字色 class 为 text-lime-800,源未提供对应 hex 值
143
- - 源文件未提供字体 @import 语句(仅注明字体族名 'Noto Sans SC, sans-serif'),按规范补充标准 Google Fonts 引入,权重覆盖源文件实际使用的 400/500/700(补充项,请确认)
144
- - 无暗色模式定义
145
- - 无图表/数据看板组件规范(源为单位转换器工具页,不含图表场景)
146
- - 无表单校验错误态样式定义(仅数字输入框的格式校验规则,无错误提示视觉)
147
- - 未指定具体图标库,仅描述为"极简线性图标"(源无实现细节)
148
- exceptions:
149
- - 互换按钮/圆形图标按钮/下拉选择器 Pill 使用 rounded.full(全圆),不遵循卡片类超大圆角(hero/panel)体系,圆形与卡片是两套独立圆角逻辑
150
- - 页脚边框(border-t border-gray-100)使用不透明 gray-100,而非 colors.border 的半透明 rgba 值,是全局唯一使用不透明边框色的位置
151
- - 下拉选择器(来源单位)文字色 text-lime-800 源未给出 hex,未纳入 colors 色板(见 gaps)
152
- ---
153
-
154
- ## Overview
155
-
156
- 有机极简主义界面风:超大留白 + 单一石灰绿强调色 + 极简线性图标构成自然、轻盈、精确、可信任的基调。整体节奏依赖宽松间距营造呼吸感,而非依赖装饰元素;模块类型和页面结构由任务决定。
157
-
158
- ## Colors
159
-
160
- | 角色 | 值 | 用法 |
161
- |-----|-----|-----|
162
- | background | {colors.background} | 页面主背景 |
163
- | card | {colors.card} | 卡片/区块底色,带微黄暖灰调(转换器面板/网格卡片默认态) |
164
- | header | {colors.header} | 主标题文字 |
165
- | foreground | {colors.foreground} | 正文主色、按钮文字、图标默认色 |
166
- | muted-foreground | {colors.muted-foreground} | 辅助说明、副标题、标签文字、非激活箭头图标 |
167
- | primary | {colors.primary} | 石灰绿背景 —— CTA 圆形按钮底色、分类卡片激活态底色 |
168
- | primary-foreground | {colors.primary-foreground} | 压在石灰绿底上的文字/图标色(CTA 圆形按钮图标、激活态卡片文字,同 foreground) |
169
- | primary-strong | {colors.primary-strong} | 石灰绿文字 —— 转换结果数值 |
170
- | border | {colors.border} | 转换器面板极淡分割线 |
171
- | accent | {colors.accent} | 悬停态底色、"了解更多"按钮圆形底 |
172
- | primary-soft | {colors.primary-soft} | 下拉选择器(来源单位)背景,石灰绿低透明度 |
173
- | select-target-hover | {colors.select-target-hover} | 下拉选择器(目标单位)悬停色 |
174
- | select-target-bg | {colors.select-target-bg} | 下拉选择器(目标单位)默认背景,深色 |
175
- | selection-highlight | {colors.selection-highlight} | 文本选中高亮(selection:bg) |
176
-
177
- ## Typography
178
-
179
- 全局样式首行原样写入(HARD REQUIREMENT,禁止替换;补充项——源文件仅注明字体族名 "Noto Sans SC, sans-serif",未提供 @import 语句,此处按 Google Fonts 标准补充,权重覆盖源文件实际使用的 400/500/700,请确认):
180
-
181
- ```css
182
- @import url('https://fonts.googleapis.com/css2?family=Noto+Sans+SC:wght@400;500;700&display=swap');
183
- ```
184
-
185
- 全站单一字体族(见 frontmatter typography.base),无字体切换;数值继承同一字体,仅以 font-bold 呈现区分,非独立数字字体。
186
-
187
- | 层级 | 大小 | 字重 | 行高 | 用途 |
188
- |-----|-----|-----|-----|-----|
189
- | Hero Title | 48px(text-5xl) | 700(font-bold) | leading-tight | 页面主标题 |
190
- | Section Title | 36px(text-4xl) | 700(font-bold) | 默认 | 区块标题、转换器数值显示 |
191
- | Card Title | 24px(text-2xl) | 700(font-bold) | 默认 | 网格卡片标题 |
192
- | Body | 18px(text-lg) | 400(font-normal) | leading-relaxed | 描述段落 |
193
- | Small Label | 14px(text-sm) | 500(font-medium) | 默认 | 按钮文字、卡片副标题 |
194
- | Breadcrumb | 12px(text-[12px]) | 500(font-medium) | 默认 | 面包屑导航、底部版权 |
195
- | Micro Label | 11px(text-[11px]) | 700(font-bold) | 默认 | 表单标签(uppercase+tracking-widest)、页脚关键词 |
196
- | Pill / Select | 12px(text-xs) | 700(font-bold) | 默认 | 下拉选择器文字 |
197
-
198
- ## Layout
199
-
200
- - 整体容器可参考 max-w-7xl(1280px) mx-auto px-6,并按内容密度调整。
201
- - 用超大圆角表面承载主任务或重要内容;卡片数量、列数、主次比例和区块顺序不作预设。
202
- - 间距系统:见 frontmatter spacing(page-top / hero-margin-top / hero-padding / grid-margin-top / grid-margin-bottom / card-padding / panel-padding / grid-gap / form-group-gap / footer-padding)。
203
- - 响应式断点按可读性减少列数和内边距,窄屏将相关内容自然重排,不固定为 2/5+3/5 或三列。
204
-
205
- ## Elevation & Depth
206
-
207
- 全局保持极轻阴影(仅 shadow-sm),强化通透感,无重阴影/无模糊层级体系:
208
-
209
- | 元素 | 阴影值 |
210
- |-----|-----|
211
- | 转换器白色面板 | shadow-sm |
212
- | CTA 圆形按钮 | shadow-sm |
213
- | 非激活卡片箭头按钮 | shadow-sm |
214
- | 互换按钮 | shadow-sm |
215
-
216
- 无 hover 阴影升级,深度感完全依赖留白与超大圆角,不依赖阴影分级。
217
-
218
- ## Shapes
219
-
220
- - 圆角体系:Hero 卡片 {rounded.hero},转换器面板/网格卡片 {rounded.panel},图标容器 {rounded.icon},圆形按钮/Pill {rounded.full}。全站无常规小圆角(4-8px)卡片,圆角只有"超大"与"全圆"两档。
221
- - 边框:转换器面板 border {colors.border};输入/输出下划线 border-b border-gray-100;互换按钮 border border-gray-100;页脚顶部 border-t border-gray-100。全局边框极淡(gray-100 或 border token 半透明),不用深色描边。
222
- - 图标:极简线性描边图标,无填充/无装饰边框(源未指定具体图标库,见 gaps)。
223
- - 动效:卡片切换 transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);悬停微交互 scale-110 / translate-x-1 / rotate-45,幅度小、无弹跳。
224
-
225
- ## Components
226
-
227
- 详见 frontmatter components(cta-button / learn-more-button / swap-button / category-card / number-input / unit-select / result-display)。补充说明:
228
-
229
- - CTA 按钮悬停 group-hover:translate-x-1,圆形箭头底色即 primary。
230
- - "了解更多"按钮悬停 group-hover:rotate-45,圆形底色为中性灰 accent,与 CTA 的强调色圆形形成主/次按钮区分。
231
- - Category Card 默认态与激活态是本风格唯一的强调色触发点:默认态用 card 暖灰,激活态整卡切换为 primary,图标容器同步由透明切换为白底。
232
- - 下拉选择器(来源单位)用 primary-soft(石灰绿 30% 透明度)底,与(目标单位)深色 select-target-bg 底形成"来源=浅绿 / 目标=深灰"的语义区分。
233
-
234
- ## Do's and Don'ts
235
-
236
- - 强调色(primary / primary-strong)只用于激活态、CTA、数值结果,不做大面积铺色。
237
- - 卡片/面板圆角保持超大(40px 以上),避免与常规小圆角混用打破"有机"气质。
238
- - 阴影统一用 shadow-sm 级别,不引入更重的投影分级。
239
- - 页面留白节奏(mt-24 / mb-32 等大间距)是气质核心,不为塞入更多内容压缩间距。
240
-
241
- ## Hard Rules
242
-
243
- - 全局唯一强调色为石灰绿(primary / primary-strong),不得引入第二种强调色。
244
- - 卡片类圆角(Hero / 面板 / 网格卡片)必须使用 rounded.hero 或 rounded.panel(40px 以上),不得使用常规小圆角。
245
- - 阴影统一 shadow-sm,禁止使用更重的投影或模糊阴影层级。
246
- - 主字体族全局统一为 Noto Sans SC,不得混入手写体/衬线体等其他字体气质。
247
- - @import 字体加载行必须原样保留在全局样式首行,禁止替换或省略(HARD REQUIREMENT)。
248
-
249
- ## Exceptions
250
-
251
- - 互换按钮/圆形图标按钮/下拉选择器 Pill 使用 rounded.full(全圆),不遵循卡片类超大圆角(hero / panel)体系,圆形与卡片是两套独立圆角逻辑。
252
- - 页脚边框(border-t border-gray-100)使用不透明 gray-100,而非 colors.border 的半透明 rgba 值,是全局唯一使用不透明边框色的位置。
253
- - 下拉选择器(来源单位)文字色 text-lime-800 源未给出 hex,未纳入 colors 色板(见 gaps)。
@@ -1,234 +0,0 @@
1
- ---
2
- version: alpha
3
- name: pm-spec
4
- name_zh: 规格蓝本
5
- description: >-
6
- 单页产品规格 / PRD 风格:冷灰蓝纸面(background #f5f7fa / card 白)承载浓密文档流,
7
- 靛紫强调色 #4a36e3 仅点缀状态胶囊、引用块、指标目标与里程碑徽章;正文用 system-serif
8
- Charter 起标题、系统无衬线走正文、等宽体承担全部 uppercase 微标签(面包屑 / 表头 /
9
- 徽章 / 页脚)。无阴影,层级只靠 1px 细线 (#e2e6ee) + 10px 圆角卡片。信息块以 grid
10
- 可在适合长文档精读的场景中使用纸面内容流与局部分栏。它定义文档气质,不强制所有主题采用同一种页面骨架。
11
- colors:
12
- background: "#f5f7fa"
13
- card: "#ffffff"
14
- foreground: "#0e1322"
15
- muted-foreground: "#5a647a"
16
- border: "#e2e6ee"
17
- line-strong: "#c8cfdb"
18
- primary: "#4a36e3"
19
- primary-foreground: "#ffffff"
20
- accent: "#ece8ff"
21
- warn: "#b8741a"
22
- positive: "#1f8a5a"
23
- th-bg: "#f8fafd"
24
- primary-grad-end: "#8473ff"
25
- typography:
26
- h1:
27
- fontFamily: "'Charter', Georgia, 'PingFang SC', 'Noto Serif SC', serif"
28
- fontSize: "42px"
29
- lineHeight: "1.06"
30
- letterSpacing: "-0.015em"
31
- fontWeight: "700"
32
- h2:
33
- fontFamily: "'Charter', Georgia, 'PingFang SC', 'Noto Serif SC', serif"
34
- fontSize: "24px"
35
- letterSpacing: "-0.005em"
36
- h2-small:
37
- fontFamily: "-apple-system, BlinkMacSystemFont, 'Segoe UI', Inter, 'PingFang SC', sans-serif"
38
- fontSize: "13px"
39
- fontWeight: "400"
40
- color: "{colors.muted-foreground}"
41
- body:
42
- fontFamily: "-apple-system, BlinkMacSystemFont, 'Segoe UI', Inter, 'PingFang SC', sans-serif"
43
- fontSize: "14.5px"
44
- lineHeight: "1.6"
45
- summary:
46
- fontSize: "17px"
47
- color: "{colors.muted-foreground}"
48
- quote:
49
- fontFamily: "'Charter', Georgia, 'PingFang SC', 'Noto Serif SC', serif"
50
- fontSize: "17px"
51
- lineHeight: "1.5"
52
- label:
53
- fontFamily: "ui-monospace, SFMono-Regular, Menlo, monospace"
54
- fontSize: "10.5px"
55
- letterSpacing: "0.06em"
56
- textTransform: "uppercase"
57
- color: "{colors.muted-foreground}"
58
- crumb:
59
- fontFamily: "ui-monospace, SFMono-Regular, Menlo, monospace"
60
- fontSize: "11.5px"
61
- letterSpacing: "0.08em"
62
- textTransform: "uppercase"
63
- color: "{colors.muted-foreground}"
64
- rounded:
65
- pill: "999px"
66
- card: "10px"
67
- quote: "6px"
68
- button: "8px"
69
- circle: "50%"
70
- spacing:
71
- page-max: "1080px"
72
- page-pad: "0 32px 64px"
73
- section-gap: "40px"
74
- block-gap: "14px"
75
- card-pad: "22px 24px"
76
- meta-gap: "32px"
77
- components:
78
- header-top:
79
- borderBottom: "1px solid {colors.border}"
80
- padding: "16px 0"
81
- description: "可选文档页头:面包屑、状态胶囊与 Owner/Updated/Reviewers 等 meta;仅在内容语义需要时使用"
82
- pill-draft:
83
- background: "{colors.accent}"
84
- color: "{colors.primary}"
85
- borderRadius: "{rounded.pill}"
86
- fontFamily: "ui-monospace, SFMono-Regular, Menlo, monospace"
87
- padding: "4px 10px"
88
- panel:
89
- background: "{colors.card}"
90
- border: "1px solid {colors.border}"
91
- borderRadius: "{rounded.card}"
92
- padding: "{spacing.card-pad}"
93
- quote-block:
94
- background: "{colors.accent}"
95
- borderLeft: "3px solid {colors.primary}"
96
- borderRadius: "{rounded.quote}"
97
- padding: "22px 24px"
98
- metric-table:
99
- background: "{colors.card}"
100
- border: "1px solid {colors.border}"
101
- borderRadius: "{rounded.card}"
102
- description: "th 用 label 排版 + 背景 {colors.th-bg};行分隔 1px {colors.border}"
103
- target-cell:
104
- fontFamily: "ui-monospace, SFMono-Regular, Menlo, monospace"
105
- color: "{colors.primary}"
106
- fontWeight: "600"
107
- story-num:
108
- background: "{colors.accent}"
109
- color: "{colors.primary}"
110
- borderRadius: "{rounded.circle}"
111
- milestone-badge:
112
- background: "{colors.accent}"
113
- color: "{colors.primary}"
114
- borderRadius: "{rounded.pill}"
115
- avatar:
116
- background: "linear-gradient(135deg, {colors.primary}, {colors.primary-grad-end})"
117
- color: "{colors.primary-foreground}"
118
- borderRadius: "{rounded.circle}"
119
- anchors:
120
- - id: mono-uppercase-label
121
- type: token
122
- desc: 所有微标签(面包屑/表头/徽章/胶囊/页脚)走等宽体 + 全大写 + 字距,见 typography.label
123
- - id: accent-frugal
124
- type: pattern
125
- desc: 靛紫强调色(见 colors.primary)克制使用——只落状态胶囊、引用左边框、指标目标、里程碑徽章
126
- - id: borderless-cards
127
- type: pattern
128
- desc: 无阴影,卡片层级仅靠细线(colors.border)+ card 圆角,纸面浮在冷灰底上
129
- - id: serif-headings
130
- type: token
131
- desc: 标题用 system-serif Charter(typography.h1/h2),正文与标签走无衬线/等宽,三字体分工
132
- - id: pill-status
133
- type: component
134
- desc: 右上状态胶囊(Draft/Review/Approved)圆角全径 + 前置圆点,accent 底
135
- - id: grid-blocks
136
- type: pattern
137
- desc: 对比型信息块可使用局部 grid 分栏,比例与列数按内容决定,窄屏自然收敛
138
- - id: single-column-flow
139
- type: pattern
140
- desc: 长文档场景可采用纸面内容流与 spacing.page-max 作为阅读宽度参考,不限制其他应用形态
141
- gaps:
142
- - "源仅 Draft 一种状态胶囊配色(accent/primary);Review/Approved 的语义色未定义"
143
- - "warn (#b8741a) 与 positive (#1f8a5a) 在示例中作为 CSS 变量声明但正文未实际着色,用途待补"
144
- - "暗色模式未定义;仅浅色纸面"
145
- - "补充项:源字体全为 system/local(Charter/Georgia/Inter),无 webfont @import;下方为 Inter 兜底 @import,Charter 缺失时退 Georgia 系统衬线"
146
- - "补充项:源无 CJK 字形,已在 display/body fontFamily 末尾注入 PingFang SC 等系统兜底(非源值)"
147
- exceptions:
148
- - primary 强调色允许在同屏出现多次(状态胶囊 + 指标目标 + 里程碑徽章 + 引用边框),因均属"结构性点缀"而非装饰
149
- ---
150
-
151
- ## Overview
152
-
153
- 把 PRD、规格说明与其他长文档型内容当作一页可精读的印刷文档来排:冷灰蓝底 `#f5f7fa` 上浮白色纸面卡片,靛紫 `#4a36e3` 作唯一强调色且极度克制。气质是"内部工具里的严肃文档"——衬线标题给权威感,等宽体承担所有元数据微标签,正文密而不挤(14.5px / 行高 1.6)。全程无阴影,深度只由 1px 细线与 10px 圆角表达。
154
-
155
- 文档头条、状态胶囊、Owner / Updated / Reviewers 元信息,以及 Problem / Goals / Metrics / Milestones 等都是 PRD 场景的组件示例。使用时只选择与输入内容匹配的部分;非 PRD 应保留原有任务结构,不为套风格改写成固定文档章节。
156
-
157
- ## Colors
158
-
159
- - **底色 paper flow**:页面底 `#f5f7fa`,所有内容卡片纸面 `#ffffff`,形成"纸浮在灰底上"的文档层。
160
- - **文字**:主文本 foreground `#0e1322`;次要/元信息 muted-foreground `#5a647a`。
161
- - **描边**:常规分隔 border `#e2e6ee`(卡片边框、行分隔、区块下边线);强分隔 line-strong `#c8cfdb`(如禁用态 tick 底)。
162
- - **强调 primary `#4a36e3`**:唯一主强调色,用于状态胶囊文字、引用左边框、指标目标值、里程碑徽章、故事序号、用户故事中的加粗角色词。配套浅底 accent `#ece8ff` 做胶囊/徽章/序号圆的填充。
163
- - **语义色**:positive `#1f8a5a`(达成态 tick "✓")、warn `#b8741a`(预警,示例中声明未着色)。
164
- - **辅助**:表头背景 th-bg `#f8fafd`;头像渐变 `linear-gradient(135deg, #4a36e3, #8473ff)`(primary → primary-grad-end)。
165
-
166
- ## Typography
167
-
168
- 三字体分工,各司其职,不得混用:
169
- - **衬线(display)** `'Charter', Georgia, serif`:仅标题——h1 42px/行高 1.06/字距 -0.015em/700、h2 24px/字距 -0.005em、引用正文 17px/行高 1.5、目标列表小标题、里程碑标题、goal-list h3。非 PRD 内容改写出的分节标题同样必须走这一衬线 h2,不得因为内容变了就换回无衬线。
170
- - **无衬线(body)** `-apple-system, BlinkMacSystemFont, 'Segoe UI', Inter, sans-serif`:正文 14.5px/行高 1.6、摘要 17px(muted-foreground)、h2 副标题 13px、故事与问题文本。
171
- - **等宽(mono)** `ui-monospace, SFMono-Regular, Menlo, monospace`:全部 uppercase 微标签——面包屑 11.5px/字距 0.08em、状态胶囊 11px/0.06em、表头 10.5px/0.06em、meta-row 标签 10.5px、里程碑徽章 10.5px、里程碑工期 11px、目标数值单元格、页脚 11.5px。
172
-
173
- 字体加载(消费侧指令,原样写入全局样式首行,**禁止用 `<link>` 标签代替**):
174
- ```
175
- @import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap');
176
- ```
177
- **HARD REQUIREMENT:字体栈与角色分工原样使用,禁止替换;上面这行 `@import` 必须以文本形式出现在全局 CSS 文件(或 `<style>` 标签)首行。禁止改写成 `<link rel="stylesheet" href="https://fonts.googleapis.com/css2?...">`——两者渲染效果相近,但后者不满足"原样写入 @import"的硬性要求,判为违规。** Charter / Georgia 为系统衬线,无需 webfont;CJK 内容退 PingFang SC 等系统兜底。
178
-
179
- ## Layout
180
-
181
- - **阅读容器**:长文内容可参考 `max-width 1080px`、上下 `margin 28px auto` 和 `page-pad`;工具、工作台或数据应用可按任务需要使用更宽或不同的信息架构。
182
- - **内容组织**:保留输入内容的语义结构。衬线标题、摘要、指标卡、图表和表格面板可按需组合,不要求每节同构。
183
- - **区块间距**:`section` 间 `margin-top 40px`;块内 grid 间距统一 `14px`(block-gap)。
184
- - **头部**:文档场景可使用 flex 两端对齐、`padding 16px 0` + 底部 1px border;应用导航形态由实际信息架构决定。
185
- - **grid 分栏**:对比信息、指标和里程碑可使用局部网格,比例与列数按内容量决定,不继承 PRD 示例值。
186
- - **元信息条**:`padding 16px 22px`,列间距 `32px`(meta-gap),标签在上(mono 小字)值在下。
187
- - **响应式**:窄屏减少局部网格列数、缩小标题并维持阅读顺序。
188
-
189
- ## Elevation & Depth
190
-
191
- **零阴影体系。** 所有卡片(panel/table/story/step/question/meta-row)深度仅由 `1px solid #e2e6ee` 边框 + `10px` 圆角 + 纸白背景在灰底上表达。引用块用 3px primary 左边框作强调而非投影。层级靠"纸面 vs 底色"的明度差,不靠 z 轴。**hover/focus/active 等交互态同样不得引入投影**——按钮、输入框、可点击卡片的状态反馈一律改用边框颜色变化(如切到 `{colors.primary}` 或 `{colors.line-strong}`)或背景色微调,不加哪怕是 `0 1px 2px` 的轻投影。
192
-
193
- ## Shapes
194
-
195
- - **卡片圆角** `10px`(card):面板、表格、故事、里程碑、问题、元信息条统一。
196
- - **引用块** `6px`(quote)。
197
- - **按钮/顶部动作胶囊** `8px`(button)。
198
- - **全径胶囊** `999px`(pill):状态胶囊、里程碑徽章。
199
- - **圆形** `50%`(circle):目标/非目标 tick、故事序号、头像、状态胶囊前置圆点。
200
- - 强调面积小、以边框和圆角定义形状,不用大色块。
201
-
202
- ## Components
203
-
204
- - **状态胶囊 pill**:`accent` 底 + `primary` 字,全径圆角,前置 6px 圆点,mono uppercase 11px。
205
- - **面板 panel / 引用 quote-block**:见 frontmatter components——panel 纸白 + 1px border;quote-block accent 底 + 3px primary 左边框,正文用衬线 17px。
206
- - **目标/非目标块**:两列 goal-list,小标题带圆形 tick——达成 `positive` 底白勾,排除 `line-strong` 底 muted-foreground 叉。
207
- - **指标表 metric-table**:th 用 label 排版 + `th-bg` 背景;目标列 target-cell 走 mono + primary + 600;行间 1px border 分隔,末行无线。
208
- - **用户故事 story**:左侧圆形序号(accent 底 primary 字 mono 600),右侧文本中角色词用 primary 加粗。
209
- - **里程碑 step**:顶部 pill 徽章(M1·日期)+ 衬线标题 + mono 工期 + 要点列表,4 列时间线。
210
- - **指派 chip / avatar**:问题右侧 muted-foreground 小字 + 圆形头像(primary→primary-grad-end 渐变,primary-foreground 白字缩写)。
211
- - **图表**:源无图表;如需数据可视化,序列色以 primary `#4a36e3` 起、primary-grad-end `#8473ff` 次,容器沿用 panel(纸白 + 1px border + card 圆角),图表本身不加投影、不脱离 panel 容器单独铺满一屏。
212
-
213
- ## Hard Rules
214
-
215
- - **必须**保持三字体严格分工:衬线只用于标题/引用,等宽只用于 uppercase 微标签,正文无衬线。禁止用衬线排正文或用无衬线排标签。
216
- - **禁止**使用 box-shadow / drop-shadow,**含 hover/focus/active 等交互态和表单控件**;所有层级、所有状态只用 1px `{colors.border}` 边框 + `{rounded.card}` 圆角表达,交互反馈改用边框变色或背景色变化,不得加任何投影(哪怕是 `0 1px 2px` 的轻投影)。
217
- - **禁止**大面积铺 primary 色块;`{colors.primary}` 仅用于胶囊/徽章/序号/目标值/引用边框/角色词等结构性点缀。
218
- - **必须**让每个内容卡片坐在 `{colors.card}` 纸面上、页面底为 `{colors.background}`,不得反转。
219
- - 所有 uppercase 微标签**必须**带字距(≥0.06em)且用 `{typography.label}` 字体族。
220
- - **禁止**替换字体栈与 @import(见 Typography 硬指令);**禁止**用 `<link rel="stylesheet" href="https://fonts.googleapis.com/...">` 标签加载字体来代替 @import——一律用 `<style>` 内 `@import url(...)` 或独立 CSS 文件首行的裸 `@import` 语句。
221
-
222
- ## Exceptions
223
-
224
- - primary 强调色允许在同一屏出现多处(状态胶囊 + 指标目标 + 里程碑徽章 + 引用左边框 + 故事序号),因均属"结构性点缀"而非装饰性铺色,不违反克制原则。
225
- - warn `#b8741a` 与 positive `#1f8a5a` 作为语义储备色允许在需要"预警/达成"语义时启用(示例中仅 positive 用于 tick)。
226
-
227
- ## Do's and Don'ts
228
-
229
- - **Do** 把长文档型内容(PRD 或其他)当作一页可精读文档排——密而有序、以细线分区、以衬线标题立权威。
230
- - **Do** 用 grid 分栏承载对比信息(问题/引用、目标/非目标、多相里程碑,或改写后的指标卡/图表分节)。
231
- - **Do** 用等宽小标签给每个数据点加"文档感"元信息(工期、日期、负责人)。
232
- - **Don't** 加投影、渐变大色块或多彩强调;克制是本风格的核心气质。
233
- - **Don't** 为复刻 PRD 示例改写用户的信息架构或补充无关章节。
234
-