@topmindspace/tms-skills 2.0.0 → 2.0.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.
Files changed (99) hide show
  1. package/CHANGELOG.md +139 -123
  2. package/README.md +126 -103
  3. package/bin/tms-skills.js +160 -160
  4. package/package.json +48 -48
  5. package/top-ppt-html/README.md +254 -253
  6. package/top-ppt-html/SKILL.md +111 -111
  7. package/top-ppt-html/assets/examples/2026-09-09-architecture-graphite-dark.html +3873 -3926
  8. package/top-ppt-html/assets/examples/2026-09-09-architecture-graphite-dark.model.json +167 -167
  9. package/top-ppt-html/assets/examples/2026-09-09-architecture-spectrum.html +3873 -3926
  10. package/top-ppt-html/assets/examples/2026-09-09-architecture-spectrum.model.json +167 -167
  11. package/top-ppt-html/assets/examples/2026-09-09-presentation-apple-mono.html +4272 -4325
  12. package/top-ppt-html/assets/examples/2026-09-09-presentation-apple-mono.model.json +320 -320
  13. package/top-ppt-html/assets/examples/2026-09-09-presentation-brand-red.html +4272 -4325
  14. package/top-ppt-html/assets/examples/2026-09-09-presentation-brand-red.model.json +320 -320
  15. package/top-ppt-html/assets/examples/2026-09-09-presentation-business-blue.html +4272 -4325
  16. package/top-ppt-html/assets/examples/2026-09-09-presentation-business-blue.model.json +320 -320
  17. package/top-ppt-html/assets/examples/2026-09-09-research-deep-teal.html +5474 -5527
  18. package/top-ppt-html/assets/examples/2026-09-09-research-deep-teal.model.json +913 -913
  19. package/top-ppt-html/assets/examples/2026-09-09-research-indigo-violet.html +5474 -5527
  20. package/top-ppt-html/assets/examples/2026-09-09-research-indigo-violet.model.json +913 -913
  21. package/top-ppt-html/assets/examples/2026-09-09-research-mckinsey.html +5474 -5527
  22. package/top-ppt-html/assets/examples/2026-09-09-research-mckinsey.model.json +913 -913
  23. package/top-ppt-html/assets/examples/2026-09-09-research-warm-sand.html +5474 -5527
  24. package/top-ppt-html/assets/examples/2026-09-09-research-warm-sand.model.json +913 -913
  25. package/top-ppt-html/assets/pptx-export.js +1944 -1944
  26. package/top-ppt-html/assets/style-gallery.html +559 -589
  27. package/top-ppt-html/assets/templates/architecture.html +3675 -3728
  28. package/top-ppt-html/assets/templates/engine.css +787 -840
  29. package/top-ppt-html/assets/templates/presentation.html +3685 -3738
  30. package/top-ppt-html/assets/templates/research.html +3964 -4017
  31. package/top-ppt-html/assets/templates/ui.js +520 -520
  32. package/top-ppt-html/assets/theme-overview-architecture.png +0 -0
  33. package/top-ppt-html/assets/theme-overview-presentation.png +0 -0
  34. package/top-ppt-html/assets/theme-overview-research.png +0 -0
  35. package/top-ppt-html/assets/theme-overview.png +0 -0
  36. package/top-ppt-html/evals/prompts.csv +15 -15
  37. package/top-ppt-html/evals/rubric.schema.json +25 -25
  38. package/top-ppt-html/evals/run_evals.py +220 -220
  39. package/top-ppt-html/evals/trace.example.json +16 -16
  40. package/top-ppt-html/package-lock.json +175 -0
  41. package/top-ppt-html/package.json +30 -35
  42. package/top-ppt-html/references/charts-basic.md +624 -624
  43. package/top-ppt-html/references/charts-discipline.md +108 -108
  44. package/top-ppt-html/references/charts-extended.md +482 -482
  45. package/top-ppt-html/references/charts.md +28 -28
  46. package/top-ppt-html/references/components-atoms.md +624 -624
  47. package/top-ppt-html/references/components.md +30 -30
  48. package/top-ppt-html/references/content-rules.md +490 -490
  49. package/top-ppt-html/references/design-system-engine.md +235 -235
  50. package/top-ppt-html/references/design-system.md +471 -478
  51. package/top-ppt-html/references/failure-modes.md +214 -214
  52. package/top-ppt-html/references/high-fidelity.md +127 -127
  53. package/top-ppt-html/references/icons.md +397 -397
  54. package/top-ppt-html/references/industry-benchmark.md +105 -105
  55. package/top-ppt-html/references/infographics-stats.md +308 -308
  56. package/top-ppt-html/references/infographics-structure.md +226 -226
  57. package/top-ppt-html/references/infographics.md +43 -43
  58. package/top-ppt-html/references/layout-grammar.md +315 -315
  59. package/top-ppt-html/references/layouts-architecture.md +108 -108
  60. package/top-ppt-html/references/layouts-combo.md +600 -600
  61. package/top-ppt-html/references/layouts-research.md +160 -160
  62. package/top-ppt-html/references/modes.md +254 -254
  63. package/top-ppt-html/references/outline-design.md +275 -275
  64. package/top-ppt-html/references/playbook.md +266 -266
  65. package/top-ppt-html/references/pptx-export.md +209 -209
  66. package/top-ppt-html/references/reform-plan.md +252 -252
  67. package/top-ppt-html/references/styles.md +336 -370
  68. package/top-ppt-html/references/tech-design.md +138 -138
  69. package/top-ppt-html/scripts/audit_css.py +109 -109
  70. package/top-ppt-html/scripts/audit_docs.py +176 -176
  71. package/top-ppt-html/scripts/audit_skill.py +220 -220
  72. package/top-ppt-html/scripts/audit_styles.py +293 -351
  73. package/top-ppt-html/scripts/build_examples.py +2276 -2276
  74. package/top-ppt-html/scripts/build_pptx.js +2380 -2380
  75. package/top-ppt-html/scripts/capture_theme_overview.js +78 -78
  76. package/top-ppt-html/scripts/checks_html.py +127 -127
  77. package/top-ppt-html/scripts/cross_verify.py +294 -294
  78. package/top-ppt-html/scripts/env_probe.py +158 -158
  79. package/top-ppt-html/scripts/extract_model.py +210 -210
  80. package/top-ppt-html/scripts/extract_snippet.py +374 -374
  81. package/top-ppt-html/scripts/gen_channel_a.js +214 -214
  82. package/top-ppt-html/scripts/layout-constants.json +3309 -3377
  83. package/top-ppt-html/scripts/layout_slots.json +830 -830
  84. package/top-ppt-html/scripts/lib_layout_regions.js +412 -412
  85. package/top-ppt-html/scripts/measure_height.py +178 -178
  86. package/top-ppt-html/scripts/model-schema.json +547 -547
  87. package/top-ppt-html/scripts/negative_tests.py +307 -307
  88. package/top-ppt-html/scripts/package_skill.py +291 -291
  89. package/top-ppt-html/scripts/prepare_images.py +341 -341
  90. package/top-ppt-html/scripts/probe_image_export.py +188 -188
  91. package/top-ppt-html/scripts/quality_gate.py +301 -301
  92. package/top-ppt-html/scripts/regression.py +307 -308
  93. package/top-ppt-html/scripts/render_compare.py +275 -275
  94. package/top-ppt-html/scripts/render_from_model.py +698 -698
  95. package/top-ppt-html/scripts/scaffold_report.py +1054 -1054
  96. package/top-ppt-html/scripts/section-file-map.json +104 -104
  97. package/top-ppt-html/scripts/sync_runtime.py +662 -662
  98. package/top-ppt-html/scripts/validate_pptx.py +1510 -1510
  99. package/top-ppt-html/scripts/validate_report.py +1456 -1456
