@topmindspace/tms-skills 2.0.2 → 2.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +6 -0
- package/README.md +1 -1
- package/package.json +1 -1
- package/top-ppt-html/assets/examples/2026-09-09-architecture-graphite-dark.html +72 -19
- package/top-ppt-html/assets/examples/2026-09-09-architecture-spectrum.html +72 -19
- package/top-ppt-html/assets/examples/2026-09-09-presentation-apple-mono.html +72 -19
- package/top-ppt-html/assets/examples/2026-09-09-presentation-brand-red.html +72 -19
- package/top-ppt-html/assets/examples/2026-09-09-presentation-business-blue.html +72 -19
- package/top-ppt-html/assets/examples/2026-09-09-research-deep-teal.html +72 -19
- package/top-ppt-html/assets/examples/2026-09-09-research-indigo-violet.html +72 -19
- package/top-ppt-html/assets/examples/2026-09-09-research-mckinsey.html +72 -19
- package/top-ppt-html/assets/examples/2026-09-09-research-warm-sand.html +72 -19
- package/top-ppt-html/assets/pptx-export.js +2 -2
- package/top-ppt-html/assets/style-gallery.html +56 -26
- package/top-ppt-html/assets/templates/architecture.html +72 -19
- package/top-ppt-html/assets/templates/engine.css +70 -17
- package/top-ppt-html/assets/templates/presentation.html +72 -19
- package/top-ppt-html/assets/templates/research.html +72 -19
- package/top-ppt-html/assets/theme-overview-architecture.png +0 -0
- package/top-ppt-html/assets/theme-overview-presentation.png +0 -0
- package/top-ppt-html/assets/theme-overview-research.png +0 -0
- package/top-ppt-html/assets/theme-overview.png +0 -0
- package/top-ppt-html/package-lock.json +34 -2
- package/top-ppt-html/package.json +7 -2
- package/top-ppt-html/references/design-system.md +13 -6
- package/top-ppt-html/references/styles.md +60 -26
- package/top-ppt-html/references/tech-design.md +1 -1
- package/top-ppt-html/scripts/audit_styles.py +59 -1
- package/top-ppt-html/scripts/layout-constants.json +71 -3
- package/top-ppt-html/scripts/layout_slots.json +1 -1
- package/top-ppt-html/scripts/model-schema.json +1 -1
- package/top-ppt-html/scripts/regression.py +17 -16
|
@@ -45,24 +45,26 @@
|
|
|
45
45
|
.preset.sel .meta__pick{background:#1a73e8;color:#fff;border-color:#1a73e8}
|
|
46
46
|
|
|
47
47
|
/* ── 预览区(每张卡用自己的变量渲染当前模式的迷你版式) ── */
|
|
48
|
-
.pv{padding:20px 22px 18px;background:var(--pbg);color:var(--ptxt);font-family:var(--pfont);
|
|
49
|
-
border-bottom:1px solid var(--pbd)}
|
|
50
|
-
.pv__bar{display:flex;align-items:center;gap:9px;margin-bottom:14px}
|
|
48
|
+
.pv{padding:20px 22px 18px;background:var(--pbg);color:var(--ptxt);font-family:var(--pfont-body);
|
|
49
|
+
border-bottom:1px solid var(--pbd);letter-spacing:var(--pletter,0)}
|
|
50
|
+
.pv__bar{display:flex;align-items:center;gap:9px;margin-bottom:calc(14px * var(--pgap,1))}
|
|
51
51
|
.pv__mark{width:24px;height:24px;border-radius:var(--prad,8px);background:var(--pa);color:var(--paon);
|
|
52
52
|
display:grid;place-items:center;font-size:10px;font-weight:700}
|
|
53
|
-
.pv__bart{font-size:12.5px;font-weight:600}
|
|
53
|
+
.pv__bart{font-size:12.5px;font-weight:600;font-family:var(--pfont-display)}
|
|
54
54
|
.pv__barsub{margin-left:auto;display:flex;gap:6px;align-items:center}
|
|
55
55
|
.pv__dot{width:12px;height:12px;border-radius:50%;border:1px solid var(--pbd)}
|
|
56
56
|
.pv__pager{font-size:9.5px;color:var(--ptxt2);border:1px solid var(--pbd);border-radius:999px;
|
|
57
57
|
padding:2px 7px;font-weight:600}
|
|
58
58
|
|
|
59
|
-
.pv__eyebrow{font-size:10px;font-weight:700;letter-spacing
|
|
59
|
+
.pv__eyebrow{font-size:10px;font-weight:700;letter-spacing:var(--peye,.11em);text-transform:uppercase;
|
|
60
60
|
color:var(--pa);margin-bottom:6px}
|
|
61
|
-
.pv__h{font-size:22px;line-height:1.18;letter-spacing
|
|
61
|
+
.pv__h{font-size:calc(22px * var(--pscale,1));line-height:1.18;letter-spacing:var(--pletter,-.02em);
|
|
62
|
+
font-weight:var(--pw,700);margin-bottom:calc(14px * var(--pgap,1));font-family:var(--pfont-display)}
|
|
62
63
|
|
|
63
64
|
/* presentation 迷你件 */
|
|
64
|
-
.pv__metric{display:flex;gap:16px;margin-bottom:12px}
|
|
65
|
-
.pv__metric div b{font-size:26px;font-weight:700;letter-spacing
|
|
65
|
+
.pv__metric{display:flex;gap:calc(16px * var(--pgap,1));margin-bottom:12px}
|
|
66
|
+
.pv__metric div b{font-size:calc(26px * var(--pscale,1));font-weight:700;letter-spacing:var(--pletter,-.03em);
|
|
67
|
+
color:var(--pa);display:block;line-height:1;font-family:var(--pfont-display)}
|
|
66
68
|
.pv__metric div span{font-size:10px;color:var(--ptxt2)}
|
|
67
69
|
.pv__bars{display:flex;align-items:flex-end;gap:8px;height:56px}
|
|
68
70
|
.pv__bars i{flex:1;border-radius:5px 5px 0 0;background:var(--ps3)}
|
|
@@ -88,7 +90,8 @@
|
|
|
88
90
|
background:var(--pas);border-radius:0 6px 6px 0;padding:6px 10px;margin-bottom:10px}
|
|
89
91
|
.pv__swK{font-size:8.5px;font-weight:700;letter-spacing:.1em;color:var(--pa);flex:none}
|
|
90
92
|
.pv__swV{font-size:10px;font-weight:500;color:var(--ptxt);line-height:1.5}
|
|
91
|
-
.pv__cols{column-count:2;column-gap:14px;font-size:9.5px;color:var(--ptxt2);
|
|
93
|
+
.pv__cols{column-count:2;column-gap:calc(14px * var(--pgap,1));font-size:9.5px;color:var(--ptxt2);
|
|
94
|
+
line-height:var(--plh,1.6)}
|
|
92
95
|
.pv__cols p{margin-bottom:5px;break-inside:avoid-column}
|
|
93
96
|
.pv__cols b{color:var(--ptxt)}
|
|
94
97
|
|
|
@@ -120,11 +123,11 @@
|
|
|
120
123
|
border-bottom:1px solid var(--pbd)}
|
|
121
124
|
.dk__tag{font-size:10px;font-weight:700;letter-spacing:.1em;color:var(--dtxt2);
|
|
122
125
|
border:1px solid var(--dbd);border-radius:999px;padding:3px 9px}
|
|
123
|
-
.dk__h{font-size:14px;font-weight:700;color:var(--dtxt);font-family:var(--pfont)}
|
|
126
|
+
.dk__h{font-size:14px;font-weight:700;color:var(--dtxt);font-family:var(--pfont-display)}
|
|
124
127
|
.dk__bars{display:flex;align-items:flex-end;gap:4px;height:26px;margin-left:auto}
|
|
125
128
|
.dk__bars i{width:10px;border-radius:3px 3px 0 0;background:var(--ds3)}
|
|
126
129
|
.dk__bars i.a{background:var(--da)}
|
|
127
|
-
.dk__num{font-size:17px;font-weight:700;color:var(--da);font-family:var(--pfont)}
|
|
130
|
+
.dk__num{font-size:17px;font-weight:700;color:var(--da);font-family:var(--pfont-display)}
|
|
128
131
|
|
|
129
132
|
/* 卡底说明 */
|
|
130
133
|
.meta{padding:16px 22px 18px;background:#fff}
|
|
@@ -208,7 +211,7 @@ var CONT = {"pad":{"card":0.18,"panel":0.2,"cell":0.08,"band":0.16,"soWhat":0.16
|
|
|
208
211
|
var REG = {"bar":{"html":"svg-bars","pptx":"native","nativeType":"bar","dataTable":"notes","min":{"vbHeightMin":160}},"hbar":{"html":"svg-hbars","pptx":"native","nativeType":"bar","dataTable":"notes","min":{"vbHeightMin":100}},"stack":{"html":"svg-stack","pptx":"native","nativeType":"bar","dataTable":"notes","min":{"vbHeightMin":160},"nativeOpt":{"barGrouping":"stacked"}},"stackline":{"html":"svg-stackline","pptx":"native","nativeType":"bar","dataTable":"notes","min":{"vbHeightMin":40},"nativeOpt":{"barGrouping":"percentStacked"}},"line":{"html":"svg-line","pptx":"native","nativeType":"line","dataTable":"notes","min":{"vbHeightMin":160}},"dualline":{"html":"svg-dualline","pptx":"native","nativeType":"line","dataTable":"notes","min":{"vbHeightMin":160}},"area":{"html":"svg-area","pptx":"native","nativeType":"area","dataTable":"notes","min":{"vbHeightMin":160}},"donut":{"html":"svg-donut","pptx":"native","nativeType":"doughnut","dataTable":"notes","min":{"pxWidthMin":140}},"multidonut":{"html":"svg-mdonut","pptx":"native","nativeType":"doughnut","dataTable":"notes","min":{"pxWidthMin":140}},"pie":{"html":"svg-pie","pptx":"native","nativeType":"pie","dataTable":"notes","min":{"pxWidthMin":140}},"radar":{"html":"svg-radar","pptx":"native","nativeType":"radar","dataTable":"notes","min":{"pxWidthMin":220}},"scatter":{"html":"svg-scatter","pptx":"native","nativeType":"scatter","dataTable":"notes","min":{"vbHeightMin":180}},"bubble":{"html":"svg-bubble","pptx":"native","nativeType":"bubble","dataTable":"notes","min":{"vbHeightMin":180}},"waterfall":{"html":"svg-wf","pptx":"native","nativeType":"bar","dataTable":"notes","min":{"vbHeightMin":170},"nativeTrick":"stacked+hiddenBase+connector"},"gauge":{"html":"svg-gauge","pptx":"native","nativeType":"doughnut","dataTable":"notes","min":{"pxWidthMin":180},"nativeTrick":"doughnut+firstSliceAng+hiddenRemainder"},"pareto":{"html":"svg-pareto","pptx":"native","nativeType":"bar","dataTable":"notes","min":{"vbHeightMin":180},"nativeTrick":"multiType+bar+line"},"gantt":{"html":"svg-gantt","pptx":"shape","dataTable":"notes","min":{"vbHeightMin":130},"path":{"forbidPresetShapes":true}},"vsbar":{"html":"svg-vsbar","pptx":"shape","dataTable":"notes","min":{"vbHeightMin":100},"path":{"forbidPresetShapes":true}},"progress":{"html":"svg-progress","pptx":"shape","dataTable":"notes","min":{"vbHeightMin":100},"path":{"forbidPresetShapes":true}},"sparkline":{"html":"svg-spark","pptx":"shape","dataTable":"off","min":{"vbHeightMin":20},"path":{"forbidPresetShapes":true}},"funnel":{"html":"svg-funnel","pptx":"shape","dataTable":"notes","min":{"vbHeightMin":160},"path":{"minSamplePoints":8,"forbidPresetShapes":true}},"treemap":{"html":"svg-treemap","pptx":"shape","dataTable":"appendix","min":{"vbHeightMin":170},"path":{"forbidPresetShapes":true}},"marimekko":{"html":"svg-marimekko","pptx":"shape","dataTable":"appendix","min":{"vbHeightMin":160},"path":{"forbidPresetShapes":true}},"boxplot":{"html":"svg-boxplot","pptx":"shape","dataTable":"appendix","min":{"vbHeightMin":180},"path":{"forbidPresetShapes":true}},"network":{"html":"svg-network","pptx":"shape","dataTable":"appendix","min":{"vbHeightMin":200},"path":{"forbidPresetShapes":true}},"sankey":{"html":"svg-sankey","pptx":"shape","dataTable":"appendix","min":{"vbHeightMin":200},"path":{"minSamplePoints":16,"trackBothEdges":true,"forbidPresetShapes":true}},"streamgraph":{"html":"svg-stream","pptx":"shape","dataTable":"appendix","min":{"vbHeightMin":160},"path":{"minSamplePoints":24,"trackBothEdges":true,"forbidPresetShapes":true}},"slope":{"html":"svg-slope","pptx":"shape","dataTable":"notes","min":{"vbHeightMin":180},"path":{"forbidPresetShapes":true}},"dumbbell":{"html":"svg-dumbbell","pptx":"shape","dataTable":"notes","min":{"vbHeightMin":160},"path":{"forbidPresetShapes":true}},"lollipop":{"html":"svg-lollipop","pptx":"shape","dataTable":"notes","min":{"vbHeightMin":140},"path":{"forbidPresetShapes":true}},"dotplot":{"html":"svg-dotplot","pptx":"shape","dataTable":"notes","min":{"vbHeightMin":120},"path":{"forbidPresetShapes":true}},"bulletchart":{"html":"svg-bullet","pptx":"shape","dataTable":"notes","min":{"vbHeightMin":140},"path":{"forbidPresetShapes":true}},"waffle":{"html":"svg-waffle","pptx":"shape","dataTable":"notes","min":{"vbHeightMin":160},"path":{"forbidPresetShapes":true}},"radialbar":{"html":"svg-radialbar","pptx":"shape","dataTable":"notes","min":{"pxWidthMin":200},"path":{"minSamplePoints":16,"forbidPresetShapes":true}},"rose":{"html":"svg-rose","pptx":"shape","dataTable":"notes","min":{"pxWidthMin":180},"path":{"minSamplePoints":16,"forbidPresetShapes":true}},"candlestick":{"html":"svg-candle","pptx":"shape","dataTable":"appendix","min":{"vbHeightMin":180},"path":{"forbidPresetShapes":true}}};
|
|
209
212
|
var DEEP = {"triggers":["高保真","1:1","一比一","精确还原","按图还原","正式交付","不能偏移","像素级","严格对照","逐页验收"],"complexCharts":["sankey","streamgraph","treemap","marimekko","boxplot","network","rose","radialbar","candlestick","funnel"],"checks":{"anchors":true,"containerOverflow":true,"renderCompare":true,"manifest":true},"renderCompare":{"engine":"soffice","fallback":"powerpoint-com","skipIfMissing":true,"dpi":96}};
|
|
210
213
|
var IMG = {"layouts":["full","half","bleed","grid","compare","wall"],"multiLayouts":["grid","compare","wall"],"fitEnum":["cover","contain"],"fitDefault":"cover","formats":["png","jpeg","jpg","webp","svg"],"ratioDefault":{"full":"3:1","half":"4:3","bleed":"21:9","grid":"4:3","compare":"4:3","wall":"1:1"},"ratioCssClass":{"full":"media--r3-1","half":"media--r4-3","bleed":"media--r21-9","grid":"media--r4-3","compare":"media--r4-3","wall":"media--r1-1"},"recommendedSizePx":{"full":"2400×800","half":"1400×1050","bleed":"2560×1100","grid":"900×675","compare":"1400×1050","wall":"480×480"},"maxInlineBytes":1572864,"maxTotalInlineBytes":8388608,"maxPerPage":6,"placeholderLabel":"配图占位","placeholderHintPrefix":"建议 ","placeholderHintSuffix":"px","zeroExternal":true,"qualityRule":"位图优先提供 ≥2× 显示尺寸;截图用 16:9 或 4:3 锁定比例;数据图不要用截图(应用内联 SVG 图表,可随主题变色)。"};
|
|
211
|
-
var LAYOUT_SLOTS = {"version":"9.
|
|
214
|
+
var LAYOUT_SLOTS = {"version":"9.1","pageTypes":{"points":{"mode":["presentation","research","architecture"],"slots":[{"id":"head","role":"chrome","required":true,"html":".shead","pptx":"head()"},{"id":"primary","role":"primary","required":true,"html":".grid.g-2 / .card / .ul","pptx":"points columns","minUnits":1},{"id":"annotation","role":"annotation","required":false,"html":".sowhat / .note","pptx":"soWhatBar / footnoteLine"}]},"metrics":{"mode":["presentation","research"],"slots":[{"id":"head","role":"chrome","required":true,"html":".shead","pptx":"head()"},{"id":"primary","role":"primary","required":true,"html":".metric","pptx":"metric row","minUnits":4},{"id":"annotation","role":"annotation","required":false,"html":"口径行 / .sowhat","pptx":"footnoteLine / soWhatBar"}]},"kpi":{"mode":["presentation","research"],"slots":[{"id":"head","role":"chrome","required":true,"html":".shead","pptx":"head()"},{"id":"hero","role":"primary","required":true,"html":".t-metric hero","pptx":"hero number"},{"id":"metrics","role":"secondary","required":false,"html":".metric","pptx":"support metrics"},{"id":"annotation","role":"annotation","required":false,"html":".sowhat / .note","pptx":"soWhatBar"}]},"exhibit":{"mode":["research","presentation"],"slots":[{"id":"head","role":"chrome","required":true,"html":".shead / .exhibit__hd","pptx":"head()"},{"id":"primary","role":"primary","required":true,"html":"svg[data-chart] / .exhibit","pptx":"nativeChart | shapeChart","channel":"registry"},{"id":"secondary","role":"secondary","required":false,"html":"要点列表","pptx":"side bullets"},{"id":"annotation","role":"annotation","required":true,"html":".exhibit__src / .sowhat","pptx":"footnoteLine / soWhatBar / notes"}]},"split":{"mode":["presentation","research","architecture"],"slots":[{"id":"head","role":"chrome","required":true,"html":".shead","pptx":"head()"},{"id":"left","role":"primary","required":true,"html":"左区(points/table/image/chart)","pptx":"left zone"},{"id":"right","role":"secondary","required":true,"html":"右区(points/table/image/chart)","pptx":"right zone"},{"id":"annotation","role":"annotation","required":false,"html":".sowhat / .note","pptx":"soWhatBar"}]},"table":{"mode":["presentation","research"],"slots":[{"id":"head","role":"chrome","required":true,"html":".shead","pptx":"head()"},{"id":"primary","role":"primary","required":true,"html":".tbl-wrap table","pptx":"addTable","maxRows":{"presentation":8,"research":16}},{"id":"annotation","role":"annotation","required":false,"html":".sowhat / .note","pptx":"soWhatBar / footnoteLine"}]},"bar":{"mode":["presentation","research","architecture"],"slots":[{"id":"head","role":"chrome","required":true,"html":".shead","pptx":"head()"},{"id":"primary","role":"primary","required":true,"html":"svg[data-chart]","pptx":"nativeChart | shapeChart","channel":"registry"},{"id":"annotation","role":"annotation","required":true,"html":"note / dataTable","pptx":"footnoteLine / notes / inline table"}]},"donut":{"mode":["presentation","research"],"slots":[{"id":"head","role":"chrome","required":true,"html":".shead","pptx":"head()"},{"id":"primary","role":"primary","required":true,"html":"svg[data-chart=donut]","pptx":"addChart doughnut"},{"id":"annotation","role":"annotation","required":false,"html":"中心合计 / 图例 / .note","pptx":"center label / legend / notes"}]},"twocol":{"mode":["research"],"slots":[{"id":"head","role":"chrome","required":true,"html":".shead","pptx":"head()"},{"id":"primary","role":"primary","required":true,"html":".cols-2","pptx":"two text columns"},{"id":"annotation","role":"annotation","required":false,"html":".sowhat","pptx":"soWhatBar"}]},"threecol":{"mode":["research"],"slots":[{"id":"head","role":"chrome","required":true,"html":".shead","pptx":"head()"},{"id":"primary","role":"primary","required":true,"html":".cols-3","pptx":"three text columns"},{"id":"annotation","role":"annotation","required":false,"html":".sowhat","pptx":"soWhatBar"}]},"halftable":{"mode":["research"],"slots":[{"id":"head","role":"chrome","required":true,"html":".shead","pptx":"head()"},{"id":"primary","role":"primary","required":true,"html":"左表","pptx":"addTable left"},{"id":"secondary","role":"secondary","required":true,"html":"右图","pptx":"chart right"},{"id":"annotation","role":"annotation","required":false,"html":".sowhat","pptx":"soWhatBar"}]},"matrix":{"mode":["research"],"slots":[{"id":"head","role":"chrome","required":true,"html":".shead","pptx":"head()"},{"id":"primary","role":"primary","required":true,"html":".matrix","pptx":"matrix cells"},{"id":"annotation","role":"annotation","required":false,"html":".sowhat","pptx":"soWhatBar"}]},"comparison":{"mode":["presentation","research"],"slots":[{"id":"head","role":"chrome","required":true,"html":".shead","pptx":"head()"},{"id":"left","role":"primary","required":true,"html":"左面板","pptx":"left panel"},{"id":"right","role":"secondary","required":true,"html":"右面板","pptx":"right panel"},{"id":"annotation","role":"annotation","required":false,"html":"verdict / .sowhat","pptx":"verdict bar"}]},"quote":{"mode":["presentation","research"],"slots":[{"id":"head","role":"chrome","required":true,"html":".shead","pptx":"head()"},{"id":"primary","role":"primary","required":true,"html":"金句正文","pptx":"quote text"}]},"timeline":{"mode":["presentation","research"],"slots":[{"id":"head","role":"chrome","required":true,"html":".shead","pptx":"head()"},{"id":"primary","role":"primary","required":true,"html":".tl","pptx":"timeline axis"}]},"steps":{"mode":["presentation","architecture"],"slots":[{"id":"head","role":"chrome","required":true,"html":".shead","pptx":"head()"},{"id":"primary","role":"primary","required":true,"html":".steps","pptx":"step row"}]},"cards":{"mode":["presentation","research"],"slots":[{"id":"head","role":"chrome","required":true,"html":".shead","pptx":"head()"},{"id":"primary","role":"primary","required":true,"html":".card grid","pptx":"card grid"}]},"heatmap":{"mode":["presentation","research"],"slots":[{"id":"head","role":"chrome","required":true,"html":".shead","pptx":"head()"},{"id":"primary","role":"primary","required":true,"html":".heat","pptx":"heat cells"}]},"bullet":{"mode":["presentation","research"],"slots":[{"id":"head","role":"chrome","required":true,"html":".shead","pptx":"head()"},{"id":"primary","role":"primary","required":true,"html":".bul","pptx":"bullet rows"}]},"pyramid":{"mode":["presentation","research"],"slots":[{"id":"head","role":"chrome","required":true,"html":".shead","pptx":"head()"},{"id":"primary","role":"primary","required":true,"html":".pyr","pptx":"pyramid layers"}]},"image":{"mode":["presentation","research","architecture"],"slots":[{"id":"head","role":"chrome","required":true,"html":".shead","pptx":"head()"},{"id":"primary","role":"primary","required":true,"html":".media*","pptx":"imageLayoutShapes"}]},"diagram":{"mode":["architecture","research"],"slots":[{"id":"head","role":"chrome","required":true,"html":".shead","pptx":"head()"},{"id":"primary","role":"primary","required":true,"html":".arch / layers","pptx":"layered nodes + edges","maxNodes":24,"maxLayers":4},{"id":"annotation","role":"annotation","required":false,"html":".arch__legend / .note","pptx":"legend chips / notes"}]},"lane":{"mode":["architecture","research"],"slots":[{"id":"head","role":"chrome","required":true,"html":".shead","pptx":"head()"},{"id":"primary","role":"primary","required":true,"html":".lane","pptx":"lanes + steps"}]},"sankey":{"mode":["research","architecture"],"slots":[{"id":"head","role":"chrome","required":true,"html":".shead","pptx":"head()"},{"id":"primary","role":"primary","required":true,"html":"svg[data-chart=sankey]","pptx":"infoSankey","maxNodes":12},{"id":"annotation","role":"annotation","required":true,"html":"dataTable / .note","pptx":"notes"}]},"treemap":{"mode":["research","architecture"],"slots":[{"id":"head","role":"chrome","required":true,"html":".shead","pptx":"head()"},{"id":"primary","role":"primary","required":true,"html":"svg[data-chart=treemap]","pptx":"infoTreemap"},{"id":"annotation","role":"annotation","required":true,"html":"dataTable / .note","pptx":"notes"}]},"boxplot":{"mode":["research","architecture"],"slots":[{"id":"head","role":"chrome","required":true,"html":".shead","pptx":"head()"},{"id":"primary","role":"primary","required":true,"html":"svg[data-chart=boxplot]","pptx":"infoBoxplot"},{"id":"annotation","role":"annotation","required":true,"html":"dataTable / .note","pptx":"notes"}]},"network":{"mode":["research","architecture"],"slots":[{"id":"head","role":"chrome","required":true,"html":".shead","pptx":"head()"},{"id":"primary","role":"primary","required":true,"html":"svg[data-chart=network]","pptx":"infoNetwork"},{"id":"annotation","role":"annotation","required":true,"html":"dataTable / .note","pptx":"notes"}]},"marimekko":{"mode":["research","architecture"],"slots":[{"id":"head","role":"chrome","required":true,"html":".shead","pptx":"head()"},{"id":"primary","role":"primary","required":true,"html":"svg[data-chart=marimekko]","pptx":"infoMarimekko"},{"id":"annotation","role":"annotation","required":true,"html":"dataTable / .note","pptx":"notes"}]},"streamgraph":{"mode":["research","architecture"],"slots":[{"id":"head","role":"chrome","required":true,"html":".shead","pptx":"head()"},{"id":"primary","role":"primary","required":true,"html":"svg[data-chart=streamgraph]","pptx":"infoStreamgraph"},{"id":"annotation","role":"annotation","required":true,"html":"dataTable / .note","pptx":"notes"}]}}};
|
|
212
215
|
|
|
213
216
|
/* regionOf(pageType, slotId, opts) — 页型布局区域 IR(与 scripts/lib_layout_regions.js 同源) */
|
|
214
217
|
function regionOf(pageType, slotId, opts) {
|
|
@@ -349,31 +352,49 @@ var MODES=[
|
|
|
349
352
|
d:'图为王:版心 1600、每页一张全幅主图(分层带/泳道/管线),文字退到图注级。1–3 张图,可省 Agenda。',rec:'推荐风格:石墨 / 商务蓝 / 彩色'}
|
|
350
353
|
];
|
|
351
354
|
|
|
352
|
-
/* ──
|
|
355
|
+
/* ── 风格的「描述性字段」手写(名称/定位/适用/语汇);**卡片列表与配色一律取自单源**
|
|
353
356
|
(PRESETS / PRESETS_DARK / STYLE_DATA_COLORS,由 sync_runtime.py 注入)
|
|
354
|
-
|
|
357
|
+
语汇字段与 engine.css + layout-constants.styleIdentity 同口径,预览能看出性格差。 ── */
|
|
355
358
|
var STYLE_META=[
|
|
356
359
|
{id:'business-blue',name:'商务蓝',en:'business-blue',d:'专业克制、信息密度高。中性灰阶 + 单一蓝,最通用的商务选择。',s:'技术 / 数据 / 通用商务汇报',
|
|
357
|
-
|
|
360
|
+
pfontBody:"'Google Sans','Roboto','PingFang SC','Microsoft YaHei',sans-serif",
|
|
361
|
+
pfontDisplay:"'Google Sans','Roboto','PingFang SC','Microsoft YaHei',sans-serif",
|
|
362
|
+
prad:'16px',pscale:1,peye:'.11em',plh:1.6,pgap:1,pw:700,pletter:'-.03em'},
|
|
358
363
|
{id:'apple-mono',name:'优雅黑白',en:'apple-mono',d:'苹果式极简。大留白、超大字、几乎无彩色,靠排版与留白取胜。',s:'产品发布 / 品牌 / 高管演示',
|
|
359
|
-
|
|
364
|
+
pfontBody:"-apple-system,'SF Pro Text','Helvetica Neue','PingFang SC',sans-serif",
|
|
365
|
+
pfontDisplay:"-apple-system,'SF Pro Display','Helvetica Neue','PingFang SC',sans-serif",
|
|
366
|
+
prad:'20px',pscale:1.22,peye:'.12em',plh:1.75,pgap:1.35,pw:500,pletter:'-.04em'},
|
|
360
367
|
{id:'mckinsey',name:'麦肯锡咨询',en:'mckinsey',d:'结构化、正式、咨询范。衬线标题 + 细线框架 + 高密表格。',s:'战略 / 咨询 / 立项 / 对标',
|
|
361
|
-
|
|
368
|
+
pfontBody:"'Inter','IBM Plex Sans','PingFang SC','Microsoft YaHei',sans-serif",
|
|
369
|
+
pfontDisplay:"Georgia,'Times New Roman','Songti SC','SimSun',serif",
|
|
370
|
+
prad:'6px',pscale:.92,peye:'.14em',plh:1.45,pgap:.78,pw:600,pletter:'-.015em'},
|
|
362
371
|
{id:'brand-red',name:'品牌红',en:'brand-red',d:'以品牌主色红为强调,正式有辨识度。可替换为任意企业品牌色。',s:'企业品牌材料 / 正式汇报 / 对外宣讲',
|
|
363
|
-
|
|
372
|
+
pfontBody:"'HarmonyOS Sans','PingFang SC','Microsoft YaHei',sans-serif",
|
|
373
|
+
pfontDisplay:"'HarmonyOS Sans','PingFang SC','Microsoft YaHei',sans-serif",
|
|
374
|
+
prad:'14px',pscale:1.02,peye:'.12em',plh:1.58,pgap:1,pw:700,pletter:'-.025em'},
|
|
364
375
|
{id:'warm-sand',name:'暖沙金',en:'warm-sand',d:'温暖高级、编辑感/年报感。米白暖底 + 古铜金强调,衬线标题。',s:'年度报告 / 品牌叙事 / 文化建设',
|
|
365
|
-
|
|
376
|
+
pfontBody:"'Inter','Source Han Sans','PingFang SC','Microsoft YaHei',sans-serif",
|
|
377
|
+
pfontDisplay:"Georgia,'Playfair Display','Songti SC','STSong','SimSun',serif",
|
|
378
|
+
prad:'12px',pscale:1.05,peye:'.13em',plh:1.72,pgap:1.2,pw:600,pletter:'-.01em'},
|
|
366
379
|
{id:'deep-teal',name:'墨绿',en:'deep-teal',d:'沉稳、可信赖。冷灰底 + 深青强调。',s:'金融 / 风控 / ESG / 审计',
|
|
367
|
-
|
|
380
|
+
pfontBody:"'Inter','Source Han Sans','PingFang SC','Microsoft YaHei',sans-serif",
|
|
381
|
+
pfontDisplay:"'Inter','Source Han Sans','PingFang SC','Microsoft YaHei',sans-serif",
|
|
382
|
+
prad:'12px',pscale:1,peye:'.11em',plh:1.58,pgap:1,pw:700,pletter:'-.028em'},
|
|
368
383
|
{id:'graphite-dark',name:'石墨深灰',en:'graphite-dark',
|
|
369
384
|
d:'深色优先的沉浸石墨风:近黑石墨面板 + 亮蓝青强调,默认即深色;浅色变体(中性石墨纸灰 + 同系蓝青)为打印/外发辅助。',s:'产品发布会 / 指挥中心大屏 / 深色优先',
|
|
370
385
|
darkMain:true,das:'#132841',ds2:'#171d24',daon:'#07182b',
|
|
371
|
-
|
|
386
|
+
pfontBody:"'Inter','SF Pro Text','PingFang SC','Microsoft YaHei',sans-serif",
|
|
387
|
+
pfontDisplay:"'Inter','SF Pro Display','PingFang SC',sans-serif",
|
|
388
|
+
prad:'14px',pscale:.98,peye:'.1em',plh:1.5,pgap:.85,pw:700,pletter:'-.03em'},
|
|
372
389
|
{id:'indigo-violet',name:'靛紫',en:'indigo-violet',d:'创新、前沿。冷白底 + 靛紫强调。',s:'AI / 科技 / 研发 / 前沿技术',
|
|
373
|
-
|
|
390
|
+
pfontBody:"'Inter','SF Pro Text','PingFang SC','Microsoft YaHei',sans-serif",
|
|
391
|
+
pfontDisplay:"'Inter','SF Pro Text','PingFang SC','Microsoft YaHei',sans-serif",
|
|
392
|
+
prad:'16px',pscale:1.02,peye:'.12em',plh:1.6,pgap:1,pw:700,pletter:'-.032em'},
|
|
374
393
|
{id:'spectrum',name:'光谱彩色',en:'spectrum',
|
|
375
394
|
d:'中性结构 + 5 色数据色板(c1–c5):图表、图例、小段标签出彩,页面骨架安静。强调色 = 主系列色 c1 的深化版(保按钮对比度),彩色只属于数据系列。',s:'数据密集汇报 / 运营复盘 / 大屏看板',
|
|
376
|
-
|
|
395
|
+
pfontBody:"'Inter','SF Pro Text','PingFang SC','Microsoft YaHei',sans-serif",
|
|
396
|
+
pfontDisplay:"'Inter','SF Pro Text','PingFang SC','Microsoft YaHei',sans-serif",
|
|
397
|
+
prad:'14px',pscale:.95,peye:'.1em',plh:1.48,pgap:.8,pw:700,pletter:'-.03em'},
|
|
377
398
|
/* ── 新增风格族 ── */
|
|
378
399
|
|
|
379
400
|
];
|
|
@@ -410,7 +431,7 @@ var MODE_TITLES={
|
|
|
410
431
|
};
|
|
411
432
|
|
|
412
433
|
/* 三模式标题字号差异:演示大字疏朗 / 研究密排 / 架构中等——直观传达密度差 */
|
|
413
|
-
var MODE_HSIZE={presentation:
|
|
434
|
+
var MODE_HSIZE={presentation:24,research:17,architecture:20};
|
|
414
435
|
|
|
415
436
|
var curMode='presentation';
|
|
416
437
|
var picked={}; /* mode -> styleId */
|
|
@@ -437,7 +458,8 @@ function pvBody(s,mode){
|
|
|
437
458
|
'<div class="pv__dot" style="background:var(--ps3)"></div>'+
|
|
438
459
|
'<div class="pv__pager">3 / 12</div></div></div>';
|
|
439
460
|
var eyebrow='<div class="pv__eyebrow">'+(mode==='research'?'03 · 域间差异':(mode==='architecture'?'01 · 总体架构':'01 · 范式跃迁'))+'</div>';
|
|
440
|
-
var
|
|
461
|
+
var hs=Math.round(MODE_HSIZE[mode]*(s.pscale!=null?s.pscale:1));
|
|
462
|
+
var h='<div class="pv__h" style="font-size:'+hs+'px">'+t+'</div>';
|
|
441
463
|
var pal=s.colors;
|
|
442
464
|
|
|
443
465
|
if(mode==='presentation'){
|
|
@@ -511,7 +533,15 @@ function cardHtml(s,mode){
|
|
|
511
533
|
var dkLight='--dbg:'+s.pbg+';--dtxt:'+s.ptxt+';--dtxt2:'+s.ptxt2+';--da:'+s.pa+';--ds3:'+s.ps3+';--dbd:'+s.pbd+';';
|
|
512
534
|
var dkDark='--dbg:'+s.dbg+';--dtxt:'+s.dtxt+';--dtxt2:'+s.dtxt2+';--da:'+s.da+';--ds3:'+s.ds3+';--dbd:'+s.dbd+';';
|
|
513
535
|
var dkVars=(s.darkMain?dkLight:dkDark);
|
|
514
|
-
var font=';--pfont:'+s.
|
|
536
|
+
var font=';--pfont-body:'+(s.pfontBody||'sans-serif').replace(/'/g,''')+
|
|
537
|
+
';--pfont-display:'+(s.pfontDisplay||s.pfontBody||'sans-serif').replace(/'/g,''')+
|
|
538
|
+
';'+(s.prad?'--prad:'+s.prad+';':'')+
|
|
539
|
+
(s.pscale!=null?'--pscale:'+s.pscale+';':'')+
|
|
540
|
+
(s.peye?'--peye:'+s.peye+';':'')+
|
|
541
|
+
(s.plh?'--plh:'+s.plh+';':'')+
|
|
542
|
+
(s.pgap!=null?'--pgap:'+s.pgap+';':'')+
|
|
543
|
+
(s.pw?'--pw:'+s.pw+';':'')+
|
|
544
|
+
(s.pletter?'--pletter:'+s.pletter+';':'');
|
|
515
545
|
return '<article class="preset'+(s.darkMain?' dm':'')+'" data-style="'+s.id+'" style="'+pvVars+dkVars+font+'">'+
|
|
516
546
|
'<div class="pv">'+pvBody(s,mode)+'</div>'+dkStrip(s,mode)+
|
|
517
547
|
'<div class="meta"><div class="meta__name"><span class="sw"></span>'+s.name+
|