@@ -1,397 +1,397 @@
1
- # 图标库(内联 SVG · currentColor · 随主题变色)
2
-
3
- 全部 24×24、描边风格(stroke 1.8,圆角线帽),用 `currentColor`,自动继承所在元素颜色。
4
-
5
- > **PPTX 通道**:内联 SVG 图标不跨通道导出。PPTX 侧卡片头用 **accent 小方块路标**(与 HTML `.card__ico` 的 accent 底同语义);要点列表用 accent 实心方块标记(已有)。**不要在模型里期待图标 ID 进 PPT**——路标语义靠 accent 色块 + 标题对齐完成。若某页必须视觉区分类型,用标题前缀(如「数据 ·」「风险 ·」)而不是图标。
6
-
7
- ## 使用准则(克制而合理 · 先读再用)
8
-
9
- **图标是信息的路标,不是装饰。** 该用的地方用好,不该用的地方一个都别放。
10
-
11
- ### 哪里用(四个正当位置)
12
-
13
- | 位置 | 做法 | 效果 |
14
- |------|------|------|
15
- | **卡片头** `.card__ico` | 每张要点卡一个小图标 | 卡片类型一眼可辨,最推荐 |
16
- | **关键列表** `.ul--ico` | 每行行首一个小图标(见 `components.md` 第 7 节) | 清单可扫读,适合 3–5 条的关键列表 |
17
- | **指标卡** `.metric__ico` | 指标卡右上角小图标 | 指标类别区分(规模/效率/质量) |
18
- | **提示条** `.note__ico` | 把 `i` 字母换成真图标 | 结论/警告/信息三类提示 |
19
-
20
- ### 哪里不用
21
-
22
- - **Agenda 大纲**——大编号已是路标,再加图标是噪音
23
- - **表格单元格**——表格靠文字对齐取胜,图标破坏栅格
24
- - **图表内部**——数据系列用色不用图标
25
- - **正文行内**——打断阅读流(引用标记除外)
26
-
27
- ### 密度与一致性
28
-
29
- - **每屏 3–8 个图标**;一屏全是图标 = 新噪音;连续两三屏零图标 = 单调,给要点卡补一个。
30
- - **克制 ≠ 不用**:全文零图标的报告会"没有路标",可扫读性差——长报告(≥6 页)至少要点卡(`.card__ico`)或关键列表(`.ul--ico`)有一处图标(校验器 WARN 提醒)。**目标:够用即止,不多不少。**
31
- - **research 模式例外**:图标密度减半(每屏 2–4 个)——咨询版式以 Exhibit 图表与论证结构为视觉主角,图标更克制;`.exhibit` 图表框内不放图标。
32
- - **architecture 模式例外**:主图内不放图标(节点短标签已足够);图标只允许出现在图例区旁(≤2 个)。
33
- - **一套报告只用描边风**(本库全部是),stroke-width 统一 1.8,不混用填充风。
34
- - **尺寸**:`.card__ico` 内 18px;`.ul--ico` 内 17px;`.metric__ico` 20px;行内特殊场景 `width:1em`。
35
- - **对齐**:图标与标题垂直居中(组件类已处理);自定义时 `display:grid;place-items:center`。
36
-
37
- ### 颜色
38
-
39
- - 不改 `stroke="currentColor"`——颜色由容器决定(`.card__ico` 自动是 accent 底 + accent 图标)。
40
- - 深色收尾章里容器是半透明亮底,图标容器加 `color:var(--text-inv)`。
41
- - spectrum 风格也不给图标单独上色——**彩色只属于数据系列**。
42
-
43
- ---
44
-
45
- ## 数据与图表
46
-
47
- **数据库**
48
- ```html
49
- <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><ellipse cx="12" cy="5" rx="9" ry="3"/><path d="M3 5v14c0 1.66 4.03 3 9 3s9-1.34 9-3V5"/><path d="M3 12c0 1.66 4.03 3 9 3s9-1.34 9-3"/></svg>
50
- ```
51
-
52
- **柱状图**
53
- ```html
54
- <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M3 3v18h18"/><rect x="7" y="12" width="3" height="6" rx="1"/><rect x="12" y="8" width="3" height="10" rx="1"/><rect x="17" y="4" width="3" height="14" rx="1"/></svg>
55
- ```
56
-
57
- **趋势/折线**
58
- ```html
59
- <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M3 3v18h18"/><path d="M7 14l4-4 3 3 5-6"/><path d="M15 7h4v4"/></svg>
60
- ```
61
-
62
- **环形/占比**
63
- ```html
64
- <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M21.2 15.9A10 10 0 1 1 8 2.8"/><path d="M22 12A10 10 0 0 0 12 2v10z"/></svg>
65
- ```
66
-
67
- **表格/网格**
68
- ```html
69
- <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="3" width="18" height="18" rx="2"/><path d="M3 9h18M3 15h18M9 3v18M15 3v18"/></svg>
70
- ```
71
-
72
- **仪表盘/效率**
73
- ```html
74
- <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M12 15l3.5-5.5"/><path d="M20.2 15a8.5 8.5 0 1 0-16.4 0"/></svg>
75
- ```
76
-
77
- **漏斗/转化**
78
- ```html
79
- <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M4 4h16l-6 8v6l-4 2v-8L4 4z"/></svg>
80
- ```
81
-
82
- ---
83
-
84
- ## 增长与经营
85
-
86
- **增长/上升**
87
- ```html
88
- <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M22 7l-8.5 8.5-5-5L2 17"/><path d="M16 7h6v6"/></svg>
89
- ```
90
-
91
- **下降/回落**
92
- ```html
93
- <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M22 17l-8.5-8.5-5 5L2 7"/><path d="M16 17h6v-6"/></svg>
94
- ```
95
-
96
- **成本/财务**
97
- ```html
98
- <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><circle cx="8" cy="8" r="6"/><path d="M18.09 10.37A6 6 0 1 1 10.34 18"/><path d="M7 6h1v4"/><path d="m16.71 13.88.7.71-2.82 2.82"/></svg>
99
- ```
100
-
101
- **目标/靶心**
102
- ```html
103
- <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"/><circle cx="12" cy="12" r="6"/><circle cx="12" cy="12" r="2"/></svg>
104
- ```
105
-
106
- **奖章/成果**
107
- ```html
108
- <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="8" r="6"/><path d="M15.5 13 17 22l-5-3-5 3 1.5-9"/></svg>
109
- ```
110
-
111
- **旗帜/里程碑**
112
- ```html
113
- <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M4 15s1-1 4-1 5 2 8 2 4-1 4-1V3s-1 1-4 1-5-2-8-2-4 1-4 1z"/><path d="M4 22v-7"/></svg>
114
- ```
115
-
116
- **火箭/启动**
117
- ```html
118
- <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M4.5 16.5c-1.5 1.26-2 5-2 5s3.74-.5 5-2c.71-.84.7-2.13-.09-2.91a2.18 2.18 0 0 0-2.91-.09z"/><path d="M12 15l-3-3a22 22 0 0 1 2-3.95A12.88 12.88 0 0 1 22 2c0 2.72-.78 7.5-6 11a22.35 22.35 0 0 1-4 2z"/><path d="M9 12H4s.55-3.03 2-4c1.62-1.08 5 0 5 0"/><path d="M12 15v5s3.03-.55 4-2c1.08-1.62 0-5 0-5"/></svg>
119
- ```
120
-
121
- ---
122
-
123
- ## 治理与安全
124
-
125
- **盾牌/安全**
126
- ```html
127
- <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"/><path d="M9 12l2 2 4-4"/></svg>
128
- ```
129
-
130
- **锁/权限**
131
- ```html
132
- <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="11" width="18" height="10" rx="2"/><path d="M7 11V7a5 5 0 0 1 10 0v4"/></svg>
133
- ```
134
-
135
- **钥匙/密钥**
136
- ```html
137
- <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><circle cx="7.5" cy="15.5" r="5.5"/><path d="m21 2-9.6 9.6"/><path d="m15.5 7.5 3 3L22 7l-3-3"/></svg>
138
- ```
139
-
140
- **齿轮/引擎**
141
- ```html
142
- <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="3"/><path d="M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 1 1-2.83 2.83l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 1 1-4 0v-.09a1.65 1.65 0 0 0-1-1.51 1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 1 1-2.83-2.83l.06-.06a1.65 1.65 0 0 0 .33-1.82 1.65 1.65 0 0 0-1.51-1H3a2 2 0 1 1 0-4h.09a1.65 1.65 0 0 0 1.51-1 1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 1 1 2.83-2.83l.06.06a1.65 1.65 0 0 0 1.82.33h.01a1.65 1.65 0 0 0 1-1.51V3a2 2 0 1 1 4 0v.09a1.65 1.65 0 0 0 1 1.51h.01a1.65 1.65 0 0 0 1.82-.33l.06.06a2 2 0 1 1 2.83 2.83l-.06.06a1.65 1.65 0 0 0-.33 1.82v.01a1.65 1.65 0 0 0 1.51 1H21a2 2 0 1 1 0 4h-.09a1.65 1.65 0 0 0-1.51 1z"/></svg>
143
- ```
144
-
145
- **天平/合规**
146
- ```html
147
- <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M12 3v18"/><path d="M5 21h14"/><path d="M7 7l-4 7a4.5 4.5 0 0 0 8 0L7 7z"/><path d="M17 7l-4 7a4.5 4.5 0 0 0 8 0l-4-7z"/><path d="M5 7h14"/></svg>
148
- ```
149
-
150
- **链接/血缘**
151
- ```html
152
- <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"/><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"/></svg>
153
- ```
154
-
155
- **检查/对勾**
156
- ```html
157
- <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"/><path d="M8 12.5l2.5 2.5L16 9.5"/></svg>
158
- ```
159
-
160
- **警告**
161
- ```html
162
- <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M10.3 3.9 1.8 18a2 2 0 0 0 1.7 3h17a2 2 0 0 0 1.7-3L13.7 3.9a2 2 0 0 0-3.4 0z"/><path d="M12 9v4M12 17h.01"/></svg>
163
- ```
164
-
165
- **信息**
166
- ```html
167
- <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"/><path d="M12 16v-4M12 8h.01"/></svg>
168
- ```
169
-
170
- **眼睛/可视**
171
- ```html
172
- <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M1 12s4-7 11-7 11 7 11 7-4 7-11 7-11-7-11-7z"/><circle cx="12" cy="12" r="3"/></svg>
173
- ```
174
-
175
- ---
176
-
177
- ## 组织与流程
178
-
179
- **用户/团队**
180
- ```html
181
- <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M17 21v-2a4 4 0 0 0-4-4H7a4 4 0 0 0-4 4v2"/><circle cx="10" cy="7" r="4"/><path d="M23 21v-2a4 4 0 0 0-3-3.87M16 3.13a4 4 0 0 1 0 7.75"/></svg>
182
- ```
183
-
184
- **单人/角色**
185
- ```html
186
- <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2"/><circle cx="12" cy="7" r="4"/></svg>
187
- ```
188
-
189
- **架构/层级**
190
- ```html
191
- <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><rect x="9" y="2" width="6" height="6" rx="1"/><rect x="2" y="16" width="6" height="6" rx="1"/><rect x="16" y="16" width="6" height="6" rx="1"/><path d="M12 8v4M5 16v-2a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2v2"/></svg>
192
- ```
193
-
194
- **图层/架构**
195
- ```html
196
- <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M12 2 2 7l10 5 10-5-10-5z"/><path d="M2 17l10 5 10-5"/><path d="M2 12l10 5 10-5"/></svg>
197
- ```
198
-
199
- **网络/节点**
200
- ```html
201
- <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><circle cx="18" cy="5" r="3"/><circle cx="6" cy="12" r="3"/><circle cx="18" cy="19" r="3"/><path d="M8.6 10.6 15.4 6.4M8.6 13.4l6.8 4.2"/></svg>
202
- ```
203
-
204
- **分支/流程**
205
- ```html
206
- <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><circle cx="6" cy="6" r="3"/><circle cx="6" cy="18" r="3"/><circle cx="18" cy="8" r="3"/><path d="M6 9v6M18 11a9 9 0 0 1-9 4"/></svg>
207
- ```
208
-
209
- **循环/飞轮**
210
- ```html
211
- <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M21 12a9 9 0 1 1-2.64-6.36"/><path d="M21 3v6h-6"/></svg>
212
- ```
213
-
214
- **刷新/迭代**
215
- ```html
216
- <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M3 12a9 9 0 0 1 15-6.7L21 8"/><path d="M21 3v5h-5"/><path d="M21 12a9 9 0 0 1-15 6.7L3 16"/><path d="M3 21v-5h5"/></svg>
217
- ```
218
-
219
- **拼图/集成**
220
- ```html
221
- <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M14 7V4a2 2 0 0 0-4 0v3H7a2 2 0 0 0-2 2v3h3a2 2 0 1 1 0 4H5v3a2 2 0 0 0 2 2h3v-3a2 2 0 1 1 4 0v3h3a2 2 0 0 0 2-2v-3h3a2 2 0 0 0 0-4h-3V9a2 2 0 0 0-2-2h-3z"/></svg>
222
- ```
223
-
224
- ---
225
-
226
- ## 时间与效率
227
-
228
- **时钟/时间**
229
- ```html
230
- <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"/><path d="M12 6v6l4 2"/></svg>
231
- ```
232
-
233
- **日历/计划**
234
- ```html
235
- <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="4" width="18" height="18" rx="2"/><path d="M16 2v4M8 2v4M3 10h18"/></svg>
236
- ```
237
-
238
- **闪电/高效**
239
- ```html
240
- <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M13 2 3 14h7l-1 8 10-12h-7l1-8z"/></svg>
241
- ```
242
-
243
- **罗盘/方向**
244
- ```html
245
- <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"/><polygon points="16.24 7.76 14.12 14.12 7.76 16.24 9.88 9.88 16.24 7.76"/></svg>
246
- ```
247
-
248
- ---
249
-
250
- ## 文档与工具
251
-
252
- **文档/报告**
253
- ```html
254
- <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8l-6-6z"/><path d="M14 2v6h6M16 13H8M16 17H8M10 9H8"/></svg>
255
- ```
256
-
257
- **文件夹/资产**
258
- ```html
259
- <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M4 20h16a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2z"/></svg>
260
- ```
261
-
262
- **搜索/洞察**
263
- ```html
264
- <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><circle cx="11" cy="11" r="8"/><path d="m21 21-4.3-4.3"/></svg>
265
- ```
266
-
267
- **扳手/工具**
268
- ```html
269
- <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z"/></svg>
270
- ```
271
-
272
- **灯泡/洞察**
273
- ```html
274
- <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M9 18h6M10 22h4"/><path d="M12 2a7 7 0 0 0-4 12.7c.6.5 1 1.2 1 2V17h6v-.3c0-.8.4-1.5 1-2A7 7 0 0 0 12 2z"/></svg>
275
- ```
276
-
277
- **书签/收藏**
278
- ```html
279
- <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M19 21l-7-5-7 5V5a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2z"/></svg>
280
- ```
281
-
282
- **编辑/撰写**
283
- ```html
284
- <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M17 3a2.85 2.83 0 1 1 4 4L7.5 20.5 2 22l1.5-5.5L17 3z"/></svg>
285
- ```
286
-
287
- ---
288
-
289
- ## 平台与智能
290
-
291
- **云/平台**
292
- ```html
293
- <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M18 10h-1.26A8 8 0 1 0 9 20h9a5 5 0 0 0 0-10z"/></svg>
294
- ```
295
-
296
- **芯片/AI**
297
- ```html
298
- <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><rect x="4" y="4" width="16" height="16" rx="2"/><rect x="9" y="9" width="6" height="6"/><path d="M9 1v3M15 1v3M9 20v3M15 20v3M1 9h3M1 15h3M20 9h3M20 15h3"/></svg>
299
- ```
300
-
301
- **机器人/Agent**
302
- ```html
303
- <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><rect x="4" y="8" width="16" height="12" rx="2"/><path d="M12 8V4M8 4h8"/><circle cx="9" cy="14" r="1"/><circle cx="15" cy="14" r="1"/><path d="M9 18h6"/></svg>
304
- ```
305
-
306
- **筛选/过滤**
307
- ```html
308
- <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M22 3H2l8 9.46V19l4 2v-8.54L22 3z"/></svg>
309
- ```
310
-
311
- **加号/新增**
312
- ```html
313
- <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"/><path d="M12 8v8M8 12h8"/></svg>
314
- ```
315
-
316
- **消息/协同**
317
- ```html
318
- <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"/></svg>
319
- ```
320
-
321
- ---
322
-
323
- ## 图表语义 / 布局 / 待核实
324
-
325
- **待核实/待确认**(`.flagbar` / `.tbd-legend` 专用,与"警告"区分:警告=风险,此=待补)
326
- ```html
327
- <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"/><path d="M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3"/><path d="M12 17h.01"/></svg>
328
- ```
329
-
330
- **流向 / 桑基**
331
- ```html
332
- <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M4 6h5c4 0 4 12 8 12h3"/><path d="M4 18h5c4 0 4-12 8-12h3"/><path d="M17 3l3 3-3 3M17 15l3 3-3 3"/></svg>
333
- ```
334
-
335
- **斜率 / 升降对比**
336
- ```html
337
- <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M4 19V5M20 19V5"/><path d="M6 15 18 8"/><path d="M6 11 18 16"/></svg>
338
- ```
339
-
340
- **哑铃 / 前后对比**
341
- ```html
342
- <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M4 12h16"/><circle cx="6" cy="12" r="2.4"/><circle cx="18" cy="12" r="2.4"/></svg>
343
- ```
344
-
345
- **分布 / 点图**
346
- ```html
347
- <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M3 12h18"/><circle cx="7" cy="8" r="1.6"/><circle cx="12" cy="12" r="1.6"/><circle cx="16" cy="7" r="1.6"/><circle cx="19" cy="15" r="1.6"/></svg>
348
- ```
349
-
350
- **目标线 / 子弹图**
351
- ```html
352
- <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="8" width="18" height="8" rx="2"/><path d="M16 5v14"/></svg>
353
- ```
354
-
355
- **图片 / 素材图**(也是**配图占位** `.media__ph` 的标准图标——占位块统一用这一个)
356
- ```html
357
- <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="4" width="18" height="16" rx="2"/><circle cx="8.5" cy="9.5" r="1.6"/><path d="m4 17 5-5 4 4 3-3 4 4"/></svg>
358
- ```
359
- > 占位块内**不要**给 svg 加 `class="f-*"`:`.media__ph svg` 已用 `stroke:var(--accent); fill:none` 随风格/主题自动取色(写成 `fill` 实心会在深色主题下发灰)。
360
-
361
- **拼贴 / 布局**
362
- ```html
363
- <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="3" width="8" height="10" rx="1.5"/><rect x="13" y="3" width="8" height="5" rx="1.5"/><rect x="13" y="10" width="8" height="11" rx="1.5"/><rect x="3" y="15" width="8" height="6" rx="1.5"/></svg>
364
- ```
365
-
366
- **清单 / 条目**
367
- ```html
368
- <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M9 6h11M9 12h11M9 18h11"/><path d="M4 6h.01M4 12h.01M4 18h.01"/></svg>
369
- ```
370
-
371
- **构成 / 马赛克**
372
- ```html
373
- <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="4" width="10" height="16" rx="1.5"/><rect x="13" y="4" width="8" height="9" rx="1.5"/><rect x="13" y="13" width="8" height="7" rx="1.5"/></svg>
374
- ```
375
-
376
- ---
377
-
378
- ## 速查:按语义选图标
379
-
380
- | 语义 | 图标 |
381
- |------|------|
382
- | 规模/底座 | 数据库、云、文件夹 |
383
- | 效率/性能 | 仪表盘、闪电、时钟 |
384
- | 增长/成果 | 增长、奖章、火箭、旗帜 |
385
- | 风险/问题 | 警告、下降 |
386
- | 治理/安全 | 盾牌、锁、钥匙、天平 |
387
- | 口径/规则 | 文档、天平、书签 |
388
- | 组织/分工 | 用户、单人、架构 |
389
- | 流程/血缘 | 分支、链接、循环、刷新、流向 |
390
- | 计划/路线 | 日历、罗盘、旗帜 |
391
- | 智能/Agent | 芯片、机器人 |
392
- | 洞察/分析 | 搜索、灯泡、眼睛 |
393
- | 建设/工具 | 扳手、齿轮、拼图 |
394
- | 图表语义 | 柱状图、趋势、环形、表格、分布、斜率、哑铃、构成 |
395
- | 布局/图片 | 拼贴、图片、全幅 |
396
- | 待核实/待补 | 待核实(问号圈) |
397
- | 清单/条目 | 清单 |
1
+ # 图标库(内联 SVG · currentColor · 随主题变色)
2
+
3
+ 全部 24×24、描边风格(stroke 1.8,圆角线帽),用 `currentColor`,自动继承所在元素颜色。
4
+
5
+ > **PPTX 通道**:内联 SVG 图标不跨通道导出。PPTX 侧卡片头用 **accent 小方块路标**(与 HTML `.card__ico` 的 accent 底同语义);要点列表用 accent 实心方块标记(已有)。**不要在模型里期待图标 ID 进 PPT**——路标语义靠 accent 色块 + 标题对齐完成。若某页必须视觉区分类型,用标题前缀(如「数据 ·」「风险 ·」)而不是图标。
6
+
7
+ ## 使用准则(克制而合理 · 先读再用)
8
+
9
+ **图标是信息的路标,不是装饰。** 该用的地方用好,不该用的地方一个都别放。
10
+
11
+ ### 哪里用(四个正当位置)
12
+
13
+ | 位置 | 做法 | 效果 |
14
+ |------|------|------|
15
+ | **卡片头** `.card__ico` | 每张要点卡一个小图标 | 卡片类型一眼可辨,最推荐 |
16
+ | **关键列表** `.ul--ico` | 每行行首一个小图标(见 `components.md` 第 7 节) | 清单可扫读,适合 3–5 条的关键列表 |
17
+ | **指标卡** `.metric__ico` | 指标卡右上角小图标 | 指标类别区分(规模/效率/质量) |
18
+ | **提示条** `.note__ico` | 把 `i` 字母换成真图标 | 结论/警告/信息三类提示 |
19
+
20
+ ### 哪里不用
21
+
22
+ - **Agenda 大纲**——大编号已是路标,再加图标是噪音
23
+ - **表格单元格**——表格靠文字对齐取胜,图标破坏栅格
24
+ - **图表内部**——数据系列用色不用图标
25
+ - **正文行内**——打断阅读流(引用标记除外)
26
+
27
+ ### 密度与一致性
28
+
29
+ - **每屏 3–8 个图标**;一屏全是图标 = 新噪音;连续两三屏零图标 = 单调,给要点卡补一个。
30
+ - **克制 ≠ 不用**:全文零图标的报告会"没有路标",可扫读性差——长报告(≥6 页)至少要点卡(`.card__ico`)或关键列表(`.ul--ico`)有一处图标(校验器 WARN 提醒)。**目标:够用即止,不多不少。**
31
+ - **research 模式例外**:图标密度减半(每屏 2–4 个)——咨询版式以 Exhibit 图表与论证结构为视觉主角,图标更克制;`.exhibit` 图表框内不放图标。
32
+ - **architecture 模式例外**:主图内不放图标(节点短标签已足够);图标只允许出现在图例区旁(≤2 个)。
33
+ - **一套报告只用描边风**(本库全部是),stroke-width 统一 1.8,不混用填充风。
34
+ - **尺寸**:`.card__ico` 内 18px;`.ul--ico` 内 17px;`.metric__ico` 20px;行内特殊场景 `width:1em`。
35
+ - **对齐**:图标与标题垂直居中(组件类已处理);自定义时 `display:grid;place-items:center`。
36
+
37
+ ### 颜色
38
+
39
+ - 不改 `stroke="currentColor"`——颜色由容器决定(`.card__ico` 自动是 accent 底 + accent 图标)。
40
+ - 深色收尾章里容器是半透明亮底,图标容器加 `color:var(--text-inv)`。
41
+ - spectrum 风格也不给图标单独上色——**彩色只属于数据系列**。
42
+
43
+ ---
44
+
45
+ ## 数据与图表
46
+
47
+ **数据库**
48
+ ```html
49
+ <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><ellipse cx="12" cy="5" rx="9" ry="3"/><path d="M3 5v14c0 1.66 4.03 3 9 3s9-1.34 9-3V5"/><path d="M3 12c0 1.66 4.03 3 9 3s9-1.34 9-3"/></svg>
50
+ ```
51
+
52
+ **柱状图**
53
+ ```html
54
+ <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M3 3v18h18"/><rect x="7" y="12" width="3" height="6" rx="1"/><rect x="12" y="8" width="3" height="10" rx="1"/><rect x="17" y="4" width="3" height="14" rx="1"/></svg>
55
+ ```
56
+
57
+ **趋势/折线**
58
+ ```html
59
+ <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M3 3v18h18"/><path d="M7 14l4-4 3 3 5-6"/><path d="M15 7h4v4"/></svg>
60
+ ```
61
+
62
+ **环形/占比**
63
+ ```html
64
+ <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M21.2 15.9A10 10 0 1 1 8 2.8"/><path d="M22 12A10 10 0 0 0 12 2v10z"/></svg>
65
+ ```
66
+
67
+ **表格/网格**
68
+ ```html
69
+ <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="3" width="18" height="18" rx="2"/><path d="M3 9h18M3 15h18M9 3v18M15 3v18"/></svg>
70
+ ```
71
+
72
+ **仪表盘/效率**
73
+ ```html
74
+ <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M12 15l3.5-5.5"/><path d="M20.2 15a8.5 8.5 0 1 0-16.4 0"/></svg>
75
+ ```
76
+
77
+ **漏斗/转化**
78
+ ```html
79
+ <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M4 4h16l-6 8v6l-4 2v-8L4 4z"/></svg>
80
+ ```
81
+
82
+ ---
83
+
84
+ ## 增长与经营
85
+
86
+ **增长/上升**
87
+ ```html
88
+ <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M22 7l-8.5 8.5-5-5L2 17"/><path d="M16 7h6v6"/></svg>
89
+ ```
90
+
91
+ **下降/回落**
92
+ ```html
93
+ <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M22 17l-8.5-8.5-5 5L2 7"/><path d="M16 17h6v-6"/></svg>
94
+ ```
95
+
96
+ **成本/财务**
97
+ ```html
98
+ <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><circle cx="8" cy="8" r="6"/><path d="M18.09 10.37A6 6 0 1 1 10.34 18"/><path d="M7 6h1v4"/><path d="m16.71 13.88.7.71-2.82 2.82"/></svg>
99
+ ```
100
+
101
+ **目标/靶心**
102
+ ```html
103
+ <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"/><circle cx="12" cy="12" r="6"/><circle cx="12" cy="12" r="2"/></svg>
104
+ ```
105
+
106
+ **奖章/成果**
107
+ ```html
108
+ <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="8" r="6"/><path d="M15.5 13 17 22l-5-3-5 3 1.5-9"/></svg>
109
+ ```
110
+
111
+ **旗帜/里程碑**
112
+ ```html
113
+ <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M4 15s1-1 4-1 5 2 8 2 4-1 4-1V3s-1 1-4 1-5-2-8-2-4 1-4 1z"/><path d="M4 22v-7"/></svg>
114
+ ```
115
+
116
+ **火箭/启动**
117
+ ```html
118
+ <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M4.5 16.5c-1.5 1.26-2 5-2 5s3.74-.5 5-2c.71-.84.7-2.13-.09-2.91a2.18 2.18 0 0 0-2.91-.09z"/><path d="M12 15l-3-3a22 22 0 0 1 2-3.95A12.88 12.88 0 0 1 22 2c0 2.72-.78 7.5-6 11a22.35 22.35 0 0 1-4 2z"/><path d="M9 12H4s.55-3.03 2-4c1.62-1.08 5 0 5 0"/><path d="M12 15v5s3.03-.55 4-2c1.08-1.62 0-5 0-5"/></svg>
119
+ ```
120
+
121
+ ---
122
+
123
+ ## 治理与安全
124
+
125
+ **盾牌/安全**
126
+ ```html
127
+ <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"/><path d="M9 12l2 2 4-4"/></svg>
128
+ ```
129
+
130
+ **锁/权限**
131
+ ```html
132
+ <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="11" width="18" height="10" rx="2"/><path d="M7 11V7a5 5 0 0 1 10 0v4"/></svg>
133
+ ```
134
+
135
+ **钥匙/密钥**
136
+ ```html
137
+ <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><circle cx="7.5" cy="15.5" r="5.5"/><path d="m21 2-9.6 9.6"/><path d="m15.5 7.5 3 3L22 7l-3-3"/></svg>
138
+ ```
139
+
140
+ **齿轮/引擎**
141
+ ```html
142
+ <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="3"/><path d="M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 1 1-2.83 2.83l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 1 1-4 0v-.09a1.65 1.65 0 0 0-1-1.51 1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 1 1-2.83-2.83l.06-.06a1.65 1.65 0 0 0 .33-1.82 1.65 1.65 0 0 0-1.51-1H3a2 2 0 1 1 0-4h.09a1.65 1.65 0 0 0 1.51-1 1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 1 1 2.83-2.83l.06.06a1.65 1.65 0 0 0 1.82.33h.01a1.65 1.65 0 0 0 1-1.51V3a2 2 0 1 1 4 0v.09a1.65 1.65 0 0 0 1 1.51h.01a1.65 1.65 0 0 0 1.82-.33l.06.06a2 2 0 1 1 2.83 2.83l-.06.06a1.65 1.65 0 0 0-.33 1.82v.01a1.65 1.65 0 0 0 1.51 1H21a2 2 0 1 1 0 4h-.09a1.65 1.65 0 0 0-1.51 1z"/></svg>
143
+ ```
144
+
145
+ **天平/合规**
146
+ ```html
147
+ <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M12 3v18"/><path d="M5 21h14"/><path d="M7 7l-4 7a4.5 4.5 0 0 0 8 0L7 7z"/><path d="M17 7l-4 7a4.5 4.5 0 0 0 8 0l-4-7z"/><path d="M5 7h14"/></svg>
148
+ ```
149
+
150
+ **链接/血缘**
151
+ ```html
152
+ <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"/><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"/></svg>
153
+ ```
154
+
155
+ **检查/对勾**
156
+ ```html
157
+ <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"/><path d="M8 12.5l2.5 2.5L16 9.5"/></svg>
158
+ ```
159
+
160
+ **警告**
161
+ ```html
162
+ <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M10.3 3.9 1.8 18a2 2 0 0 0 1.7 3h17a2 2 0 0 0 1.7-3L13.7 3.9a2 2 0 0 0-3.4 0z"/><path d="M12 9v4M12 17h.01"/></svg>
163
+ ```
164
+
165
+ **信息**
166
+ ```html
167
+ <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"/><path d="M12 16v-4M12 8h.01"/></svg>
168
+ ```
169
+
170
+ **眼睛/可视**
171
+ ```html
172
+ <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M1 12s4-7 11-7 11 7 11 7-4 7-11 7-11-7-11-7z"/><circle cx="12" cy="12" r="3"/></svg>
173
+ ```
174
+
175
+ ---
176
+
177
+ ## 组织与流程
178
+
179
+ **用户/团队**
180
+ ```html
181
+ <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M17 21v-2a4 4 0 0 0-4-4H7a4 4 0 0 0-4 4v2"/><circle cx="10" cy="7" r="4"/><path d="M23 21v-2a4 4 0 0 0-3-3.87M16 3.13a4 4 0 0 1 0 7.75"/></svg>
182
+ ```
183
+
184
+ **单人/角色**
185
+ ```html
186
+ <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2"/><circle cx="12" cy="7" r="4"/></svg>
187
+ ```
188
+
189
+ **架构/层级**
190
+ ```html
191
+ <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><rect x="9" y="2" width="6" height="6" rx="1"/><rect x="2" y="16" width="6" height="6" rx="1"/><rect x="16" y="16" width="6" height="6" rx="1"/><path d="M12 8v4M5 16v-2a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2v2"/></svg>
192
+ ```
193
+
194
+ **图层/架构**
195
+ ```html
196
+ <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M12 2 2 7l10 5 10-5-10-5z"/><path d="M2 17l10 5 10-5"/><path d="M2 12l10 5 10-5"/></svg>
197
+ ```
198
+
199
+ **网络/节点**
200
+ ```html
201
+ <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><circle cx="18" cy="5" r="3"/><circle cx="6" cy="12" r="3"/><circle cx="18" cy="19" r="3"/><path d="M8.6 10.6 15.4 6.4M8.6 13.4l6.8 4.2"/></svg>
202
+ ```
203
+
204
+ **分支/流程**
205
+ ```html
206
+ <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><circle cx="6" cy="6" r="3"/><circle cx="6" cy="18" r="3"/><circle cx="18" cy="8" r="3"/><path d="M6 9v6M18 11a9 9 0 0 1-9 4"/></svg>
207
+ ```
208
+
209
+ **循环/飞轮**
210
+ ```html
211
+ <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M21 12a9 9 0 1 1-2.64-6.36"/><path d="M21 3v6h-6"/></svg>
212
+ ```
213
+
214
+ **刷新/迭代**
215
+ ```html
216
+ <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M3 12a9 9 0 0 1 15-6.7L21 8"/><path d="M21 3v5h-5"/><path d="M21 12a9 9 0 0 1-15 6.7L3 16"/><path d="M3 21v-5h5"/></svg>
217
+ ```
218
+
219
+ **拼图/集成**
220
+ ```html
221
+ <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M14 7V4a2 2 0 0 0-4 0v3H7a2 2 0 0 0-2 2v3h3a2 2 0 1 1 0 4H5v3a2 2 0 0 0 2 2h3v-3a2 2 0 1 1 4 0v3h3a2 2 0 0 0 2-2v-3h3a2 2 0 0 0 0-4h-3V9a2 2 0 0 0-2-2h-3z"/></svg>
222
+ ```
223
+
224
+ ---
225
+
226
+ ## 时间与效率
227
+
228
+ **时钟/时间**
229
+ ```html
230
+ <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"/><path d="M12 6v6l4 2"/></svg>
231
+ ```
232
+
233
+ **日历/计划**
234
+ ```html
235
+ <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="4" width="18" height="18" rx="2"/><path d="M16 2v4M8 2v4M3 10h18"/></svg>
236
+ ```
237
+
238
+ **闪电/高效**
239
+ ```html
240
+ <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M13 2 3 14h7l-1 8 10-12h-7l1-8z"/></svg>
241
+ ```
242
+
243
+ **罗盘/方向**
244
+ ```html
245
+ <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"/><polygon points="16.24 7.76 14.12 14.12 7.76 16.24 9.88 9.88 16.24 7.76"/></svg>
246
+ ```
247
+
248
+ ---
249
+
250
+ ## 文档与工具
251
+
252
+ **文档/报告**
253
+ ```html
254
+ <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8l-6-6z"/><path d="M14 2v6h6M16 13H8M16 17H8M10 9H8"/></svg>
255
+ ```
256
+
257
+ **文件夹/资产**
258
+ ```html
259
+ <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M4 20h16a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2z"/></svg>
260
+ ```
261
+
262
+ **搜索/洞察**
263
+ ```html
264
+ <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><circle cx="11" cy="11" r="8"/><path d="m21 21-4.3-4.3"/></svg>
265
+ ```
266
+
267
+ **扳手/工具**
268
+ ```html
269
+ <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z"/></svg>
270
+ ```
271
+
272
+ **灯泡/洞察**
273
+ ```html
274
+ <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M9 18h6M10 22h4"/><path d="M12 2a7 7 0 0 0-4 12.7c.6.5 1 1.2 1 2V17h6v-.3c0-.8.4-1.5 1-2A7 7 0 0 0 12 2z"/></svg>
275
+ ```
276
+
277
+ **书签/收藏**
278
+ ```html
279
+ <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M19 21l-7-5-7 5V5a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2z"/></svg>
280
+ ```
281
+
282
+ **编辑/撰写**
283
+ ```html
284
+ <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M17 3a2.85 2.83 0 1 1 4 4L7.5 20.5 2 22l1.5-5.5L17 3z"/></svg>
285
+ ```
286
+
287
+ ---
288
+
289
+ ## 平台与智能
290
+
291
+ **云/平台**
292
+ ```html
293
+ <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M18 10h-1.26A8 8 0 1 0 9 20h9a5 5 0 0 0 0-10z"/></svg>
294
+ ```
295
+
296
+ **芯片/AI**
297
+ ```html
298
+ <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><rect x="4" y="4" width="16" height="16" rx="2"/><rect x="9" y="9" width="6" height="6"/><path d="M9 1v3M15 1v3M9 20v3M15 20v3M1 9h3M1 15h3M20 9h3M20 15h3"/></svg>
299
+ ```
300
+
301
+ **机器人/Agent**
302
+ ```html
303
+ <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><rect x="4" y="8" width="16" height="12" rx="2"/><path d="M12 8V4M8 4h8"/><circle cx="9" cy="14" r="1"/><circle cx="15" cy="14" r="1"/><path d="M9 18h6"/></svg>
304
+ ```
305
+
306
+ **筛选/过滤**
307
+ ```html
308
+ <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M22 3H2l8 9.46V19l4 2v-8.54L22 3z"/></svg>
309
+ ```
310
+
311
+ **加号/新增**
312
+ ```html
313
+ <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"/><path d="M12 8v8M8 12h8"/></svg>
314
+ ```
315
+
316
+ **消息/协同**
317
+ ```html
318
+ <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"/></svg>
319
+ ```
320
+
321
+ ---
322
+
323
+ ## 图表语义 / 布局 / 待核实
324
+
325
+ **待核实/待确认**(`.flagbar` / `.tbd-legend` 专用,与"警告"区分:警告=风险,此=待补)
326
+ ```html
327
+ <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"/><path d="M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3"/><path d="M12 17h.01"/></svg>
328
+ ```
329
+
330
+ **流向 / 桑基**
331
+ ```html
332
+ <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M4 6h5c4 0 4 12 8 12h3"/><path d="M4 18h5c4 0 4-12 8-12h3"/><path d="M17 3l3 3-3 3M17 15l3 3-3 3"/></svg>
333
+ ```
334
+
335
+ **斜率 / 升降对比**
336
+ ```html
337
+ <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M4 19V5M20 19V5"/><path d="M6 15 18 8"/><path d="M6 11 18 16"/></svg>
338
+ ```
339
+
340
+ **哑铃 / 前后对比**
341
+ ```html
342
+ <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M4 12h16"/><circle cx="6" cy="12" r="2.4"/><circle cx="18" cy="12" r="2.4"/></svg>
343
+ ```
344
+
345
+ **分布 / 点图**
346
+ ```html
347
+ <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M3 12h18"/><circle cx="7" cy="8" r="1.6"/><circle cx="12" cy="12" r="1.6"/><circle cx="16" cy="7" r="1.6"/><circle cx="19" cy="15" r="1.6"/></svg>
348
+ ```
349
+
350
+ **目标线 / 子弹图**
351
+ ```html
352
+ <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="8" width="18" height="8" rx="2"/><path d="M16 5v14"/></svg>
353
+ ```
354
+
355
+ **图片 / 素材图**(也是**配图占位** `.media__ph` 的标准图标——占位块统一用这一个)
356
+ ```html
357
+ <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="4" width="18" height="16" rx="2"/><circle cx="8.5" cy="9.5" r="1.6"/><path d="m4 17 5-5 4 4 3-3 4 4"/></svg>
358
+ ```
359
+ > 占位块内**不要**给 svg 加 `class="f-*"`:`.media__ph svg` 已用 `stroke:var(--accent); fill:none` 随风格/主题自动取色(写成 `fill` 实心会在深色主题下发灰)。
360
+
361
+ **拼贴 / 布局**
362
+ ```html
363
+ <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="3" width="8" height="10" rx="1.5"/><rect x="13" y="3" width="8" height="5" rx="1.5"/><rect x="13" y="10" width="8" height="11" rx="1.5"/><rect x="3" y="15" width="8" height="6" rx="1.5"/></svg>
364
+ ```
365
+
366
+ **清单 / 条目**
367
+ ```html
368
+ <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M9 6h11M9 12h11M9 18h11"/><path d="M4 6h.01M4 12h.01M4 18h.01"/></svg>
369
+ ```
370
+
371
+ **构成 / 马赛克**
372
+ ```html
373
+ <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="4" width="10" height="16" rx="1.5"/><rect x="13" y="4" width="8" height="9" rx="1.5"/><rect x="13" y="13" width="8" height="7" rx="1.5"/></svg>
374
+ ```
375
+
376
+ ---
377
+
378
+ ## 速查:按语义选图标
379
+
380
+ | 语义 | 图标 |
381
+ |------|------|
382
+ | 规模/底座 | 数据库、云、文件夹 |
383
+ | 效率/性能 | 仪表盘、闪电、时钟 |
384
+ | 增长/成果 | 增长、奖章、火箭、旗帜 |
385
+ | 风险/问题 | 警告、下降 |
386
+ | 治理/安全 | 盾牌、锁、钥匙、天平 |
387
+ | 口径/规则 | 文档、天平、书签 |
388
+ | 组织/分工 | 用户、单人、架构 |
389
+ | 流程/血缘 | 分支、链接、循环、刷新、流向 |
390
+ | 计划/路线 | 日历、罗盘、旗帜 |
391
+ | 智能/Agent | 芯片、机器人 |
392
+ | 洞察/分析 | 搜索、灯泡、眼睛 |
393
+ | 建设/工具 | 扳手、齿轮、拼图 |
394
+ | 图表语义 | 柱状图、趋势、环形、表格、分布、斜率、哑铃、构成 |
395
+ | 布局/图片 | 拼贴、图片、全幅 |
396
+ | 待核实/待补 | 待核实(问号圈) |
397
+ | 清单/条目 | 清单 |