@taloswork/ose-shared 0.1.12 → 0.1.14
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/package.json +3 -3
- package/skills/document/SKILL.md +33 -45
- package/skills/document/bin/deck-build.cjs +10482 -272
- package/skills/document/bin/deck-chart.cjs +21 -12
- package/skills/document/bin/deck-plan.cjs +11654 -42
- package/skills/document/bin/deck-qa.cjs +107 -23
- package/skills/document/bin/deck-scenario.cjs +20 -3
- package/skills/document/bin/deck-styles.cjs +1604 -0
- package/skills/document/bin/doc-convert.cjs +200 -260
- package/skills/document/bin/doc-fill.cjs +140 -19
- package/skills/document/bin/doc-gen.cjs +1909 -282
- package/skills/document/bin/doc-scan.cjs +6 -1
- package/skills/document/bin/doc-text.cjs +6 -1
- package/skills/document/bin/doc-validate.cjs +139 -54
- package/skills/document/bin/docx-defaults.cjs +9907 -0
- package/skills/document/bin/html2pptx.cjs +35960 -31973
- package/skills/document/bin/pdf-form.cjs +14 -1
- package/skills/document/bin/pdf-images.cjs +6 -1
- package/skills/document/bin/pdf-ops.cjs +14 -1
- package/skills/document/bin/pdf-render.cjs +6 -1
- package/skills/document/bin/pdf-tables.cjs +6 -1
- package/skills/document/bin/pptx-notes.cjs +10038 -0
- package/skills/document/bin/pptx-tokenize.cjs +19 -4
- package/skills/document/bin/template-skin.cjs +10915 -0
- package/skills/document/bin-reference.md +15 -10
- package/skills/document/catalog.json +33 -32
- package/skills/document/content-pipeline.md +79 -44
- package/skills/document/deck-design.md +55 -32
- package/skills/document/generated-visuals.md +99 -0
- package/skills/document/layouts/MAINTAINERS.md +33 -0
- package/skills/document/layouts/README.md +20 -20
- package/skills/document/layouts/big-stat.tpl +1 -1
- package/skills/document/layouts/capacity.json +1 -1
- package/skills/document/layouts/cards-3.tpl +1 -1
- package/skills/document/layouts/chart-full.tpl +1 -1
- package/skills/document/layouts/chart-kpi.tpl +1 -1
- package/skills/document/layouts/comparison.tpl +1 -1
- package/skills/document/layouts/data-table.tpl +1 -1
- package/skills/document/layouts/funnel.tpl +1 -1
- package/skills/document/layouts/gantt.tpl +1 -1
- package/skills/document/layouts/hub-flow.tpl +4 -0
- package/skills/document/layouts/icon-row.tpl +1 -1
- package/skills/document/layouts/image-grid.tpl +1 -1
- package/skills/document/layouts/matrix-2x2.tpl +1 -1
- package/skills/document/layouts/mock-qa.tpl +4 -0
- package/skills/document/layouts/profiles.json +2 -2
- package/skills/document/layouts/pyramid.tpl +1 -1
- package/skills/document/layouts/radar.tpl +1 -1
- package/skills/document/layouts/ring-progress.tpl +1 -1
- package/skills/document/layouts/slots.json +1 -1
- package/skills/document/layouts/steps-vertical.tpl +1 -1
- package/skills/document/layouts/steps.tpl +1 -1
- package/skills/document/layouts/three-kpi.tpl +1 -1
- package/skills/document/layouts/timeline.tpl +1 -1
- package/skills/document/layouts/toc-panel.tpl +1 -1
- package/skills/document/layouts/two-kpi.tpl +2 -2
- package/skills/document/layouts/versus.tpl +1 -1
- package/skills/document/packs/README.md +1 -1
- package/skills/document/pdf.md +13 -0
- package/skills/document/rewrite.md +23 -8
- package/skills/document/scenarios.json +19 -2
- package/skills/document/scenarios.schema.json +1 -0
- package/skills/document/styles/_backdrops/rimlight.html +3 -2
- package/skills/document/styles/_contract-defaults.css +6 -1
- package/skills/document/styles/_samples/_groups/biz-premium.webp +0 -0
- package/skills/document/styles/_samples/mckinsey.webp +0 -0
- package/skills/document/styles/mckinsey/backdrop.html +7 -5
- package/skills/grill-me/SKILL.md +6 -0
- package/skills/grill-me/agents/openai.yaml +5 -0
- package/skills/grilling/SKILL.md +28 -0
- package/skills/grilling/agents/openai.yaml +3 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
<!-- layouts/cards-3 — structure-only (paint via styles/<skin>/skin.css). data-layout drives P1/P2/P3 + dedup. -->
|
|
2
2
|
<section class="slide" data-layout="cards-3" style="position:relative;width:1280px;height:720px;overflow:hidden"><div class="slide-backdrop"></div><div class="eyebrow-row" style="position:absolute;left:calc(96px * var(--space-scale,1));top:132px;display:flex;align-items:center;gap:14px"><span class="accent-bar" style="width:30px;height:1px;display:inline-block"></span><span class="eyebrow" style="font-size:calc(13px * var(--type-scale,1));letter-spacing:.28em">{{eyebrow|OVERVIEW}}</span></div><h2 class="deck-title" style="position:absolute;left:calc(92px * var(--space-scale,1));top:158px;font-size:calc(48px * var(--type-scale,1));letter-spacing:-.4px">{{title|三个要点}}</h2>
|
|
3
3
|
<div class="card-grid" style="position:absolute;left:calc(96px * var(--space-scale,1));right:calc(96px * var(--space-scale,1));top:290px;display:grid;grid-template-columns:1fr 1fr 1fr;gap:24px"><div class="card" style="position:relative;padding:32px 34px;min-height:180px"><span class="card-rail" style="position:absolute;left:0;top:28px;width:3px;height:40px;border-radius:2px"></span><div style="display:flex;align-items:center;gap:10px"><span class="card-dot" style="width:7px;height:7px;border-radius:50%;display:inline-block"></span><span class="card-idx" style="font-size:calc(12px * var(--type-scale,1));letter-spacing:.2em">01</span></div><div class="card-title" style="font-size:calc(23px * var(--type-scale,1));font-weight:700;margin-top:14px">{{card1_title|要点标题}}</div><p class="card-body" style="font-size:calc(15.5px * var(--type-scale,1));line-height:1.6;margin-top:10px">{{card1_body|一句说明,替换为真实内容。}}</p></div><div class="card" style="position:relative;padding:32px 34px;min-height:180px"><span class="card-rail" style="position:absolute;left:0;top:28px;width:3px;height:40px;border-radius:2px"></span><div style="display:flex;align-items:center;gap:10px"><span class="card-dot" style="width:7px;height:7px;border-radius:50%;display:inline-block"></span><span class="card-idx" style="font-size:calc(12px * var(--type-scale,1));letter-spacing:.2em">02</span></div><div class="card-title" style="font-size:calc(23px * var(--type-scale,1));font-weight:700;margin-top:14px">{{card2_title|要点标题}}</div><p class="card-body" style="font-size:calc(15.5px * var(--type-scale,1));line-height:1.6;margin-top:10px">{{card2_body|一句说明,替换为真实内容。}}</p></div><div class="card" style="position:relative;padding:32px 34px;min-height:180px"><span class="card-rail" style="position:absolute;left:0;top:28px;width:3px;height:40px;border-radius:2px"></span><div style="display:flex;align-items:center;gap:10px"><span class="card-dot" style="width:7px;height:7px;border-radius:50%;display:inline-block"></span><span class="card-idx" style="font-size:calc(12px * var(--type-scale,1));letter-spacing:.2em">03</span></div><div class="card-title" style="font-size:calc(23px * var(--type-scale,1));font-weight:700;margin-top:14px">{{card3_title|要点标题}}</div><p class="card-body" style="font-size:calc(15.5px * var(--type-scale,1));line-height:1.6;margin-top:10px">{{card3_body|一句说明,替换为真实内容。}}</p></div></div>
|
|
4
|
-
<div class="rule rule-foot" style="position:absolute;left:calc(96px * var(--space-scale,1));right:calc(96px * var(--space-scale,1));bottom:40px;height:1px"></div><div class="deck-footer" style="position:absolute;left:calc(96px * var(--space-scale,1));bottom:17px;font-size:calc(12px * var(--type-scale,1));letter-spacing:.1em">{{footer|报告标题 / 章节}}</div><div class="deck-pageno" style="position:absolute;right:calc(96px * var(--space-scale,1));bottom:17px;font-size:calc(12px * var(--type-scale,1))">{{pageno|01}}</div></section>
|
|
4
|
+
<p class="deck-subhead" style="position:absolute;left:calc(96px * var(--space-scale,1));right:calc(96px * var(--space-scale,1));top:246px;font-size:calc(16px * var(--type-scale,1));line-height:1.5">{{subhead|}}</p><p class="deck-takeaway" style="position:absolute;left:calc(96px * var(--space-scale,1));right:calc(96px * var(--space-scale,1));bottom:56px;padding:4px 0 4px 14px;font-size:calc(16px * var(--type-scale,1));line-height:1.5;font-weight:600">{{takeaway|}}</p><div class="rule rule-foot" style="position:absolute;left:calc(96px * var(--space-scale,1));right:calc(96px * var(--space-scale,1));bottom:40px;height:1px"></div><div class="deck-footer" style="position:absolute;left:calc(96px * var(--space-scale,1));bottom:17px;font-size:calc(12px * var(--type-scale,1));letter-spacing:.1em">{{footer|报告标题 / 章节}}</div><div class="deck-pageno" style="position:absolute;right:calc(96px * var(--space-scale,1));bottom:17px;font-size:calc(12px * var(--type-scale,1))">{{pageno|01}}</div></section>
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
<!-- layouts/chart-full — structure-only variant (paint via skin). reuses class contract, no skin change. -->
|
|
2
2
|
<section class="slide" data-layout="chart-full" style="position:relative;width:1280px;height:720px;overflow:hidden"><div class="slide-backdrop"></div><div class="eyebrow-row" style="position:absolute;left:calc(96px * var(--space-scale,1));top:132px;display:flex;align-items:center;gap:14px"><span class="accent-bar" style="width:30px;height:1px;display:inline-block"></span><span class="eyebrow" style="font-size:calc(13px * var(--type-scale,1));letter-spacing:.28em">{{eyebrow|TREND}}</span></div><h2 class="deck-title" style="position:absolute;left:calc(92px * var(--space-scale,1));top:158px;font-size:calc(48px * var(--type-scale,1));letter-spacing:-.4px">{{title|增长趋势}}</h2>
|
|
3
|
-
<div class="chart" style="position:absolute;left:80px;right:80px;top:238px;height:316px"><div class="talos-chart" style="width:100%;height:100%" data-chart='{"type":"bar","labels":["2021","2022","2023","2024","2025"],"series":[{"name":"数值","values":[100,180,290,430,585]}],"colors":["__ACCENT__"],"axisColor":"__AXIS__"}'></div></div><div style="position:absolute;left:calc(96px * var(--space-scale,1));top:584px;display:flex;align-items:baseline;gap:16px"><span class="accent-bar" style="width:26px;height:3px;display:inline-block;position:relative;top:-4px"></span><div class="stat-lead" style="font-size:calc(22px * var(--type-scale,1));font-weight:700">{{lead|五年增长 5.8×,复合增速 55%}}</div></div><div class="kpi-label" style="position:absolute;right:calc(96px * var(--space-scale,1));top:588px;font-size:calc(14px * var(--type-scale,1))">{{source|数据来源:替换为真实出处}}</div>
|
|
3
|
+
<div class="chart" style="position:absolute;left:calc(80px * var(--space-scale,1));right:calc(80px * var(--space-scale,1));top:238px;height:316px"><div class="talos-chart" style="width:100%;height:100%" data-chart='{"type":"bar","labels":["2021","2022","2023","2024","2025"],"series":[{"name":"数值","values":[100,180,290,430,585]}],"colors":["__ACCENT__"],"axisColor":"__AXIS__"}'></div></div><div style="position:absolute;left:calc(96px * var(--space-scale,1));top:584px;display:flex;align-items:baseline;gap:16px"><span class="accent-bar" style="width:26px;height:3px;display:inline-block;position:relative;top:-4px"></span><div class="stat-lead" style="font-size:calc(22px * var(--type-scale,1));font-weight:700">{{lead|五年增长 5.8×,复合增速 55%}}</div></div><div class="kpi-label" style="position:absolute;right:calc(96px * var(--space-scale,1));top:588px;font-size:calc(14px * var(--type-scale,1))">{{source|数据来源:替换为真实出处}}</div>
|
|
4
4
|
<div class="rule rule-foot" style="position:absolute;left:calc(96px * var(--space-scale,1));right:calc(96px * var(--space-scale,1));bottom:40px;height:1px"></div><div class="deck-footer" style="position:absolute;left:calc(96px * var(--space-scale,1));bottom:17px;font-size:calc(12px * var(--type-scale,1));letter-spacing:.1em">{{footer|报告标题 / 章节}}</div><div class="deck-pageno" style="position:absolute;right:calc(96px * var(--space-scale,1));bottom:17px;font-size:calc(12px * var(--type-scale,1))">{{pageno|01}}</div></section>
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
<!-- layouts/chart-kpi — structure-only (paint via styles/<skin>/skin.css). data-layout drives P1/P2/P3 + dedup. -->
|
|
2
2
|
<section class="slide" data-layout="chart-kpi" style="position:relative;width:1280px;height:720px;overflow:hidden"><div class="slide-backdrop"></div><div class="eyebrow-row" style="position:absolute;left:calc(96px * var(--space-scale,1));top:132px;display:flex;align-items:center;gap:14px"><span class="accent-bar" style="width:30px;height:1px;display:inline-block"></span><span class="eyebrow" style="font-size:calc(13px * var(--type-scale,1));letter-spacing:.28em">{{eyebrow|PERFORMANCE}}</span></div><h2 class="deck-title" style="position:absolute;left:calc(92px * var(--space-scale,1));top:158px;font-size:calc(48px * var(--type-scale,1));letter-spacing:-.4px">{{title|吞吐量逐季提升}}</h2>
|
|
3
|
-
<div class="chart" style="position:absolute;left:80px;top:250px;width:700px;height:370px"><div class="talos-chart" style="width:100%;height:100%" data-chart='{"type":"bar","labels":["Q1","Q2","Q3","Q4","Q5"],"series":[{"name":"数值","values":[42,58,71,88,100]}],"colors":["__ACCENT__"],"axisColor":"__AXIS__"}'></div></div><div style="position:absolute;right:calc(96px * var(--space-scale,1));top:260px;width:280px"><div class="kpi" style="position:relative;padding-left:18px;margin-bottom:36px"><span class="accent-bar" style="position:absolute;left:0;top:6px;width:4px;height:44px"></span><div class="kpi-num" style="font-size:calc(48px * var(--type-scale,1));font-weight:800">{{kpi1_num|100}}<span style="font-size:calc(22px * var(--type-scale,1))">{{kpi1_unit| 单位}}</span></div><div class="kpi-label" style="font-size:calc(14px * var(--type-scale,1))">{{kpi1_label|关键指标一}}</div></div><div class="kpi" style="position:relative;padding-left:18px;margin-bottom:0px"><span class="accent-bar" style="position:absolute;left:0;top:6px;width:4px;height:44px"></span><div class="kpi-num" style="font-size:calc(48px * var(--type-scale,1));font-weight:800">{{kpi2_num|99.9}}<span style="font-size:calc(22px * var(--type-scale,1))">{{kpi2_unit| %}}</span></div><div class="kpi-label" style="font-size:calc(14px * var(--type-scale,1))">{{kpi2_label|关键指标二}}</div></div></div>
|
|
3
|
+
<div class="chart" style="position:absolute;left:calc(80px * var(--space-scale,1));top:250px;width:700px;height:370px"><div class="talos-chart" style="width:100%;height:100%" data-chart='{"type":"bar","labels":["Q1","Q2","Q3","Q4","Q5"],"series":[{"name":"数值","values":[42,58,71,88,100]}],"colors":["__ACCENT__"],"axisColor":"__AXIS__"}'></div></div><div style="position:absolute;right:calc(96px * var(--space-scale,1));top:260px;width:280px"><div class="kpi" style="position:relative;padding-left:18px;margin-bottom:36px"><span class="accent-bar" style="position:absolute;left:0;top:6px;width:4px;height:44px"></span><div class="kpi-num" style="font-size:calc(48px * var(--type-scale,1));font-weight:800">{{kpi1_num|100}}<span style="font-size:calc(22px * var(--type-scale,1))">{{kpi1_unit| 单位}}</span></div><div class="kpi-label" style="font-size:calc(14px * var(--type-scale,1))">{{kpi1_label|关键指标一}}</div></div><div class="kpi" style="position:relative;padding-left:18px;margin-bottom:0px"><span class="accent-bar" style="position:absolute;left:0;top:6px;width:4px;height:44px"></span><div class="kpi-num" style="font-size:calc(48px * var(--type-scale,1));font-weight:800">{{kpi2_num|99.9}}<span style="font-size:calc(22px * var(--type-scale,1))">{{kpi2_unit| %}}</span></div><div class="kpi-label" style="font-size:calc(14px * var(--type-scale,1))">{{kpi2_label|关键指标二}}</div></div></div>
|
|
4
4
|
<div class="rule rule-foot" style="position:absolute;left:calc(96px * var(--space-scale,1));right:calc(96px * var(--space-scale,1));bottom:40px;height:1px"></div><div class="deck-footer" style="position:absolute;left:calc(96px * var(--space-scale,1));bottom:17px;font-size:calc(12px * var(--type-scale,1));letter-spacing:.1em">{{footer|报告标题 / 章节}}</div><div class="deck-pageno" style="position:absolute;right:calc(96px * var(--space-scale,1));bottom:17px;font-size:calc(12px * var(--type-scale,1))">{{pageno|01}}</div></section>
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
<!-- layouts/comparison — structure-only (paint via styles/<skin>/skin.css). data-layout drives P1/P2/P3 + dedup. -->
|
|
2
2
|
<section class="slide" data-layout="comparison" style="position:relative;width:1280px;height:720px;overflow:hidden"><div class="slide-backdrop"></div><div class="eyebrow-row" style="position:absolute;left:calc(96px * var(--space-scale,1));top:132px;display:flex;align-items:center;gap:14px"><span class="accent-bar" style="width:30px;height:1px;display:inline-block"></span><span class="eyebrow" style="font-size:calc(13px * var(--type-scale,1));letter-spacing:.28em">{{eyebrow|COMPARISON}}</span></div><h2 class="deck-title" style="position:absolute;left:calc(92px * var(--space-scale,1));top:158px;font-size:calc(48px * var(--type-scale,1));letter-spacing:-.4px">{{title|方案对比}}</h2>
|
|
3
3
|
<div class="cmp-grid" style="position:absolute;left:calc(96px * var(--space-scale,1));right:calc(96px * var(--space-scale,1));top:288px;display:grid;grid-template-columns:1fr 1fr 1fr;gap:24px"><div class="cmp-col" style="position:relative;border-radius:var(--card-radius);padding:30px"><div class="cmp-title" style="font-size:calc(22px * var(--type-scale,1));font-weight:700">{{colA_title|方案 A}}</div><div style="margin-top:16px"><div class="cmp-row" style="display:flex;justify-content:space-between;padding:12px 0;border-bottom:1px solid var(--hair)"><span class="cmp-k" style="font-size:calc(15px * var(--type-scale,1))">{{dim1|成本}}</span><span class="cmp-v" style="font-size:calc(15px * var(--type-scale,1));font-weight:600">{{colA_v1|中}}</span></div><div class="cmp-row" style="display:flex;justify-content:space-between;padding:12px 0;border-bottom:1px solid var(--hair)"><span class="cmp-k" style="font-size:calc(15px * var(--type-scale,1))">{{dim2|周期}}</span><span class="cmp-v" style="font-size:calc(15px * var(--type-scale,1));font-weight:600">{{colA_v2|短}}</span></div><div class="cmp-row" style="display:flex;justify-content:space-between;padding:12px 0"><span class="cmp-k" style="font-size:calc(15px * var(--type-scale,1))">{{dim3|风险}}</span><span class="cmp-v" style="font-size:calc(15px * var(--type-scale,1));font-weight:600">{{colA_v3|高}}</span></div></div></div><div class="cmp-col cmp-col--rec" style="position:relative;border-radius:var(--card-radius);padding:30px"><div class="cmp-badge" style="position:absolute;top:-13px;left:28px;font-weight:700;font-size:calc(12px * var(--type-scale,1));letter-spacing:.08em;border-radius:999px;padding:5px 14px">{{badge|✓ 推荐}}</div><div class="cmp-title" style="font-size:calc(22px * var(--type-scale,1));font-weight:700">{{colB_title|方案 B}}</div><div style="margin-top:16px"><div class="cmp-row" style="display:flex;justify-content:space-between;padding:12px 0;border-bottom:1px solid var(--hair)"><span class="cmp-k" style="font-size:calc(15px * var(--type-scale,1))">{{dim1|成本}}</span><span class="cmp-v" style="font-size:calc(15px * var(--type-scale,1));font-weight:600">{{colB_v1|低}}</span></div><div class="cmp-row" style="display:flex;justify-content:space-between;padding:12px 0;border-bottom:1px solid var(--hair)"><span class="cmp-k" style="font-size:calc(15px * var(--type-scale,1))">{{dim2|周期}}</span><span class="cmp-v" style="font-size:calc(15px * var(--type-scale,1));font-weight:600">{{colB_v2|中}}</span></div><div class="cmp-row" style="display:flex;justify-content:space-between;padding:12px 0"><span class="cmp-k" style="font-size:calc(15px * var(--type-scale,1))">{{dim3|风险}}</span><span class="cmp-v" style="font-size:calc(15px * var(--type-scale,1));font-weight:600">{{colB_v3|低}}</span></div></div></div><div class="cmp-col" style="position:relative;border-radius:var(--card-radius);padding:30px"><div class="cmp-title" style="font-size:calc(22px * var(--type-scale,1));font-weight:700">{{colC_title|方案 C}}</div><div style="margin-top:16px"><div class="cmp-row" style="display:flex;justify-content:space-between;padding:12px 0;border-bottom:1px solid var(--hair)"><span class="cmp-k" style="font-size:calc(15px * var(--type-scale,1))">{{dim1|成本}}</span><span class="cmp-v" style="font-size:calc(15px * var(--type-scale,1));font-weight:600">{{colC_v1|高}}</span></div><div class="cmp-row" style="display:flex;justify-content:space-between;padding:12px 0;border-bottom:1px solid var(--hair)"><span class="cmp-k" style="font-size:calc(15px * var(--type-scale,1))">{{dim2|周期}}</span><span class="cmp-v" style="font-size:calc(15px * var(--type-scale,1));font-weight:600">{{colC_v2|长}}</span></div><div class="cmp-row" style="display:flex;justify-content:space-between;padding:12px 0"><span class="cmp-k" style="font-size:calc(15px * var(--type-scale,1))">{{dim3|风险}}</span><span class="cmp-v" style="font-size:calc(15px * var(--type-scale,1));font-weight:600">{{colC_v3|中}}</span></div></div></div></div>
|
|
4
|
-
<div class="rule rule-foot" style="position:absolute;left:calc(96px * var(--space-scale,1));right:calc(96px * var(--space-scale,1));bottom:40px;height:1px"></div><div class="deck-footer" style="position:absolute;left:calc(96px * var(--space-scale,1));bottom:17px;font-size:calc(12px * var(--type-scale,1));letter-spacing:.1em">{{footer|报告标题 / 章节}}</div><div class="deck-pageno" style="position:absolute;right:calc(96px * var(--space-scale,1));bottom:17px;font-size:calc(12px * var(--type-scale,1))">{{pageno|01}}</div></section>
|
|
4
|
+
<p class="deck-takeaway" style="position:absolute;left:calc(96px * var(--space-scale,1));right:calc(96px * var(--space-scale,1));bottom:56px;padding:4px 0 4px 14px;font-size:calc(16px * var(--type-scale,1));line-height:1.5;font-weight:600">{{takeaway|}}</p><div class="rule rule-foot" style="position:absolute;left:calc(96px * var(--space-scale,1));right:calc(96px * var(--space-scale,1));bottom:40px;height:1px"></div><div class="deck-footer" style="position:absolute;left:calc(96px * var(--space-scale,1));bottom:17px;font-size:calc(12px * var(--type-scale,1));letter-spacing:.1em">{{footer|报告标题 / 章节}}</div><div class="deck-pageno" style="position:absolute;right:calc(96px * var(--space-scale,1));bottom:17px;font-size:calc(12px * var(--type-scale,1))">{{pageno|01}}</div></section>
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
<!-- layouts/data-table — structure-only variant (paint via skin). -->
|
|
2
2
|
<section class="slide" data-layout="data-table" style="position:relative;width:1280px;height:720px;overflow:hidden"><div class="slide-backdrop"></div><div class="eyebrow-row" style="position:absolute;left:calc(96px * var(--space-scale,1));top:132px;display:flex;align-items:center;gap:14px"><span class="accent-bar" style="width:30px;height:1px;display:inline-block"></span><span class="eyebrow" style="font-size:calc(13px * var(--type-scale,1));letter-spacing:.28em">{{eyebrow|DATA}}</span></div><h2 class="deck-title" style="position:absolute;left:calc(92px * var(--space-scale,1));top:158px;font-size:calc(48px * var(--type-scale,1));letter-spacing:-.4px">{{title|关键数据一览}}</h2>
|
|
3
3
|
<div style="position:absolute;left:calc(96px * var(--space-scale,1));right:calc(96px * var(--space-scale,1));top:290px"><div class="dt-head" style="display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;padding:16px 22px"><div class="dt-key" style="font-size:calc(16px * var(--type-scale,1));font-weight:700">{{col0|维度}}</div><div class="dt-cell" style="font-size:calc(16px * var(--type-scale,1));font-weight:700;text-align:right">{{col1|方案 A}}</div><div class="dt-cell" style="font-size:calc(16px * var(--type-scale,1));font-weight:700;text-align:right">{{col2|方案 B}}</div><div class="dt-cell" style="font-size:calc(16px * var(--type-scale,1));font-weight:700;text-align:right">{{col3|方案 C}}</div></div><div class="dt-row" style="display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;padding:16px 22px"><div class="dt-key" style="font-size:calc(16px * var(--type-scale,1));font-weight:600">{{r1_key|成本}}</div><div class="dt-cell" style="font-size:calc(16px * var(--type-scale,1));text-align:right">{{r1c1|中}}</div><div class="dt-em" style="font-size:calc(16px * var(--type-scale,1));text-align:right">{{r1c2|低}}</div><div class="dt-cell" style="font-size:calc(16px * var(--type-scale,1));text-align:right">{{r1c3|高}}</div></div><div class="dt-row" style="display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;padding:16px 22px"><div class="dt-key" style="font-size:calc(16px * var(--type-scale,1));font-weight:600">{{r2_key|周期}}</div><div class="dt-cell" style="font-size:calc(16px * var(--type-scale,1));text-align:right">{{r2c1|短}}</div><div class="dt-em" style="font-size:calc(16px * var(--type-scale,1));text-align:right">{{r2c2|中}}</div><div class="dt-cell" style="font-size:calc(16px * var(--type-scale,1));text-align:right">{{r2c3|长}}</div></div><div class="dt-row" style="display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;padding:16px 22px"><div class="dt-key" style="font-size:calc(16px * var(--type-scale,1));font-weight:600">{{r3_key|风险}}</div><div class="dt-cell" style="font-size:calc(16px * var(--type-scale,1));text-align:right">{{r3c1|高}}</div><div class="dt-em" style="font-size:calc(16px * var(--type-scale,1));text-align:right">{{r3c2|低}}</div><div class="dt-cell" style="font-size:calc(16px * var(--type-scale,1));text-align:right">{{r3c3|中}}</div></div><div class="dt-row" style="display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;padding:16px 22px"><div class="dt-key" style="font-size:calc(16px * var(--type-scale,1));font-weight:600">{{r4_key|收益}}</div><div class="dt-cell" style="font-size:calc(16px * var(--type-scale,1));text-align:right">{{r4c1|中}}</div><div class="dt-em" style="font-size:calc(16px * var(--type-scale,1));text-align:right">{{r4c2|高}}</div><div class="dt-cell" style="font-size:calc(16px * var(--type-scale,1));text-align:right">{{r4c3|中}}</div></div></div>
|
|
4
|
-
<div class="rule rule-foot" style="position:absolute;left:calc(96px * var(--space-scale,1));right:calc(96px * var(--space-scale,1));bottom:40px;height:1px"></div><div class="deck-footer" style="position:absolute;left:calc(96px * var(--space-scale,1));bottom:17px;font-size:calc(12px * var(--type-scale,1));letter-spacing:.1em">{{footer|报告标题 / 章节}}</div><div class="deck-pageno" style="position:absolute;right:calc(96px * var(--space-scale,1));bottom:17px;font-size:calc(12px * var(--type-scale,1))">{{pageno|01}}</div></section>
|
|
4
|
+
<p class="deck-subhead" style="position:absolute;left:calc(96px * var(--space-scale,1));right:calc(96px * var(--space-scale,1));top:246px;font-size:calc(16px * var(--type-scale,1));line-height:1.5">{{subhead|}}</p><p class="deck-takeaway" style="position:absolute;left:calc(96px * var(--space-scale,1));right:calc(96px * var(--space-scale,1));bottom:56px;padding:4px 0 4px 14px;font-size:calc(16px * var(--type-scale,1));line-height:1.5;font-weight:600">{{takeaway|}}</p><div class="rule rule-foot" style="position:absolute;left:calc(96px * var(--space-scale,1));right:calc(96px * var(--space-scale,1));bottom:40px;height:1px"></div><div class="deck-footer" style="position:absolute;left:calc(96px * var(--space-scale,1));bottom:17px;font-size:calc(12px * var(--type-scale,1));letter-spacing:.1em">{{footer|报告标题 / 章节}}</div><div class="deck-pageno" style="position:absolute;right:calc(96px * var(--space-scale,1));bottom:17px;font-size:calc(12px * var(--type-scale,1))">{{pageno|01}}</div></section>
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
<!-- layouts/funnel — structure-only variant (paint via skin). -->
|
|
2
2
|
<section class="slide" data-layout="funnel" style="position:relative;width:1280px;height:720px;overflow:hidden"><div class="slide-backdrop"></div><div class="eyebrow-row" style="position:absolute;left:calc(96px * var(--space-scale,1));top:132px;display:flex;align-items:center;gap:14px"><span class="accent-bar" style="width:30px;height:1px;display:inline-block"></span><span class="eyebrow" style="font-size:calc(13px * var(--type-scale,1));letter-spacing:.28em">{{eyebrow|FUNNEL}}</span></div><h2 class="deck-title" style="position:absolute;left:calc(92px * var(--space-scale,1));top:158px;font-size:calc(48px * var(--type-scale,1));letter-spacing:-.4px">{{title|转化漏斗}}</h2>
|
|
3
3
|
<div class="card-grid" style="position:absolute;left:0;right:0;top:296px;display:flex;flex-direction:column;align-items:center;gap:12px"><div class="card" style="width:calc(100% * 8);max-width:820px;height:78px;display:flex;align-items:center;justify-content:space-between;padding:0 40px"><span class="card-title" style="font-size:calc(19px * var(--type-scale,1));font-weight:700">{{s1_label|曝光}}</span><span class="dt-em" style="font-size:calc(22px * var(--type-scale,1));font-weight:800">{{s1_val|100%}}</span></div><div class="card" style="width:calc(62% * 8);max-width:820px;height:78px;display:flex;align-items:center;justify-content:space-between;padding:0 40px"><span class="card-title" style="font-size:calc(19px * var(--type-scale,1));font-weight:700">{{s2_label|点击}}</span><span class="dt-em" style="font-size:calc(22px * var(--type-scale,1));font-weight:800">{{s2_val|62%}}</span></div><div class="card" style="width:calc(24% * 8);max-width:820px;height:78px;display:flex;align-items:center;justify-content:space-between;padding:0 40px"><span class="card-title" style="font-size:calc(19px * var(--type-scale,1));font-weight:700">{{s3_label|加购}}</span><span class="dt-em" style="font-size:calc(22px * var(--type-scale,1));font-weight:800">{{s3_val|24%}}</span></div><div class="card" style="width:calc(8% * 8);max-width:820px;height:78px;display:flex;align-items:center;justify-content:space-between;padding:0 40px"><span class="card-title" style="font-size:calc(19px * var(--type-scale,1));font-weight:700">{{s4_label|下单}}</span><span class="dt-em" style="font-size:calc(22px * var(--type-scale,1));font-weight:800">{{s4_val|8%}}</span></div></div><div class="kpi-label" style="position:absolute;right:calc(96px * var(--space-scale,1));top:300px;font-size:calc(14px * var(--type-scale,1));text-align:right">{{rate_label|整体转化率}}<br><span class="dt-em" style="font-size:calc(30px * var(--type-scale,1));font-weight:800">{{rate|8.0%}}</span></div>
|
|
4
|
-
<div class="rule rule-foot" style="position:absolute;left:calc(96px * var(--space-scale,1));right:calc(96px * var(--space-scale,1));bottom:40px;height:1px"></div><div class="deck-footer" style="position:absolute;left:calc(96px * var(--space-scale,1));bottom:17px;font-size:calc(12px * var(--type-scale,1));letter-spacing:.1em">{{footer|报告标题 / 章节}}</div><div class="deck-pageno" style="position:absolute;right:calc(96px * var(--space-scale,1));bottom:17px;font-size:calc(12px * var(--type-scale,1))">{{pageno|01}}</div></section>
|
|
4
|
+
<p class="deck-subhead" style="position:absolute;left:calc(96px * var(--space-scale,1));right:calc(96px * var(--space-scale,1));top:246px;font-size:calc(16px * var(--type-scale,1));line-height:1.5">{{subhead|}}</p><div class="rule rule-foot" style="position:absolute;left:calc(96px * var(--space-scale,1));right:calc(96px * var(--space-scale,1));bottom:40px;height:1px"></div><div class="deck-footer" style="position:absolute;left:calc(96px * var(--space-scale,1));bottom:17px;font-size:calc(12px * var(--type-scale,1));letter-spacing:.1em">{{footer|报告标题 / 章节}}</div><div class="deck-pageno" style="position:absolute;right:calc(96px * var(--space-scale,1));bottom:17px;font-size:calc(12px * var(--type-scale,1))">{{pageno|01}}</div></section>
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
<!-- layouts/gantt — structure-only variant (paint via skin). rows.cols{label} = the timeline header; rows.tasks{name,from,to} = one bar per task, spanning columns from..to (1-based, inclusive) — deck-build derives _left/_width so the bar always matches the numbers. -->
|
|
2
2
|
<section class="slide" data-layout="gantt" style="position:relative;width:1280px;height:720px;overflow:hidden"><div class="slide-backdrop"></div><div class="eyebrow-row" style="position:absolute;left:calc(96px * var(--space-scale,1));top:132px;display:flex;align-items:center;gap:14px"><span class="accent-bar" style="width:30px;height:1px;display:inline-block"></span><span class="eyebrow" style="font-size:calc(13px * var(--type-scale,1));letter-spacing:.28em">{{eyebrow|SCHEDULE}}</span></div><h2 class="deck-title" style="position:absolute;left:calc(92px * var(--space-scale,1));top:158px;font-size:calc(48px * var(--type-scale,1));letter-spacing:-.4px">{{title|项目排期}}</h2>
|
|
3
3
|
<div style="position:absolute;left:calc(96px * var(--space-scale,1));right:calc(96px * var(--space-scale,1));top:284px"><div style="display:grid;grid-template-columns:180px 1fr;align-items:center;padding-bottom:10px"><div></div><div style="display:flex">{{#cols}}<div class="gantt-grid" style="flex:1;font-size:calc(12px * var(--type-scale,1));padding-left:6px;border-left:1px solid var(--hair)">{{label|Q1}}</div>{{/cols}}</div></div>{{#tasks}}<div style="display:grid;grid-template-columns:180px 1fr;align-items:center;height:52px"><div class="dt-key" style="font-size:calc(15px * var(--type-scale,1));font-weight:600">{{name|占位任务}}</div><div class="gantt-track" style="position:relative;height:20px;border-radius:var(--card-radius)"><div class="gantt-bar" style="position:absolute;top:0;bottom:0;left:{{_left|0}}%;width:{{_width|25}}%;border-radius:var(--card-radius)"></div></div></div>{{/tasks}}</div>
|
|
4
|
-
<div class="rule rule-foot" style="position:absolute;left:calc(96px * var(--space-scale,1));right:calc(96px * var(--space-scale,1));bottom:40px;height:1px"></div><div class="deck-footer" style="position:absolute;left:calc(96px * var(--space-scale,1));bottom:17px;font-size:calc(12px * var(--type-scale,1));letter-spacing:.1em">{{footer|报告标题 / 章节}}</div><div class="deck-pageno" style="position:absolute;right:calc(96px * var(--space-scale,1));bottom:17px;font-size:calc(12px * var(--type-scale,1))">{{pageno|01}}</div></section>
|
|
4
|
+
<p class="deck-subhead" style="position:absolute;left:calc(96px * var(--space-scale,1));right:calc(96px * var(--space-scale,1));top:246px;font-size:calc(16px * var(--type-scale,1));line-height:1.5">{{subhead|}}</p><p class="deck-takeaway" style="position:absolute;left:calc(96px * var(--space-scale,1));right:calc(96px * var(--space-scale,1));bottom:56px;padding:4px 0 4px 14px;font-size:calc(16px * var(--type-scale,1));line-height:1.5;font-weight:600">{{takeaway|}}</p><div class="rule rule-foot" style="position:absolute;left:calc(96px * var(--space-scale,1));right:calc(96px * var(--space-scale,1));bottom:40px;height:1px"></div><div class="deck-footer" style="position:absolute;left:calc(96px * var(--space-scale,1));bottom:17px;font-size:calc(12px * var(--type-scale,1));letter-spacing:.1em">{{footer|报告标题 / 章节}}</div><div class="deck-pageno" style="position:absolute;right:calc(96px * var(--space-scale,1));bottom:17px;font-size:calc(12px * var(--type-scale,1))">{{pageno|01}}</div></section>
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
<!-- layouts/hub-flow — structure-only (paint via skin). Several inputs converge on one core, which yields one result: 多源 → 核心 → 产出. -->
|
|
2
|
+
<section class="slide" data-layout="hub-flow" style="position:relative;width:1280px;height:720px;overflow:hidden"><div class="slide-backdrop"></div><div class="eyebrow-row" style="position:absolute;left:calc(96px * var(--space-scale,1));top:132px;display:flex;align-items:center;gap:14px"><span class="accent-bar" style="width:30px;height:1px;display:inline-block"></span><span class="eyebrow" style="font-size:calc(13px * var(--type-scale,1));letter-spacing:.28em">{{eyebrow|HOW IT WORKS}}</span></div><h2 class="deck-title" style="position:absolute;left:calc(92px * var(--space-scale,1));top:158px;font-size:calc(48px * var(--type-scale,1));letter-spacing:-.4px">{{title|从分散输入到一个结果}}</h2>
|
|
3
|
+
<svg width="1280" height="720" viewBox="0 0 1280 720" style="position:absolute;inset:0;pointer-events:none"><g class="hub-link" fill="none" stroke-width="1.5"><line x1="372" y1="334" x2="474" y2="446"/><line x1="372" y1="446" x2="474" y2="446"/><line x1="372" y1="558" x2="474" y2="446"/><line x1="806" y1="446" x2="900" y2="446"/></g></svg><div class="card hub-node" style="position:absolute;left:calc(96px * var(--space-scale,1));width:276px;top:286px;height:96px;padding:16px 22px"><div class="hub-title" style="font-size:calc(18px * var(--type-scale,1));font-weight:700">{{in1_title|来源 1}}</div><p class="card-body" style="font-size:calc(14px * var(--type-scale,1));line-height:1.5;margin-top:4px">{{in1_body|一句说明这类输入。}}</p></div><div class="card hub-node" style="position:absolute;left:calc(96px * var(--space-scale,1));width:276px;top:398px;height:96px;padding:16px 22px"><div class="hub-title" style="font-size:calc(18px * var(--type-scale,1));font-weight:700">{{in2_title|来源 2}}</div><p class="card-body" style="font-size:calc(14px * var(--type-scale,1));line-height:1.5;margin-top:4px">{{in2_body|一句说明这类输入。}}</p></div><div class="card hub-node" style="position:absolute;left:calc(96px * var(--space-scale,1));width:276px;top:510px;height:96px;padding:16px 22px"><div class="hub-title" style="font-size:calc(18px * var(--type-scale,1));font-weight:700">{{in3_title|来源 3}}</div><p class="card-body" style="font-size:calc(14px * var(--type-scale,1));line-height:1.5;margin-top:4px">{{in3_body|一句说明这类输入。}}</p></div><div class="card hub-center" style="position:absolute;left:474px;width:332px;top:330px;height:232px;padding:28px 30px;display:flex;flex-direction:column;justify-content:center;text-align:center"><div class="hub-title" style="font-size:calc(26px * var(--type-scale,1));font-weight:800">{{center_title|核心}}</div><p class="card-body" style="font-size:calc(15px * var(--type-scale,1));line-height:1.55;margin-top:10px">{{center_body|核心做了什么,一到两句。}}</p></div><div class="card" style="position:absolute;left:900px;right:calc(96px * var(--space-scale,1));top:360px;height:172px;padding:24px 26px"><div class="card-title" style="font-size:calc(22px * var(--type-scale,1));font-weight:800">{{out_title|产出}}</div><p class="card-body" style="font-size:calc(14.5px * var(--type-scale,1));line-height:1.55;margin-top:8px">{{out_desc|用户最终得到什么。}}</p></div>
|
|
4
|
+
<p class="deck-subhead" style="position:absolute;left:calc(96px * var(--space-scale,1));right:calc(96px * var(--space-scale,1));top:246px;font-size:calc(16px * var(--type-scale,1));line-height:1.5">{{subhead|}}</p><p class="deck-takeaway" style="position:absolute;left:calc(96px * var(--space-scale,1));right:calc(96px * var(--space-scale,1));bottom:56px;padding:4px 0 4px 14px;font-size:calc(16px * var(--type-scale,1));line-height:1.5;font-weight:600">{{takeaway|}}</p><div class="rule rule-foot" style="position:absolute;left:calc(96px * var(--space-scale,1));right:calc(96px * var(--space-scale,1));bottom:40px;height:1px"></div><div class="deck-footer" style="position:absolute;left:calc(96px * var(--space-scale,1));bottom:17px;font-size:calc(12px * var(--type-scale,1));letter-spacing:.1em">{{footer|报告标题 / 章节}}</div><div class="deck-pageno" style="position:absolute;right:calc(96px * var(--space-scale,1));bottom:17px;font-size:calc(12px * var(--type-scale,1))">{{pageno|01}}</div></section>
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
<!-- layouts/icon-row — structure-only variant (paint via skin). -->
|
|
2
2
|
<section class="slide" data-layout="icon-row" style="position:relative;width:1280px;height:720px;overflow:hidden"><div class="slide-backdrop"></div><div class="eyebrow-row" style="position:absolute;left:calc(96px * var(--space-scale,1));top:132px;display:flex;align-items:center;gap:14px"><span class="accent-bar" style="width:30px;height:1px;display:inline-block"></span><span class="eyebrow" style="font-size:calc(13px * var(--type-scale,1));letter-spacing:.28em">{{eyebrow|CAPABILITIES}}</span></div><h2 class="deck-title" style="position:absolute;left:calc(92px * var(--space-scale,1));top:158px;font-size:calc(48px * var(--type-scale,1));letter-spacing:-.4px">{{title|四大能力}}</h2>
|
|
3
3
|
<div style="position:absolute;left:calc(96px * var(--space-scale,1));right:calc(96px * var(--space-scale,1));top:310px;display:grid;grid-template-columns:repeat(4,1fr);gap:28px"><div style="text-align:center"><div class="step-circle" style="width:96px;height:96px;border-radius:50%;margin:0 auto;display:flex;align-items:center;justify-content:center;font-size:calc(34px * var(--type-scale,1));line-height:1">●</div><div class="step-title" style="font-size:calc(20px * var(--type-scale,1));font-weight:700;margin-top:22px">{{item1_title|能力 01}}</div><p class="step-body" style="font-size:calc(14px * var(--type-scale,1));line-height:1.55;margin-top:8px">{{item1_body|一句说明,替换为真实内容。}}</p></div><div style="text-align:center"><div class="step-circle" style="width:96px;height:96px;border-radius:50%;margin:0 auto;display:flex;align-items:center;justify-content:center;font-size:calc(34px * var(--type-scale,1));line-height:1">▲</div><div class="step-title" style="font-size:calc(20px * var(--type-scale,1));font-weight:700;margin-top:22px">{{item2_title|能力 02}}</div><p class="step-body" style="font-size:calc(14px * var(--type-scale,1));line-height:1.55;margin-top:8px">{{item2_body|一句说明,替换为真实内容。}}</p></div><div style="text-align:center"><div class="step-circle" style="width:96px;height:96px;border-radius:50%;margin:0 auto;display:flex;align-items:center;justify-content:center;font-size:calc(34px * var(--type-scale,1));line-height:1">■</div><div class="step-title" style="font-size:calc(20px * var(--type-scale,1));font-weight:700;margin-top:22px">{{item3_title|能力 03}}</div><p class="step-body" style="font-size:calc(14px * var(--type-scale,1));line-height:1.55;margin-top:8px">{{item3_body|一句说明,替换为真实内容。}}</p></div><div style="text-align:center"><div class="step-circle" style="width:96px;height:96px;border-radius:50%;margin:0 auto;display:flex;align-items:center;justify-content:center;font-size:calc(34px * var(--type-scale,1));line-height:1">◆</div><div class="step-title" style="font-size:calc(20px * var(--type-scale,1));font-weight:700;margin-top:22px">{{item4_title|能力 04}}</div><p class="step-body" style="font-size:calc(14px * var(--type-scale,1));line-height:1.55;margin-top:8px">{{item4_body|一句说明,替换为真实内容。}}</p></div></div>
|
|
4
|
-
<div class="rule rule-foot" style="position:absolute;left:calc(96px * var(--space-scale,1));right:calc(96px * var(--space-scale,1));bottom:40px;height:1px"></div><div class="deck-footer" style="position:absolute;left:calc(96px * var(--space-scale,1));bottom:17px;font-size:calc(12px * var(--type-scale,1));letter-spacing:.1em">{{footer|报告标题 / 章节}}</div><div class="deck-pageno" style="position:absolute;right:calc(96px * var(--space-scale,1));bottom:17px;font-size:calc(12px * var(--type-scale,1))">{{pageno|01}}</div></section>
|
|
4
|
+
<p class="deck-subhead" style="position:absolute;left:calc(96px * var(--space-scale,1));right:calc(96px * var(--space-scale,1));top:246px;font-size:calc(16px * var(--type-scale,1));line-height:1.5">{{subhead|}}</p><p class="deck-takeaway" style="position:absolute;left:calc(96px * var(--space-scale,1));right:calc(96px * var(--space-scale,1));bottom:56px;padding:4px 0 4px 14px;font-size:calc(16px * var(--type-scale,1));line-height:1.5;font-weight:600">{{takeaway|}}</p><div class="rule rule-foot" style="position:absolute;left:calc(96px * var(--space-scale,1));right:calc(96px * var(--space-scale,1));bottom:40px;height:1px"></div><div class="deck-footer" style="position:absolute;left:calc(96px * var(--space-scale,1));bottom:17px;font-size:calc(12px * var(--type-scale,1));letter-spacing:.1em">{{footer|报告标题 / 章节}}</div><div class="deck-pageno" style="position:absolute;right:calc(96px * var(--space-scale,1));bottom:17px;font-size:calc(12px * var(--type-scale,1))">{{pageno|01}}</div></section>
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
<!-- layouts/image-grid — structure-only variant (paint via skin). reuses class contract, no skin change. -->
|
|
2
2
|
<section class="slide" data-layout="image-grid" style="position:relative;width:1280px;height:720px;overflow:hidden"><div class="slide-backdrop"></div><div class="eyebrow-row" style="position:absolute;left:calc(96px * var(--space-scale,1));top:132px;display:flex;align-items:center;gap:14px"><span class="accent-bar" style="width:30px;height:1px;display:inline-block"></span><span class="eyebrow" style="font-size:calc(13px * var(--type-scale,1));letter-spacing:.28em">{{eyebrow|GALLERY}}</span></div><h2 class="deck-title" style="position:absolute;left:calc(92px * var(--space-scale,1));top:158px;font-size:calc(48px * var(--type-scale,1));letter-spacing:-.4px">{{title|三图并列}}</h2>
|
|
3
3
|
<div style="position:absolute;left:calc(96px * var(--space-scale,1));right:calc(96px * var(--space-scale,1));top:284px;display:grid;grid-template-columns:1fr 1fr 1fr;gap:24px"><div><div class="surface" style="height:236px;display:flex;align-items:center;justify-content:center"><span class="surface-label" style="font-size:calc(14px * var(--type-scale,1))">{{img1_label|图 01}}</span></div><div class="card-title" style="font-size:calc(19px * var(--type-scale,1));font-weight:700;margin-top:16px">{{img1_title|图注标题}}</div><p class="card-body" style="font-size:calc(14.5px * var(--type-scale,1));line-height:1.55;margin-top:6px">{{img1_body|一句图注说明,替换为真实内容。}}</p></div><div><div class="surface" style="height:236px;display:flex;align-items:center;justify-content:center"><span class="surface-label" style="font-size:calc(14px * var(--type-scale,1))">{{img2_label|图 02}}</span></div><div class="card-title" style="font-size:calc(19px * var(--type-scale,1));font-weight:700;margin-top:16px">{{img2_title|图注标题}}</div><p class="card-body" style="font-size:calc(14.5px * var(--type-scale,1));line-height:1.55;margin-top:6px">{{img2_body|一句图注说明,替换为真实内容。}}</p></div><div><div class="surface" style="height:236px;display:flex;align-items:center;justify-content:center"><span class="surface-label" style="font-size:calc(14px * var(--type-scale,1))">{{img3_label|图 03}}</span></div><div class="card-title" style="font-size:calc(19px * var(--type-scale,1));font-weight:700;margin-top:16px">{{img3_title|图注标题}}</div><p class="card-body" style="font-size:calc(14.5px * var(--type-scale,1));line-height:1.55;margin-top:6px">{{img3_body|一句图注说明,替换为真实内容。}}</p></div></div>
|
|
4
|
-
<div class="rule rule-foot" style="position:absolute;left:calc(96px * var(--space-scale,1));right:calc(96px * var(--space-scale,1));bottom:40px;height:1px"></div><div class="deck-footer" style="position:absolute;left:calc(96px * var(--space-scale,1));bottom:17px;font-size:calc(12px * var(--type-scale,1));letter-spacing:.1em">{{footer|报告标题 / 章节}}</div><div class="deck-pageno" style="position:absolute;right:calc(96px * var(--space-scale,1));bottom:17px;font-size:calc(12px * var(--type-scale,1))">{{pageno|01}}</div></section>
|
|
4
|
+
<p class="deck-subhead" style="position:absolute;left:calc(96px * var(--space-scale,1));right:calc(96px * var(--space-scale,1));top:246px;font-size:calc(16px * var(--type-scale,1));line-height:1.5">{{subhead|}}</p><p class="deck-takeaway" style="position:absolute;left:calc(96px * var(--space-scale,1));right:calc(96px * var(--space-scale,1));bottom:56px;padding:4px 0 4px 14px;font-size:calc(16px * var(--type-scale,1));line-height:1.5;font-weight:600">{{takeaway|}}</p><div class="rule rule-foot" style="position:absolute;left:calc(96px * var(--space-scale,1));right:calc(96px * var(--space-scale,1));bottom:40px;height:1px"></div><div class="deck-footer" style="position:absolute;left:calc(96px * var(--space-scale,1));bottom:17px;font-size:calc(12px * var(--type-scale,1));letter-spacing:.1em">{{footer|报告标题 / 章节}}</div><div class="deck-pageno" style="position:absolute;right:calc(96px * var(--space-scale,1));bottom:17px;font-size:calc(12px * var(--type-scale,1))">{{pageno|01}}</div></section>
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
<!-- layouts/matrix-2x2 — structure-only variant (paint via skin). reuses class contract, no skin change. -->
|
|
2
2
|
<section class="slide" data-layout="matrix-2x2" style="position:relative;width:1280px;height:720px;overflow:hidden"><div class="slide-backdrop"></div><div class="eyebrow-row" style="position:absolute;left:calc(96px * var(--space-scale,1));top:132px;display:flex;align-items:center;gap:14px"><span class="accent-bar" style="width:30px;height:1px;display:inline-block"></span><span class="eyebrow" style="font-size:calc(13px * var(--type-scale,1));letter-spacing:.28em">{{eyebrow|MATRIX}}</span></div><h2 class="deck-title" style="position:absolute;left:calc(92px * var(--space-scale,1));top:158px;font-size:calc(48px * var(--type-scale,1));letter-spacing:-.4px">{{title|四象限分析}}</h2>
|
|
3
3
|
<div class="kpi-label" style="position:absolute;left:calc(96px * var(--space-scale,1));top:290px;font-size:calc(13px * var(--type-scale,1));letter-spacing:.14em">高 ▲</div><div class="kpi-label" style="position:absolute;left:calc(96px * var(--space-scale,1));bottom:96px;font-size:calc(13px * var(--type-scale,1));letter-spacing:.14em">低</div><div class="kpi-label" style="position:absolute;right:calc(96px * var(--space-scale,1));bottom:64px;font-size:calc(13px * var(--type-scale,1));letter-spacing:.14em">高 ▶</div><div class="card-grid" style="position:absolute;left:150px;right:calc(96px * var(--space-scale,1));top:288px;bottom:96px;display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;gap:18px"><div class="card" style="position:relative;padding:26px 30px"><span class="card-rail" style="position:absolute;left:0;top:26px;width:3px;height:36px;border-radius:2px"></span><div class="card-title" style="font-size:calc(20px * var(--type-scale,1));font-weight:700">{{q1_title|高价值 · 易实现}}</div><p class="card-body" style="font-size:calc(14.5px * var(--type-scale,1));line-height:1.55;margin-top:8px">{{q1_body|象限说明,替换为真实内容。}}</p></div><div class="card" style="position:relative;padding:26px 30px"><span class="card-rail" style="position:absolute;left:0;top:26px;width:3px;height:36px;border-radius:2px"></span><div class="card-title" style="font-size:calc(20px * var(--type-scale,1));font-weight:700">{{q2_title|高价值 · 难实现}}</div><p class="card-body" style="font-size:calc(14.5px * var(--type-scale,1));line-height:1.55;margin-top:8px">{{q2_body|象限说明,替换为真实内容。}}</p></div><div class="card" style="position:relative;padding:26px 30px"><span class="card-rail" style="position:absolute;left:0;top:26px;width:3px;height:36px;border-radius:2px"></span><div class="card-title" style="font-size:calc(20px * var(--type-scale,1));font-weight:700">{{q3_title|低价值 · 易实现}}</div><p class="card-body" style="font-size:calc(14.5px * var(--type-scale,1));line-height:1.55;margin-top:8px">{{q3_body|象限说明,替换为真实内容。}}</p></div><div class="card" style="position:relative;padding:26px 30px"><span class="card-rail" style="position:absolute;left:0;top:26px;width:3px;height:36px;border-radius:2px"></span><div class="card-title" style="font-size:calc(20px * var(--type-scale,1));font-weight:700">{{q4_title|低价值 · 难实现}}</div><p class="card-body" style="font-size:calc(14.5px * var(--type-scale,1));line-height:1.55;margin-top:8px">{{q4_body|象限说明,替换为真实内容。}}</p></div></div>
|
|
4
|
-
<div class="rule rule-foot" style="position:absolute;left:calc(96px * var(--space-scale,1));right:calc(96px * var(--space-scale,1));bottom:40px;height:1px"></div><div class="deck-footer" style="position:absolute;left:calc(96px * var(--space-scale,1));bottom:17px;font-size:calc(12px * var(--type-scale,1));letter-spacing:.1em">{{footer|报告标题 / 章节}}</div><div class="deck-pageno" style="position:absolute;right:calc(96px * var(--space-scale,1));bottom:17px;font-size:calc(12px * var(--type-scale,1))">{{pageno|01}}</div></section>
|
|
4
|
+
<p class="deck-subhead" style="position:absolute;left:calc(96px * var(--space-scale,1));right:calc(96px * var(--space-scale,1));top:246px;font-size:calc(16px * var(--type-scale,1));line-height:1.5">{{subhead|}}</p><div class="rule rule-foot" style="position:absolute;left:calc(96px * var(--space-scale,1));right:calc(96px * var(--space-scale,1));bottom:40px;height:1px"></div><div class="deck-footer" style="position:absolute;left:calc(96px * var(--space-scale,1));bottom:17px;font-size:calc(12px * var(--type-scale,1));letter-spacing:.1em">{{footer|报告标题 / 章节}}</div><div class="deck-pageno" style="position:absolute;right:calc(96px * var(--space-scale,1));bottom:17px;font-size:calc(12px * var(--type-scale,1))">{{pageno|01}}</div></section>
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
<!-- layouts/mock-qa — structure-only (paint via skin). A product's question → cited answer, drawn as an interface sketch (not a screenshot) beside the sources it cites. -->
|
|
2
|
+
<section class="slide" data-layout="mock-qa" style="position:relative;width:1280px;height:720px;overflow:hidden"><div class="slide-backdrop"></div><div class="eyebrow-row" style="position:absolute;left:calc(96px * var(--space-scale,1));top:132px;display:flex;align-items:center;gap:14px"><span class="accent-bar" style="width:30px;height:1px;display:inline-block"></span><span class="eyebrow" style="font-size:calc(13px * var(--type-scale,1));letter-spacing:.28em">{{eyebrow|PRODUCT}}</span></div><h2 class="deck-title" style="position:absolute;left:calc(92px * var(--space-scale,1));top:158px;font-size:calc(48px * var(--type-scale,1));letter-spacing:-.4px">{{title|问一句话,看一条证据链}}</h2>
|
|
3
|
+
<div class="card" style="position:absolute;left:calc(96px * var(--space-scale,1));width:708px;top:286px;height:320px;padding:22px 28px"><div style="display:flex;align-items:center;gap:10px"><span class="card-dot" style="width:7px;height:7px;border-radius:50%;display:inline-block"></span><span class="card-body" style="font-size:calc(13px * var(--type-scale,1));letter-spacing:.12em">{{product|产品名 / 企业知识问答}}</span></div><div class="card" style="margin:18px 0 0 auto;width:fit-content;max-width:470px;padding:12px 18px"><div class="card-title" style="font-size:calc(17px * var(--type-scale,1));font-weight:700">{{question|用户的一个真实问题?}}</div></div><p class="card-body" style="font-size:calc(16px * var(--type-scale,1));line-height:1.65;margin-top:18px;max-width:600px">{{answer|带出处的回答,每一句后面标注引用。[来源 A] 第二句补充说明。[来源 B]}}</p><div style="position:absolute;left:28px;bottom:22px;display:flex;align-items:center;gap:10px"><span class="accent-bar" style="width:22px;height:2px;display:inline-block"></span><span class="card-body" style="font-size:calc(13px * var(--type-scale,1))">{{answer_note|答案附带原文引用,可一键回到出处}}</span></div></div><div class="card" style="position:absolute;left:836px;right:calc(96px * var(--space-scale,1));top:286px;height:148px;padding:20px 24px"><div class="card-title" style="font-size:calc(16px * var(--type-scale,1));font-weight:700">{{src1_title|来源 A ·《文档名》}}</div><p class="card-body" style="font-size:calc(14px * var(--type-scale,1));line-height:1.55;margin-top:8px">{{src1_body|“原文中支撑答案的一句话。”}}</p></div><div class="card" style="position:absolute;left:836px;right:calc(96px * var(--space-scale,1));top:458px;height:148px;padding:20px 24px"><div class="card-title" style="font-size:calc(16px * var(--type-scale,1));font-weight:700">{{src2_title|来源 B ·《文档名》}}</div><p class="card-body" style="font-size:calc(14px * var(--type-scale,1));line-height:1.55;margin-top:8px">{{src2_body|“原文中支撑答案的一句话。”}}</p></div>
|
|
4
|
+
<p class="deck-subhead" style="position:absolute;left:calc(96px * var(--space-scale,1));right:calc(96px * var(--space-scale,1));top:246px;font-size:calc(16px * var(--type-scale,1));line-height:1.5">{{subhead|}}</p><p class="deck-takeaway" style="position:absolute;left:calc(96px * var(--space-scale,1));right:calc(96px * var(--space-scale,1));bottom:56px;padding:4px 0 4px 14px;font-size:calc(16px * var(--type-scale,1));line-height:1.5;font-weight:600">{{takeaway|}}</p><div class="rule rule-foot" style="position:absolute;left:calc(96px * var(--space-scale,1));right:calc(96px * var(--space-scale,1));bottom:40px;height:1px"></div><div class="deck-footer" style="position:absolute;left:calc(96px * var(--space-scale,1));bottom:17px;font-size:calc(12px * var(--type-scale,1));letter-spacing:.1em">{{footer|报告标题 / 章节}}</div><div class="deck-pageno" style="position:absolute;right:calc(96px * var(--space-scale,1));bottom:17px;font-size:calc(12px * var(--type-scale,1))">{{pageno|01}}</div></section>
|
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
"intents": {
|
|
5
5
|
"cover": {"candidates":["cover","cover-statement","cover-image","cover-minimal"],"density":"low","maxItems":2,"media":"optional","scene":"hero","decorDensity":"high"},
|
|
6
6
|
"problem": {"candidates":["pitch-problem","problem-solution-banner","big-stat"],"density":"low","maxItems":3,"media":"none","scene":"hero","decorDensity":"high"},
|
|
7
|
-
"solution": {"candidates":["pitch-solution","problem-solution","cards-3"],"density":"medium","maxItems":3,"media":"optional","scene":"content","decorDensity":"medium"},
|
|
8
|
-
"product-demo": {"candidates":["product-device","image-left","image-full"],"density":"low","maxItems":3,"media":"required","scene":"media","decorDensity":"high"},
|
|
7
|
+
"solution": {"candidates":["pitch-solution","hub-flow","problem-solution","cards-3"],"density":"medium","maxItems":3,"media":"optional","scene":"content","decorDensity":"medium"},
|
|
8
|
+
"product-demo": {"candidates":["product-device","mock-qa","image-left","image-full"],"density":"low","maxItems":3,"media":"required","scene":"media","decorDensity":"high"},
|
|
9
9
|
"market-size": {"candidates":["market-rings","ring-progress","big-stat"],"density":"low","maxItems":3,"media":"none","scene":"data","decorDensity":"medium"},
|
|
10
10
|
"market-growth": {"candidates":["chart-kpi","chart-full","stats-chart"],"density":"medium","maxItems":6,"media":"none","scene":"data","decorDensity":"medium"},
|
|
11
11
|
"competition": {"candidates":["matrix-2x2","comparison","versus"],"density":"medium","maxItems":6,"media":"none","scene":"data","decorDensity":"low"},
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
<!-- layouts/pyramid — structure-only variant (paint via skin). -->
|
|
2
2
|
<section class="slide" data-layout="pyramid" style="position:relative;width:1280px;height:720px;overflow:hidden"><div class="slide-backdrop"></div><div class="eyebrow-row" style="position:absolute;left:calc(96px * var(--space-scale,1));top:132px;display:flex;align-items:center;gap:14px"><span class="accent-bar" style="width:30px;height:1px;display:inline-block"></span><span class="eyebrow" style="font-size:calc(13px * var(--type-scale,1));letter-spacing:.28em">{{eyebrow|HIERARCHY}}</span></div><h2 class="deck-title" style="position:absolute;left:calc(92px * var(--space-scale,1));top:158px;font-size:calc(48px * var(--type-scale,1));letter-spacing:-.4px">{{title|层级结构}}</h2>
|
|
3
3
|
<div class="card-grid" style="position:absolute;left:0;right:0;top:300px;display:flex;flex-direction:column;align-items:center;gap:14px"><div class="card" style="width:100%;max-width:900px;height:74px;display:flex;align-items:center;justify-content:center"><div class="card-title" style="font-size:calc(19px * var(--type-scale,1));font-weight:700">{{level1|顶层 · 战略目标}}</div></div><div class="card" style="width:76%;max-width:900px;height:74px;display:flex;align-items:center;justify-content:center"><div class="card-title" style="font-size:calc(19px * var(--type-scale,1));font-weight:700">{{level2|中层 · 关键举措}}</div></div><div class="card" style="width:54%;max-width:900px;height:74px;display:flex;align-items:center;justify-content:center"><div class="card-title" style="font-size:calc(19px * var(--type-scale,1));font-weight:700">{{level3|执行 · 具体任务}}</div></div><div class="card" style="width:34%;max-width:900px;height:74px;display:flex;align-items:center;justify-content:center"><div class="card-title" style="font-size:calc(19px * var(--type-scale,1));font-weight:700">{{level4|基础 · 支撑保障}}</div></div></div>
|
|
4
|
-
<div class="rule rule-foot" style="position:absolute;left:calc(96px * var(--space-scale,1));right:calc(96px * var(--space-scale,1));bottom:40px;height:1px"></div><div class="deck-footer" style="position:absolute;left:calc(96px * var(--space-scale,1));bottom:17px;font-size:calc(12px * var(--type-scale,1));letter-spacing:.1em">{{footer|报告标题 / 章节}}</div><div class="deck-pageno" style="position:absolute;right:calc(96px * var(--space-scale,1));bottom:17px;font-size:calc(12px * var(--type-scale,1))">{{pageno|01}}</div></section>
|
|
4
|
+
<p class="deck-subhead" style="position:absolute;left:calc(96px * var(--space-scale,1));right:calc(96px * var(--space-scale,1));top:246px;font-size:calc(16px * var(--type-scale,1));line-height:1.5">{{subhead|}}</p><div class="rule rule-foot" style="position:absolute;left:calc(96px * var(--space-scale,1));right:calc(96px * var(--space-scale,1));bottom:40px;height:1px"></div><div class="deck-footer" style="position:absolute;left:calc(96px * var(--space-scale,1));bottom:17px;font-size:calc(12px * var(--type-scale,1));letter-spacing:.1em">{{footer|报告标题 / 章节}}</div><div class="deck-pageno" style="position:absolute;right:calc(96px * var(--space-scale,1));bottom:17px;font-size:calc(12px * var(--type-scale,1))">{{pageno|01}}</div></section>
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
<!-- layouts/radar — structure-only variant (paint via skin). rows.metrics{name,score} drives BOTH the native radar chart and the score list (one source — deck-build derives the chart, so never pass `chart` for this layout). -->
|
|
2
2
|
<section class="slide" data-layout="radar" style="position:relative;width:1280px;height:720px;overflow:hidden"><div class="slide-backdrop"></div><div class="eyebrow-row" style="position:absolute;left:calc(96px * var(--space-scale,1));top:132px;display:flex;align-items:center;gap:14px"><span class="accent-bar" style="width:30px;height:1px;display:inline-block"></span><span class="eyebrow" style="font-size:calc(13px * var(--type-scale,1));letter-spacing:.28em">{{eyebrow|ASSESSMENT}}</span></div><h2 class="deck-title" style="position:absolute;left:calc(92px * var(--space-scale,1));top:158px;font-size:calc(48px * var(--type-scale,1));letter-spacing:-.4px">{{title|能力雷达}}</h2>
|
|
3
|
-
<div class="chart" style="position:absolute;left:64px;top:242px;width:660px;height:394px"><div class="talos-chart" style="width:100%;height:100%" data-chart='{"type":"radar","labels":["占位维度一","占位维度二","占位维度三","占位维度四","占位维度五"],"series":[{"name":"","values":[9,7,8.5,6,7.5]}],"colors":["__ACCENT__"],"axisColor":"__AXIS__"}'></div></div><div style="position:absolute;right:calc(96px * var(--space-scale,1));top:300px;width:300px">{{#metrics}}<div class="toc-item" style="display:flex;justify-content:space-between;padding:15px 0"><span class="toc-title" style="font-size:calc(17px * var(--type-scale,1))">{{name|占位维度}}</span><span class="dt-em" style="font-size:calc(19px * var(--type-scale,1));font-weight:700">{{score|0.0}}</span></div>{{/metrics}}</div>
|
|
3
|
+
<div class="chart" style="position:absolute;left:calc(64px * var(--space-scale,1));top:242px;width:660px;height:394px"><div class="talos-chart" style="width:100%;height:100%" data-chart='{"type":"radar","labels":["占位维度一","占位维度二","占位维度三","占位维度四","占位维度五"],"series":[{"name":"","values":[9,7,8.5,6,7.5]}],"colors":["__ACCENT__"],"axisColor":"__AXIS__"}'></div></div><div style="position:absolute;right:calc(96px * var(--space-scale,1));top:300px;width:300px">{{#metrics}}<div class="toc-item" style="display:flex;justify-content:space-between;padding:15px 0"><span class="toc-title" style="font-size:calc(17px * var(--type-scale,1))">{{name|占位维度}}</span><span class="dt-em" style="font-size:calc(19px * var(--type-scale,1));font-weight:700">{{score|0.0}}</span></div>{{/metrics}}</div>
|
|
4
4
|
<div class="rule rule-foot" style="position:absolute;left:calc(96px * var(--space-scale,1));right:calc(96px * var(--space-scale,1));bottom:40px;height:1px"></div><div class="deck-footer" style="position:absolute;left:calc(96px * var(--space-scale,1));bottom:17px;font-size:calc(12px * var(--type-scale,1));letter-spacing:.1em">{{footer|报告标题 / 章节}}</div><div class="deck-pageno" style="position:absolute;right:calc(96px * var(--space-scale,1));bottom:17px;font-size:calc(12px * var(--type-scale,1))">{{pageno|01}}</div></section>
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
<!-- layouts/ring-progress — structure-only variant (paint via skin). rows.rings{label,pct,note} — deck-build turns pct into the arc's _dashoffset, so the ring always matches the number inside it. 2–4 rings read well. -->
|
|
2
2
|
<section class="slide" data-layout="ring-progress" style="position:relative;width:1280px;height:720px;overflow:hidden"><div class="slide-backdrop"></div><div class="eyebrow-row" style="position:absolute;left:calc(96px * var(--space-scale,1));top:132px;display:flex;align-items:center;gap:14px"><span class="accent-bar" style="width:30px;height:1px;display:inline-block"></span><span class="eyebrow" style="font-size:calc(13px * var(--type-scale,1));letter-spacing:.28em">{{eyebrow|PROGRESS}}</span></div><h2 class="deck-title" style="position:absolute;left:calc(92px * var(--space-scale,1));top:158px;font-size:calc(48px * var(--type-scale,1));letter-spacing:-.4px">{{title|关键进度}}</h2>
|
|
3
3
|
<div style="position:absolute;left:calc(96px * var(--space-scale,1));right:calc(96px * var(--space-scale,1));top:310px;display:flex;gap:36px">{{#rings}}<div style="flex:1;text-align:center"><div style="position:relative;width:150px;height:150px;margin:0 auto"><svg width="150" height="150" viewBox="0 0 150 150"><circle class="ring-track" cx="75" cy="75" r="54" fill="none" stroke-width="12"/><circle class="ring-fill" cx="75" cy="75" r="54" fill="none" stroke-width="12" stroke-linecap="round" stroke-dasharray="339.3" stroke-dashoffset="{{_dashoffset|61.1}}" transform="rotate(-90 75 75)"/></svg><div class="ring-num" style="position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:calc(34px * var(--type-scale,1));font-weight:800">{{_pct|82%}}</div></div><div class="step-title" style="font-size:calc(19px * var(--type-scale,1));font-weight:600;margin-top:20px">{{label|占位指标}}</div><p class="step-body" style="font-size:calc(14px * var(--type-scale,1));margin-top:6px">{{note|一句说明,替换为真实口径。}}</p></div>{{/rings}}</div>
|
|
4
|
-
<div class="rule rule-foot" style="position:absolute;left:calc(96px * var(--space-scale,1));right:calc(96px * var(--space-scale,1));bottom:40px;height:1px"></div><div class="deck-footer" style="position:absolute;left:calc(96px * var(--space-scale,1));bottom:17px;font-size:calc(12px * var(--type-scale,1));letter-spacing:.1em">{{footer|报告标题 / 章节}}</div><div class="deck-pageno" style="position:absolute;right:calc(96px * var(--space-scale,1));bottom:17px;font-size:calc(12px * var(--type-scale,1))">{{pageno|01}}</div></section>
|
|
4
|
+
<p class="deck-subhead" style="position:absolute;left:calc(96px * var(--space-scale,1));right:calc(96px * var(--space-scale,1));top:246px;font-size:calc(16px * var(--type-scale,1));line-height:1.5">{{subhead|}}</p><p class="deck-takeaway" style="position:absolute;left:calc(96px * var(--space-scale,1));right:calc(96px * var(--space-scale,1));bottom:56px;padding:4px 0 4px 14px;font-size:calc(16px * var(--type-scale,1));line-height:1.5;font-weight:600">{{takeaway|}}</p><div class="rule rule-foot" style="position:absolute;left:calc(96px * var(--space-scale,1));right:calc(96px * var(--space-scale,1));bottom:40px;height:1px"></div><div class="deck-footer" style="position:absolute;left:calc(96px * var(--space-scale,1));bottom:17px;font-size:calc(12px * var(--type-scale,1));letter-spacing:.1em">{{footer|报告标题 / 章节}}</div><div class="deck-pageno" style="position:absolute;right:calc(96px * var(--space-scale,1));bottom:17px;font-size:calc(12px * var(--type-scale,1))">{{pageno|01}}</div></section>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"banner-columns":{"slots":["banner","col1_title","b1","b2","col2_title","b3","b4","col3_title","b5"],"chart":false},"bento":{"slots":["eyebrow","title","big_title","big_num","big_unit","big_body","card1_title","card1_body","card2_title","card2_body","card3_title","card3_body","card4_title","card4_body","footer","pageno"],"chart":false},"big-stat":{"slots":["eyebrow","title","stat","unit","lead","note","footer","pageno"],"chart":false},"blocks-2x2":{"slots":["eyebrow","title","intro","block1_title","block1_body","block2_title","block2_body","block3_title","block3_body","block4_title","block4_body","quote","quote_attr","refs","footer","pageno"],"chart":false},"brand-values":{"slots":["eyebrow","title","footer","pageno"],"rows":{"values":["name","body"]},"chart":false},"business-model":{"slots":["eyebrow","title","tag","stream1_label","stream1_value","stream1_body","stream2_label","stream2_value","stream2_body","stream3_label","stream3_value","stream3_body","econ1_label","econ1","econ2_label","econ2","footer","pageno"],"chart":false},"cards-3":{"slots":["eyebrow","title","card1_title","card1_body","card2_title","card2_body","card3_title","card3_body","footer","pageno"],"chart":false},"cards-grid":{"slots":["eyebrow","title","card1_title","card1_body","card2_title","card2_body","card3_title","card3_body","card4_title","card4_body","card5_title","card5_body","card6_title","card6_body","footer","pageno"],"chart":false},"chart-full":{"slots":["eyebrow","title","lead","source","footer","pageno"],"chart":true},"chart-kpi":{"slots":["eyebrow","title","kpi1_num","kpi1_unit","kpi1_label","kpi2_num","kpi2_unit","kpi2_label","footer","pageno"],"chart":true},"color-palette":{"slots":["eyebrow","title","footer","pageno"],"rows":{"swatches":["name","hex"]},"chart":false},"comparison":{"slots":["eyebrow","title","colA_title","dim1","colA_v1","dim2","colA_v2","dim3","colA_v3","badge","colB_title","colB_v1","colB_v2","colB_v3","colC_title","colC_v1","colC_v2","colC_v3","footer","pageno"],"chart":false},"concept-hub":{"slots":["eyebrow","title","center_title","center_body","node1_title","node1_body","node2_title","node2_body","node3_title","node3_body","node4_title","node4_body","footer","pageno"],"chart":false},"cover-centered":{"slots":["eyebrow","title","subtitle","meta"],"chart":false},"cover-image":{"slots":["image_label","eyebrow","title","subtitle"],"chart":false},"cover-minimal":{"slots":["title","subtitle","meta"],"chart":false},"cover-statement":{"slots":["eyebrow","statement","meta"],"chart":false},"cover":{"slots":["eyebrow","title","subtitle","presenter","date"],"chart":false},"customer-proof":{"slots":["eyebrow","title","quote","person","role","metric1_label","metric1","metric2_label","metric2","logo1","logo2","logo3","logo4","footer","pageno"],"chart":false},"data-table":{"slots":["eyebrow","title","col0","col1","col2","col3","r1_key","r1c1","r1c2","r1c3","r2_key","r2c1","r2c2","r2c3","r3_key","r3c1","r3c2","r3c3","r4_key","r4c1","r4c2","r4c3","footer","pageno"],"chart":false},"dos-donts":{"slots":["eyebrow","do_head","do1","do2","do3","do4","dont_head","dont1","dont2","dont3","dont4","footer","pageno"],"chart":false},"editorial-panel":{"slots":["eyebrow","title","lead1","lead2","quote","quote_attr","card1_title","card1_body","card2_title","card2_body","card3_title","card3_body","card4_title","card4_body","list_title","list1","list2","list3","list4","note"],"chart":false},"ending-contact":{"slots":["eyebrow","title","email","phone","web","addr"],"chart":false},"ending":{"slots":["eyebrow","title","sub","contact"],"chart":false},"funding-ask":{"slots":["eyebrow","round","ask","runway","title","use1","pct1","use2","pct2","use3","pct3","footer","pageno"],"chart":false},"funnel":{"slots":["eyebrow","title","s1_label","s1_val","s2_label","s2_val","s3_label","s3_val","s4_label","s4_val","rate_label","rate","footer","pageno"],"chart":false},"gantt":{"slots":["eyebrow","title","footer","pageno"],"rows":{"cols":["label"],"tasks":["name","from","to"]},"chart":false},"hero":{"slots":["eyebrow","title","sub"],"chart":false},"icon-row":{"slots":["eyebrow","title","item1_title","item1_body","item2_title","item2_body","item3_title","item3_body","item4_title","item4_body","footer","pageno"],"chart":false},"image-full":{"slots":["image_label","eyebrow","title","caption","pageno"],"chart":false},"image-grid":{"slots":["eyebrow","title","img1_label","img1_title","img1_body","img2_label","img2_title","img2_body","img3_label","img3_title","img3_body","footer","pageno"],"chart":false},"image-left":{"slots":["eyebrow","title","image_label","card1_title","card1_body","card2_title","card2_body","card3_title","card3_body","footer","pageno"],"chart":false},"list":{"slots":["eyebrow","title","item1_title","item1_desc","item2_title","item2_desc","item3_title","item3_desc","item4_title","item4_desc","footer","pageno"],"chart":false},"logo-guidelines":{"slots":["eyebrow","title","wordmark","tagline","v1_label","v2_label","v3_label","footer","pageno"],"chart":false},"map-distribution":{"slots":["eyebrow","title","footer","pageno"],"rows":{"pins":["x","y"],"regions":["name","pct"]},"chart":false},"map-quad":{"slots":["title","q1_num","q1_unit","q1_label","q1_note","q2_num","q2_unit","q2_label","q2_note","q3_num","q3_unit","q3_label","q3_note","q4_num","q4_unit","q4_label","q4_note","footer","pageno"],"chart":false},"market-rings":{"slots":["eyebrow","title","body","growth","tam_label","tam","sam_label","sam","som_label","som","footer","pageno"],"chart":false},"matrix-2x2":{"slots":["eyebrow","title","q1_title","q1_body","q2_title","q2_body","q3_title","q3_body","q4_title","q4_body","footer","pageno"],"chart":false},"numbered-brief":{"slots":["title","para1","para2","quote","source","right_title","item1_title","item2_title","item3_title","item4_title","source_label","source_note","pageno"],"chart":false},"org-tree":{"slots":["eyebrow","title","top","dept1_title","dept1_body","dept2_title","dept2_body","dept3_title","dept3_body","footer","pageno"],"chart":false},"pitch-problem":{"slots":["eyebrow","title","stat_label","stat","stat_note","point1_title","point1_body","point2_title","point2_body","point3_title","point3_body","footer","pageno"],"chart":false},"pitch-solution":{"slots":["badge","title","lead","pillar1_title","pillar1_body","pillar2_title","pillar2_body","pillar3_title","pillar3_body","footer","pageno"],"chart":false},"pricing-tiers":{"slots":["eyebrow","title","tier1","price1","unit1","tier1_title","tier1_body","featured","tier2","price2","unit2","tier2_title","tier2_body","tier3","price3","unit3","tier3_title","tier3_body","footer","pageno"],"chart":false},"problem-solution-banner":{"slots":["problem_label","problem_body","image_label","solution_body","solution_label"],"chart":false},"problem-solution":{"slots":["eyebrow","title","problem_title","problem_1","problem_2","problem_3","solution_title","solution_1","solution_2","solution_3","footer","pageno"],"chart":false},"product-device":{"slots":["eyebrow","title","body","feature1","feature2","feature3","media_label","screen_title","screen_note","footer","pageno"],"chart":false},"pyramid":{"slots":["eyebrow","title","level1","level2","level3","level4","footer","pageno"],"chart":false},"quote-aside":{"slots":["quote","source","footer","pageno"],"chart":false},"quote":{"slots":["eyebrow","quote","source","footer","pageno"],"chart":false},"radar":{"slots":["eyebrow","title","footer","pageno"],"rows":{"metrics":["name","score"]},"chart":"derived"},"ring-progress":{"slots":["eyebrow","title","footer","pageno"],"rows":{"rings":["label","pct","note"]},"chart":false},"section-fullbleed":{"slots":["image_label","desc","index","title"],"chart":false},"section-image":{"slots":["index","eyebrow","title","desc","image_label","footer","pageno"],"chart":false},"section-stat":{"slots":["eyebrow","title","desc","stat","unit","stat_label","footer","pageno"],"chart":false},"section":{"slots":["index","eyebrow","title","desc","footer","pageno"],"chart":false},"split-two-col":{"slots":["eyebrow","title","card1_title","card1_body","card2_title","card2_body","card3_title","card3_body","image_label","footer","pageno"],"chart":false},"stats-chart":{"slots":["brand1","brand2","brand3","title","note"],"chart":true},"steps-serpentine":{"slots":["eyebrow","title","step1_title","step1_body","step2_title","step2_body","step3_title","step3_body","step4_title","step4_body","step5_title","step5_body","step6_title","step6_body","step7_title","step7_body","step8_title","step8_body"],"chart":false},"steps-vertical":{"slots":["eyebrow","title","footer","pageno"],"rows":{"steps":["name","body"]},"chart":false},"steps":{"slots":["eyebrow","title","step1_title","step1_body","step2_title","step2_body","step3_title","step3_body","step4_title","step4_body","footer","pageno"],"chart":false},"team-founders":{"slots":["eyebrow","title","lead","f1_initials","f1_name","f1_role","f1_bio","f2_initials","f2_name","f2_role","f2_bio","f3_initials","f3_name","f3_role","f3_bio","footer","pageno"],"chart":false},"team-row":{"slots":["eyebrow","title","footer","pageno"],"rows":{"members":["name","role"]},"chart":false},"three-kpi":{"slots":["eyebrow","title","kpi1_num","kpi1_unit","kpi1_name","kpi1_desc","kpi2_num","kpi2_unit","kpi2_name","kpi2_desc","kpi3_num","kpi3_unit","kpi3_name","kpi3_desc","footer","pageno"],"chart":false},"timeline":{"slots":["eyebrow","title","item1_date","item1_title","item1_desc","item2_date","item2_title","item2_desc","item3_date","item3_title","item3_desc","item4_date","item4_title","item4_desc","footer","pageno"],"chart":false},"title-meta":{"slots":["index","eyebrow","title","subtitle","meta"],"chart":false},"title":{"slots":["eyebrow","title"],"chart":false},"toc-agenda":{"slots":["eyebrow","title","item1_title","item1_dur","item2_title","item2_dur","item3_title","item3_dur","item4_title","item4_dur","item5_title","item5_dur","footer","pageno"],"chart":false},"toc-editorial":{"slots":["item1_title","item1_desc","item2_title","item2_desc","item3_title","item3_desc","item4_title","item4_desc","title","desc","footer","pageno"],"chart":false},"toc-panel":{"slots":["brand1","brand2","brand3","image_label","title"],"rows":{"entries":["name","desc"]},"chart":false},"toc":{"slots":["eyebrow","title","item1_title","item1_desc","item2_title","item2_desc","item3_title","item3_desc","item4_title","item4_desc","footer","pageno"],"chart":false},"traction-milestones":{"slots":["eyebrow","title","metric1_label","metric1","metric2_label","metric2","metric3_label","metric3","m1_date","m1","m2_date","m2","m3_date","m3","m4_date","m4","footer","pageno"],"chart":false},"transition":{"slots":["eyebrow","number","title"],"chart":false},"two-kpi":{"slots":["eyebrow","title","kpi1_num","kpi1_unit","kpi1_label","kpi2_num","kpi2_unit","kpi2_label","footer","pageno"],"chart":false},"type-specimen":{"slots":["eyebrow","title","specimen","font_name","weights","heading_label","heading_sample","body_label","body_sample","charset","footer","pageno"],"chart":false},"versus":{"slots":["eyebrow","title","before_title","before_num","before_body","after_title","after_num","after_body","footer","pageno"],"chart":false}}
|
|
1
|
+
{"banner-columns":{"slots":["banner","col1_title","b1","b2","col2_title","b3","b4","col3_title","b5"],"chart":false},"bento":{"slots":["eyebrow","title","big_title","big_num","big_unit","big_body","card1_title","card1_body","card2_title","card2_body","card3_title","card3_body","card4_title","card4_body","footer","pageno"],"chart":false},"big-stat":{"slots":["eyebrow","title","stat","unit","lead","note","footer","pageno"],"chart":false},"blocks-2x2":{"slots":["eyebrow","title","intro","block1_title","block1_body","block2_title","block2_body","block3_title","block3_body","block4_title","block4_body","quote","quote_attr","refs","footer","pageno"],"chart":false},"brand-values":{"slots":["eyebrow","title","footer","pageno"],"rows":{"values":["name","body"]},"chart":false},"business-model":{"slots":["eyebrow","title","tag","stream1_label","stream1_value","stream1_body","stream2_label","stream2_value","stream2_body","stream3_label","stream3_value","stream3_body","econ1_label","econ1","econ2_label","econ2","footer","pageno"],"chart":false},"cards-3":{"slots":["eyebrow","title","card1_title","card1_body","card2_title","card2_body","card3_title","card3_body","subhead","takeaway","footer","pageno"],"chart":false},"cards-grid":{"slots":["eyebrow","title","card1_title","card1_body","card2_title","card2_body","card3_title","card3_body","card4_title","card4_body","card5_title","card5_body","card6_title","card6_body","footer","pageno"],"chart":false},"chart-full":{"slots":["eyebrow","title","lead","source","footer","pageno"],"chart":true},"chart-kpi":{"slots":["eyebrow","title","kpi1_num","kpi1_unit","kpi1_label","kpi2_num","kpi2_unit","kpi2_label","footer","pageno"],"chart":true},"color-palette":{"slots":["eyebrow","title","footer","pageno"],"rows":{"swatches":["name","hex"]},"chart":false},"comparison":{"slots":["eyebrow","title","colA_title","dim1","colA_v1","dim2","colA_v2","dim3","colA_v3","badge","colB_title","colB_v1","colB_v2","colB_v3","colC_title","colC_v1","colC_v2","colC_v3","takeaway","footer","pageno"],"chart":false},"concept-hub":{"slots":["eyebrow","title","center_title","center_body","node1_title","node1_body","node2_title","node2_body","node3_title","node3_body","node4_title","node4_body","footer","pageno"],"chart":false},"cover-centered":{"slots":["eyebrow","title","subtitle","meta"],"chart":false},"cover-image":{"slots":["image_label","eyebrow","title","subtitle"],"chart":false},"cover-minimal":{"slots":["title","subtitle","meta"],"chart":false},"cover-statement":{"slots":["eyebrow","statement","meta"],"chart":false},"cover":{"slots":["eyebrow","title","subtitle","presenter","date"],"chart":false},"customer-proof":{"slots":["eyebrow","title","quote","person","role","metric1_label","metric1","metric2_label","metric2","logo1","logo2","logo3","logo4","footer","pageno"],"chart":false},"data-table":{"slots":["eyebrow","title","col0","col1","col2","col3","r1_key","r1c1","r1c2","r1c3","r2_key","r2c1","r2c2","r2c3","r3_key","r3c1","r3c2","r3c3","r4_key","r4c1","r4c2","r4c3","subhead","takeaway","footer","pageno"],"chart":false},"dos-donts":{"slots":["eyebrow","do_head","do1","do2","do3","do4","dont_head","dont1","dont2","dont3","dont4","footer","pageno"],"chart":false},"editorial-panel":{"slots":["eyebrow","title","lead1","lead2","quote","quote_attr","card1_title","card1_body","card2_title","card2_body","card3_title","card3_body","card4_title","card4_body","list_title","list1","list2","list3","list4","note"],"chart":false},"ending-contact":{"slots":["eyebrow","title","email","phone","web","addr"],"chart":false},"ending":{"slots":["eyebrow","title","sub","contact"],"chart":false},"funding-ask":{"slots":["eyebrow","round","ask","runway","title","use1","pct1","use2","pct2","use3","pct3","footer","pageno"],"chart":false},"funnel":{"slots":["eyebrow","title","s1_label","s1_val","s2_label","s2_val","s3_label","s3_val","s4_label","s4_val","rate_label","rate","subhead","footer","pageno"],"chart":false},"gantt":{"slots":["eyebrow","title","subhead","takeaway","footer","pageno"],"rows":{"cols":["label"],"tasks":["name","from","to"]},"chart":false},"hero":{"slots":["eyebrow","title","sub"],"chart":false},"hub-flow":{"slots":["eyebrow","title","in1_title","in1_body","in2_title","in2_body","in3_title","in3_body","center_title","center_body","out_title","out_desc","subhead","takeaway","footer","pageno"],"chart":false},"icon-row":{"slots":["eyebrow","title","item1_title","item1_body","item2_title","item2_body","item3_title","item3_body","item4_title","item4_body","subhead","takeaway","footer","pageno"],"chart":false},"image-full":{"slots":["image_label","eyebrow","title","caption","pageno"],"chart":false},"image-grid":{"slots":["eyebrow","title","img1_label","img1_title","img1_body","img2_label","img2_title","img2_body","img3_label","img3_title","img3_body","subhead","takeaway","footer","pageno"],"chart":false},"image-left":{"slots":["eyebrow","title","image_label","card1_title","card1_body","card2_title","card2_body","card3_title","card3_body","footer","pageno"],"chart":false},"list":{"slots":["eyebrow","title","item1_title","item1_desc","item2_title","item2_desc","item3_title","item3_desc","item4_title","item4_desc","footer","pageno"],"chart":false},"logo-guidelines":{"slots":["eyebrow","title","wordmark","tagline","v1_label","v2_label","v3_label","footer","pageno"],"chart":false},"map-distribution":{"slots":["eyebrow","title","footer","pageno"],"rows":{"pins":["x","y"],"regions":["name","pct"]},"chart":false},"map-quad":{"slots":["title","q1_num","q1_unit","q1_label","q1_note","q2_num","q2_unit","q2_label","q2_note","q3_num","q3_unit","q3_label","q3_note","q4_num","q4_unit","q4_label","q4_note","footer","pageno"],"chart":false},"market-rings":{"slots":["eyebrow","title","body","growth","tam_label","tam","sam_label","sam","som_label","som","footer","pageno"],"chart":false},"matrix-2x2":{"slots":["eyebrow","title","q1_title","q1_body","q2_title","q2_body","q3_title","q3_body","q4_title","q4_body","subhead","footer","pageno"],"chart":false},"mock-qa":{"slots":["eyebrow","title","product","question","answer","answer_note","src1_title","src1_body","src2_title","src2_body","subhead","takeaway","footer","pageno"],"chart":false},"numbered-brief":{"slots":["title","para1","para2","quote","source","right_title","item1_title","item2_title","item3_title","item4_title","source_label","source_note","pageno"],"chart":false},"org-tree":{"slots":["eyebrow","title","top","dept1_title","dept1_body","dept2_title","dept2_body","dept3_title","dept3_body","footer","pageno"],"chart":false},"pitch-problem":{"slots":["eyebrow","title","stat_label","stat","stat_note","point1_title","point1_body","point2_title","point2_body","point3_title","point3_body","footer","pageno"],"chart":false},"pitch-solution":{"slots":["badge","title","lead","pillar1_title","pillar1_body","pillar2_title","pillar2_body","pillar3_title","pillar3_body","footer","pageno"],"chart":false},"pricing-tiers":{"slots":["eyebrow","title","tier1","price1","unit1","tier1_title","tier1_body","featured","tier2","price2","unit2","tier2_title","tier2_body","tier3","price3","unit3","tier3_title","tier3_body","footer","pageno"],"chart":false},"problem-solution-banner":{"slots":["problem_label","problem_body","image_label","solution_body","solution_label"],"chart":false},"problem-solution":{"slots":["eyebrow","title","problem_title","problem_1","problem_2","problem_3","solution_title","solution_1","solution_2","solution_3","footer","pageno"],"chart":false},"product-device":{"slots":["eyebrow","title","body","feature1","feature2","feature3","media_label","screen_title","screen_note","footer","pageno"],"chart":false},"pyramid":{"slots":["eyebrow","title","level1","level2","level3","level4","subhead","footer","pageno"],"chart":false},"quote-aside":{"slots":["quote","source","footer","pageno"],"chart":false},"quote":{"slots":["eyebrow","quote","source","footer","pageno"],"chart":false},"radar":{"slots":["eyebrow","title","footer","pageno"],"rows":{"metrics":["name","score"]},"chart":"derived"},"ring-progress":{"slots":["eyebrow","title","subhead","takeaway","footer","pageno"],"rows":{"rings":["label","pct","note"]},"chart":false},"section-fullbleed":{"slots":["image_label","desc","index","title"],"chart":false},"section-image":{"slots":["index","eyebrow","title","desc","image_label","footer","pageno"],"chart":false},"section-stat":{"slots":["eyebrow","title","desc","stat","unit","stat_label","footer","pageno"],"chart":false},"section":{"slots":["index","eyebrow","title","desc","footer","pageno"],"chart":false},"split-two-col":{"slots":["eyebrow","title","card1_title","card1_body","card2_title","card2_body","card3_title","card3_body","image_label","footer","pageno"],"chart":false},"stats-chart":{"slots":["brand1","brand2","brand3","title","note"],"chart":true},"steps-serpentine":{"slots":["eyebrow","title","step1_title","step1_body","step2_title","step2_body","step3_title","step3_body","step4_title","step4_body","step5_title","step5_body","step6_title","step6_body","step7_title","step7_body","step8_title","step8_body"],"chart":false},"steps-vertical":{"slots":["eyebrow","title","subhead","takeaway","footer","pageno"],"rows":{"steps":["name","body"]},"chart":false},"steps":{"slots":["eyebrow","title","step1_title","step1_body","step2_title","step2_body","step3_title","step3_body","step4_title","step4_body","subhead","takeaway","footer","pageno"],"chart":false},"team-founders":{"slots":["eyebrow","title","lead","f1_initials","f1_name","f1_role","f1_bio","f2_initials","f2_name","f2_role","f2_bio","f3_initials","f3_name","f3_role","f3_bio","footer","pageno"],"chart":false},"team-row":{"slots":["eyebrow","title","footer","pageno"],"rows":{"members":["name","role"]},"chart":false},"three-kpi":{"slots":["eyebrow","title","kpi1_num","kpi1_unit","kpi1_name","kpi1_desc","kpi2_num","kpi2_unit","kpi2_name","kpi2_desc","kpi3_num","kpi3_unit","kpi3_name","kpi3_desc","subhead","takeaway","footer","pageno"],"chart":false},"timeline":{"slots":["eyebrow","title","item1_date","item1_title","item1_desc","item2_date","item2_title","item2_desc","item3_date","item3_title","item3_desc","item4_date","item4_title","item4_desc","subhead","takeaway","footer","pageno"],"chart":false},"title-meta":{"slots":["index","eyebrow","title","subtitle","meta"],"chart":false},"title":{"slots":["eyebrow","title"],"chart":false},"toc-agenda":{"slots":["eyebrow","title","item1_title","item1_dur","item2_title","item2_dur","item3_title","item3_dur","item4_title","item4_dur","item5_title","item5_dur","footer","pageno"],"chart":false},"toc-editorial":{"slots":["item1_title","item1_desc","item2_title","item2_desc","item3_title","item3_desc","item4_title","item4_desc","title","desc","footer","pageno"],"chart":false},"toc-panel":{"slots":["brand1","brand2","brand3","image_label","title"],"rows":{"entries":["name","desc"]},"chart":false},"toc":{"slots":["eyebrow","title","item1_title","item1_desc","item2_title","item2_desc","item3_title","item3_desc","item4_title","item4_desc","footer","pageno"],"chart":false},"traction-milestones":{"slots":["eyebrow","title","metric1_label","metric1","metric2_label","metric2","metric3_label","metric3","m1_date","m1","m2_date","m2","m3_date","m3","m4_date","m4","footer","pageno"],"chart":false},"transition":{"slots":["eyebrow","number","title"],"chart":false},"two-kpi":{"slots":["eyebrow","title","kpi1_num","kpi1_unit","kpi1_label","kpi1_desc","kpi2_num","kpi2_unit","kpi2_label","kpi2_desc","subhead","takeaway","footer","pageno"],"chart":false},"type-specimen":{"slots":["eyebrow","title","specimen","font_name","weights","heading_label","heading_sample","body_label","body_sample","charset","footer","pageno"],"chart":false},"versus":{"slots":["eyebrow","title","before_title","before_num","before_body","after_title","after_num","after_body","subhead","takeaway","footer","pageno"],"chart":false}}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
<!-- layouts/steps-vertical — structure-only variant (paint via skin). rows.steps{name,body} — the numbered circle uses the row index ({{_n}}); the connector line spans the list, so 3–5 steps all sit right. -->
|
|
2
2
|
<section class="slide" data-layout="steps-vertical" style="position:relative;width:1280px;height:720px;overflow:hidden"><div class="slide-backdrop"></div><div class="eyebrow-row" style="position:absolute;left:calc(96px * var(--space-scale,1));top:132px;display:flex;align-items:center;gap:14px"><span class="accent-bar" style="width:30px;height:1px;display:inline-block"></span><span class="eyebrow" style="font-size:calc(13px * var(--type-scale,1));letter-spacing:.28em">{{eyebrow|PROCESS}}</span></div><h2 class="deck-title" style="position:absolute;left:calc(92px * var(--space-scale,1));top:158px;font-size:calc(48px * var(--type-scale,1));letter-spacing:-.4px">{{title|实施步骤}}</h2>
|
|
3
3
|
<div style="position:absolute;left:calc(96px * var(--space-scale,1));right:calc(96px * var(--space-scale,1));top:290px;display:flex;flex-direction:column;gap:20px"><div class="step-line" style="position:absolute;left:31px;top:41px;bottom:41px;width:2px"></div>{{#steps}}<div style="position:relative;display:flex;align-items:center;gap:28px;height:82px"><div class="step-circle" style="width:64px;height:64px;border-radius:50%;flex:0 0 auto;display:flex;align-items:center;justify-content:center;text-align:center;line-height:1;font-size:calc(26px * var(--type-scale,1));font-weight:700">{{_n|1}}</div><div><div class="step-title" style="font-size:calc(21px * var(--type-scale,1));font-weight:700">{{name|占位步骤}}</div><p class="step-body" style="font-size:calc(15px * var(--type-scale,1));line-height:1.5;margin-top:4px">{{body|一句说明,替换为真实内容。}}</p></div></div>{{/steps}}</div>
|
|
4
|
-
<div class="rule rule-foot" style="position:absolute;left:calc(96px * var(--space-scale,1));right:calc(96px * var(--space-scale,1));bottom:40px;height:1px"></div><div class="deck-footer" style="position:absolute;left:calc(96px * var(--space-scale,1));bottom:17px;font-size:calc(12px * var(--type-scale,1));letter-spacing:.1em">{{footer|报告标题 / 章节}}</div><div class="deck-pageno" style="position:absolute;right:calc(96px * var(--space-scale,1));bottom:17px;font-size:calc(12px * var(--type-scale,1))">{{pageno|01}}</div></section>
|
|
4
|
+
<p class="deck-subhead" style="position:absolute;left:calc(96px * var(--space-scale,1));right:calc(96px * var(--space-scale,1));top:246px;font-size:calc(16px * var(--type-scale,1));line-height:1.5">{{subhead|}}</p><p class="deck-takeaway" style="position:absolute;left:calc(96px * var(--space-scale,1));right:calc(96px * var(--space-scale,1));bottom:56px;padding:4px 0 4px 14px;font-size:calc(16px * var(--type-scale,1));line-height:1.5;font-weight:600">{{takeaway|}}</p><div class="rule rule-foot" style="position:absolute;left:calc(96px * var(--space-scale,1));right:calc(96px * var(--space-scale,1));bottom:40px;height:1px"></div><div class="deck-footer" style="position:absolute;left:calc(96px * var(--space-scale,1));bottom:17px;font-size:calc(12px * var(--type-scale,1));letter-spacing:.1em">{{footer|报告标题 / 章节}}</div><div class="deck-pageno" style="position:absolute;right:calc(96px * var(--space-scale,1));bottom:17px;font-size:calc(12px * var(--type-scale,1))">{{pageno|01}}</div></section>
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
<!-- layouts/steps — structure-only (paint via styles/<skin>/skin.css). data-layout drives P1/P2/P3 + dedup. -->
|
|
2
2
|
<section class="slide" data-layout="steps" style="position:relative;width:1280px;height:720px;overflow:hidden"><div class="slide-backdrop"></div><div class="eyebrow-row" style="position:absolute;left:calc(96px * var(--space-scale,1));top:132px;display:flex;align-items:center;gap:14px"><span class="accent-bar" style="width:30px;height:1px;display:inline-block"></span><span class="eyebrow" style="font-size:calc(13px * var(--type-scale,1));letter-spacing:.28em">{{eyebrow|ROADMAP}}</span></div><h2 class="deck-title" style="position:absolute;left:calc(92px * var(--space-scale,1));top:158px;font-size:calc(48px * var(--type-scale,1));letter-spacing:-.4px">{{title|实施路径}}</h2>
|
|
3
3
|
<div class="step-line" style="position:absolute;left:150px;right:150px;top:392px;height:1px"></div><div class="steps" style="position:absolute;left:calc(96px * var(--space-scale,1));right:calc(96px * var(--space-scale,1));top:330px;display:grid;grid-template-columns:repeat(4,1fr);gap:24px"><div class="step" style="text-align:center"><div class="step-circle" style="width:120px;height:120px;margin:0 auto;border-radius:50%;display:flex;align-items:center;justify-content:center;text-align:center;line-height:1;font-size:calc(44px * var(--type-scale,1));font-weight:700">1</div><div class="step-tag" style="font-size:calc(12px * var(--type-scale,1));letter-spacing:.18em;margin-top:22px">STEP 01</div><div class="step-title" style="font-size:calc(21px * var(--type-scale,1));font-weight:600;margin-top:8px">{{step1_title|调研立项}}</div><p class="step-body" style="font-size:calc(14px * var(--type-scale,1));margin-top:6px">{{step1_body|明确目标范围}}</p></div><div class="step" style="text-align:center"><div class="step-circle" style="width:120px;height:120px;margin:0 auto;border-radius:50%;display:flex;align-items:center;justify-content:center;text-align:center;line-height:1;font-size:calc(44px * var(--type-scale,1));font-weight:700">2</div><div class="step-tag" style="font-size:calc(12px * var(--type-scale,1));letter-spacing:.18em;margin-top:22px">STEP 02</div><div class="step-title" style="font-size:calc(21px * var(--type-scale,1));font-weight:600;margin-top:8px">{{step2_title|方案设计}}</div><p class="step-body" style="font-size:calc(14px * var(--type-scale,1));margin-top:6px">{{step2_body|拆解关键路径}}</p></div><div class="step" style="text-align:center"><div class="step-circle" style="width:120px;height:120px;margin:0 auto;border-radius:50%;display:flex;align-items:center;justify-content:center;text-align:center;line-height:1;font-size:calc(44px * var(--type-scale,1));font-weight:700">3</div><div class="step-tag" style="font-size:calc(12px * var(--type-scale,1));letter-spacing:.18em;margin-top:22px">STEP 03</div><div class="step-title" style="font-size:calc(21px * var(--type-scale,1));font-weight:600;margin-top:8px">{{step3_title|试点落地}}</div><p class="step-body" style="font-size:calc(14px * var(--type-scale,1));margin-top:6px">{{step3_body|小范围验证}}</p></div><div class="step" style="text-align:center"><div class="step-circle" style="width:120px;height:120px;margin:0 auto;border-radius:50%;display:flex;align-items:center;justify-content:center;text-align:center;line-height:1;font-size:calc(44px * var(--type-scale,1));font-weight:700">4</div><div class="step-tag" style="font-size:calc(12px * var(--type-scale,1));letter-spacing:.18em;margin-top:22px">STEP 04</div><div class="step-title" style="font-size:calc(21px * var(--type-scale,1));font-weight:600;margin-top:8px">{{step4_title|全面推广}}</div><p class="step-body" style="font-size:calc(14px * var(--type-scale,1));margin-top:6px">{{step4_body|复制成功经验}}</p></div></div>
|
|
4
|
-
<div class="rule rule-foot" style="position:absolute;left:calc(96px * var(--space-scale,1));right:calc(96px * var(--space-scale,1));bottom:40px;height:1px"></div><div class="deck-footer" style="position:absolute;left:calc(96px * var(--space-scale,1));bottom:17px;font-size:calc(12px * var(--type-scale,1));letter-spacing:.1em">{{footer|报告标题 / 章节}}</div><div class="deck-pageno" style="position:absolute;right:calc(96px * var(--space-scale,1));bottom:17px;font-size:calc(12px * var(--type-scale,1))">{{pageno|01}}</div></section>
|
|
4
|
+
<p class="deck-subhead" style="position:absolute;left:calc(96px * var(--space-scale,1));right:calc(96px * var(--space-scale,1));top:246px;font-size:calc(16px * var(--type-scale,1));line-height:1.5">{{subhead|}}</p><p class="deck-takeaway" style="position:absolute;left:calc(96px * var(--space-scale,1));right:calc(96px * var(--space-scale,1));bottom:56px;padding:4px 0 4px 14px;font-size:calc(16px * var(--type-scale,1));line-height:1.5;font-weight:600">{{takeaway|}}</p><div class="rule rule-foot" style="position:absolute;left:calc(96px * var(--space-scale,1));right:calc(96px * var(--space-scale,1));bottom:40px;height:1px"></div><div class="deck-footer" style="position:absolute;left:calc(96px * var(--space-scale,1));bottom:17px;font-size:calc(12px * var(--type-scale,1));letter-spacing:.1em">{{footer|报告标题 / 章节}}</div><div class="deck-pageno" style="position:absolute;right:calc(96px * var(--space-scale,1));bottom:17px;font-size:calc(12px * var(--type-scale,1))">{{pageno|01}}</div></section>
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
<!-- layouts/three-kpi — structure-only variant (paint via skin). reuses class contract, no skin change. -->
|
|
2
2
|
<section class="slide" data-layout="three-kpi" style="position:relative;width:1280px;height:720px;overflow:hidden"><div class="slide-backdrop"></div><div class="eyebrow-row" style="position:absolute;left:calc(96px * var(--space-scale,1));top:132px;display:flex;align-items:center;gap:14px"><span class="accent-bar" style="width:30px;height:1px;display:inline-block"></span><span class="eyebrow" style="font-size:calc(13px * var(--type-scale,1));letter-spacing:.28em">{{eyebrow|KEY METRICS}}</span></div><h2 class="deck-title" style="position:absolute;left:calc(92px * var(--space-scale,1));top:158px;font-size:calc(48px * var(--type-scale,1));letter-spacing:-.4px">{{title|三个关键指标}}</h2>
|
|
3
3
|
<div style="position:absolute;left:calc(96px * var(--space-scale,1));right:calc(96px * var(--space-scale,1));top:300px;display:grid;grid-template-columns:1fr 1fr 1fr;gap:36px"><div class="kpi" style="position:relative;padding-left:20px"><span class="accent-bar" style="position:absolute;left:0;top:8px;width:4px;height:96px"></span><div class="kpi-num" style="font-size:calc(92px * var(--type-scale,1));font-weight:800;line-height:1">{{kpi1_num|585}}<span class="stat-unit" style="font-size:calc(32px * var(--type-scale,1))">{{kpi1_unit| 单位}}</span></div><div class="kpi-label" style="font-size:calc(15px * var(--type-scale,1));margin-top:12px;font-weight:600">{{kpi1_name|指标名}}</div><p class="card-body" style="font-size:calc(14px * var(--type-scale,1));line-height:1.5;margin-top:6px">{{kpi1_desc|指标一,给上下文说明。}}</p></div><div class="kpi" style="position:relative;padding-left:20px"><span class="accent-bar" style="position:absolute;left:0;top:8px;width:4px;height:96px"></span><div class="kpi-num" style="font-size:calc(92px * var(--type-scale,1));font-weight:800;line-height:1">{{kpi2_num|92}}<span class="stat-unit" style="font-size:calc(32px * var(--type-scale,1))">{{kpi2_unit| %}}</span></div><div class="kpi-label" style="font-size:calc(15px * var(--type-scale,1));margin-top:12px;font-weight:600">{{kpi2_name|指标名}}</div><p class="card-body" style="font-size:calc(14px * var(--type-scale,1));line-height:1.5;margin-top:6px">{{kpi2_desc|指标二,给上下文说明。}}</p></div><div class="kpi" style="position:relative;padding-left:20px"><span class="accent-bar" style="position:absolute;left:0;top:8px;width:4px;height:96px"></span><div class="kpi-num" style="font-size:calc(92px * var(--type-scale,1));font-weight:800;line-height:1">{{kpi3_num|3.4}}<span class="stat-unit" style="font-size:calc(32px * var(--type-scale,1))">{{kpi3_unit| ×}}</span></div><div class="kpi-label" style="font-size:calc(15px * var(--type-scale,1));margin-top:12px;font-weight:600">{{kpi3_name|指标名}}</div><p class="card-body" style="font-size:calc(14px * var(--type-scale,1));line-height:1.5;margin-top:6px">{{kpi3_desc|指标三,给上下文说明。}}</p></div></div>
|
|
4
|
-
<div class="rule rule-foot" style="position:absolute;left:calc(96px * var(--space-scale,1));right:calc(96px * var(--space-scale,1));bottom:40px;height:1px"></div><div class="deck-footer" style="position:absolute;left:calc(96px * var(--space-scale,1));bottom:17px;font-size:calc(12px * var(--type-scale,1));letter-spacing:.1em">{{footer|报告标题 / 章节}}</div><div class="deck-pageno" style="position:absolute;right:calc(96px * var(--space-scale,1));bottom:17px;font-size:calc(12px * var(--type-scale,1))">{{pageno|01}}</div></section>
|
|
4
|
+
<p class="deck-subhead" style="position:absolute;left:calc(96px * var(--space-scale,1));right:calc(96px * var(--space-scale,1));top:246px;font-size:calc(16px * var(--type-scale,1));line-height:1.5">{{subhead|}}</p><p class="deck-takeaway" style="position:absolute;left:calc(96px * var(--space-scale,1));right:calc(96px * var(--space-scale,1));bottom:56px;padding:4px 0 4px 14px;font-size:calc(16px * var(--type-scale,1));line-height:1.5;font-weight:600">{{takeaway|}}</p><div class="rule rule-foot" style="position:absolute;left:calc(96px * var(--space-scale,1));right:calc(96px * var(--space-scale,1));bottom:40px;height:1px"></div><div class="deck-footer" style="position:absolute;left:calc(96px * var(--space-scale,1));bottom:17px;font-size:calc(12px * var(--type-scale,1));letter-spacing:.1em">{{footer|报告标题 / 章节}}</div><div class="deck-pageno" style="position:absolute;right:calc(96px * var(--space-scale,1));bottom:17px;font-size:calc(12px * var(--type-scale,1))">{{pageno|01}}</div></section>
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
<!-- layouts/timeline — structure-only variant (paint via skin; uses batch-5 classes). -->
|
|
2
2
|
<section class="slide" data-layout="timeline" style="position:relative;width:1280px;height:720px;overflow:hidden"><div class="slide-backdrop"></div><div class="eyebrow-row" style="position:absolute;left:calc(96px * var(--space-scale,1));top:132px;display:flex;align-items:center;gap:14px"><span class="accent-bar" style="width:30px;height:1px;display:inline-block"></span><span class="eyebrow" style="font-size:calc(13px * var(--type-scale,1));letter-spacing:.28em">{{eyebrow|TIMELINE}}</span></div><h2 class="deck-title" style="position:absolute;left:calc(92px * var(--space-scale,1));top:158px;font-size:calc(48px * var(--type-scale,1));letter-spacing:-.4px">{{title|关键里程碑}}</h2>
|
|
3
3
|
<div class="step-line" style="position:absolute;left:170px;right:170px;top:396px;height:2px"></div><div style="position:absolute;left:calc(96px * var(--space-scale,1));right:calc(96px * var(--space-scale,1));top:298px;display:grid;grid-template-columns:repeat(4,1fr)"><div style="text-align:center"><div class="tl-date" style="font-size:calc(34px * var(--type-scale,1));font-weight:800;line-height:1">{{item1_date|2022}}</div><div class="tl-dot" style="width:16px;height:16px;margin:34px auto 0"></div><div class="tl-title" style="font-size:calc(19px * var(--type-scale,1));font-weight:700;margin-top:22px">{{item1_title|立项启动}}</div><p class="tl-desc" style="font-size:calc(14px * var(--type-scale,1));line-height:1.5;margin-top:6px">{{item1_desc|一句里程碑说明。}}</p></div><div style="text-align:center"><div class="tl-date" style="font-size:calc(34px * var(--type-scale,1));font-weight:800;line-height:1">{{item2_date|2023}}</div><div class="tl-dot" style="width:16px;height:16px;margin:34px auto 0"></div><div class="tl-title" style="font-size:calc(19px * var(--type-scale,1));font-weight:700;margin-top:22px">{{item2_title|试点验证}}</div><p class="tl-desc" style="font-size:calc(14px * var(--type-scale,1));line-height:1.5;margin-top:6px">{{item2_desc|一句里程碑说明。}}</p></div><div style="text-align:center"><div class="tl-date" style="font-size:calc(34px * var(--type-scale,1));font-weight:800;line-height:1">{{item3_date|2024}}</div><div class="tl-dot" style="width:16px;height:16px;margin:34px auto 0"></div><div class="tl-title" style="font-size:calc(19px * var(--type-scale,1));font-weight:700;margin-top:22px">{{item3_title|规模推广}}</div><p class="tl-desc" style="font-size:calc(14px * var(--type-scale,1));line-height:1.5;margin-top:6px">{{item3_desc|一句里程碑说明。}}</p></div><div style="text-align:center"><div class="tl-date" style="font-size:calc(34px * var(--type-scale,1));font-weight:800;line-height:1">{{item4_date|2025}}</div><div class="tl-dot" style="width:16px;height:16px;margin:34px auto 0"></div><div class="tl-title" style="font-size:calc(19px * var(--type-scale,1));font-weight:700;margin-top:22px">{{item4_title|全面落地}}</div><p class="tl-desc" style="font-size:calc(14px * var(--type-scale,1));line-height:1.5;margin-top:6px">{{item4_desc|一句里程碑说明。}}</p></div></div>
|
|
4
|
-
<div class="rule rule-foot" style="position:absolute;left:calc(96px * var(--space-scale,1));right:calc(96px * var(--space-scale,1));bottom:40px;height:1px"></div><div class="deck-footer" style="position:absolute;left:calc(96px * var(--space-scale,1));bottom:17px;font-size:calc(12px * var(--type-scale,1));letter-spacing:.1em">{{footer|报告标题 / 章节}}</div><div class="deck-pageno" style="position:absolute;right:calc(96px * var(--space-scale,1));bottom:17px;font-size:calc(12px * var(--type-scale,1))">{{pageno|01}}</div></section>
|
|
4
|
+
<p class="deck-subhead" style="position:absolute;left:calc(96px * var(--space-scale,1));right:calc(96px * var(--space-scale,1));top:246px;font-size:calc(16px * var(--type-scale,1));line-height:1.5">{{subhead|}}</p><p class="deck-takeaway" style="position:absolute;left:calc(96px * var(--space-scale,1));right:calc(96px * var(--space-scale,1));bottom:56px;padding:4px 0 4px 14px;font-size:calc(16px * var(--type-scale,1));line-height:1.5;font-weight:600">{{takeaway|}}</p><div class="rule rule-foot" style="position:absolute;left:calc(96px * var(--space-scale,1));right:calc(96px * var(--space-scale,1));bottom:40px;height:1px"></div><div class="deck-footer" style="position:absolute;left:calc(96px * var(--space-scale,1));bottom:17px;font-size:calc(12px * var(--type-scale,1));letter-spacing:.1em">{{footer|报告标题 / 章节}}</div><div class="deck-pageno" style="position:absolute;right:calc(96px * var(--space-scale,1));bottom:17px;font-size:calc(12px * var(--type-scale,1))">{{pageno|01}}</div></section>
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
<!-- layouts/toc-panel — structure-only. role=toc. 左大标题+插图 / 右深色面板目录. rows.entries{name,desc} — 3–5 chapters spread down the panel. -->
|
|
2
2
|
<section class="slide" data-layout="toc-panel" style="position:relative;width:1280px;height:720px;overflow:hidden"><div class="slide-backdrop"></div>
|
|
3
|
-
<div class="toc-topbar" style="position:absolute;left:80px;right:80px;top:34px;display:flex;justify-content:space-between;align-items:center;font-size:calc(15px * var(--type-scale,1));font-weight:700"><span class="toc-brand">{{brand1|公司名称}}</span><span class="toc-brand">{{brand2|战略评审}}</span><span class="toc-brand">{{brand3|2026-03-15}}</span></div>
|
|
3
|
+
<div class="toc-topbar" style="position:absolute;left:calc(80px * var(--space-scale,1));right:calc(80px * var(--space-scale,1));top:34px;display:flex;justify-content:space-between;align-items:center;font-size:calc(15px * var(--type-scale,1));font-weight:700"><span class="toc-brand">{{brand1|公司名称}}</span><span class="toc-brand">{{brand2|战略评审}}</span><span class="toc-brand">{{brand3|2026-03-15}}</span></div>
|
|
4
4
|
<div class="surface" style="position:absolute;left:calc(96px * var(--space-scale,1));top:150px;width:300px;height:280px;display:flex;align-items:center;justify-content:center;border-radius:var(--card-radius)"><span class="surface-label" style="font-size:calc(14px * var(--type-scale,1))">{{image_label|插图占位}}</span></div>
|
|
5
5
|
<h1 class="cover-title" style="position:absolute;left:calc(92px * var(--space-scale,1));top:456px;font-size:calc(76px * var(--type-scale,1));line-height:1.02;letter-spacing:-1px">{{title|目录}}</h1>
|
|
6
6
|
<div class="panel" style="position:absolute;left:700px;right:80px;top:96px;bottom:56px;border-radius:var(--card-radius);padding:56px 60px;display:flex;flex-direction:column;justify-content:space-between">
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
<!-- layouts/two-kpi — structure-only variant (paint via skin). -->
|
|
2
2
|
<section class="slide" data-layout="two-kpi" style="position:relative;width:1280px;height:720px;overflow:hidden"><div class="slide-backdrop"></div><div class="eyebrow-row" style="position:absolute;left:calc(96px * var(--space-scale,1));top:132px;display:flex;align-items:center;gap:14px"><span class="accent-bar" style="width:30px;height:1px;display:inline-block"></span><span class="eyebrow" style="font-size:calc(13px * var(--type-scale,1));letter-spacing:.28em">{{eyebrow|KEY METRICS}}</span></div><h2 class="deck-title" style="position:absolute;left:calc(92px * var(--space-scale,1));top:158px;font-size:calc(48px * var(--type-scale,1));letter-spacing:-.4px">{{title|两个关键指标}}</h2>
|
|
3
|
-
<div style="position:absolute;left:calc(96px * var(--space-scale,1));right:calc(96px * var(--space-scale,1));top:320px;display:grid;grid-template-columns:1fr 1fr;gap:40px"><div class="kpi" style="position:relative;padding-left:22px"><span class="accent-bar" style="position:absolute;left:0;top:10px;width:5px;height:120px"></span><div class="kpi-num" style="font-size:calc(132px * var(--type-scale,1));font-weight:800;line-height:1">{{kpi1_num|585}}<span class="stat-unit" style="font-size:calc(44px * var(--type-scale,1))">{{kpi1_unit| 单位}}</span></div><p class="kpi-label" style="font-size:calc(16px * var(--type-scale,1));margin-top:12px">{{kpi1_label|指标一说明,给上下文}}</p></div><div class="kpi" style="position:relative;padding-left:22px"><span class="accent-bar" style="position:absolute;left:0;top:10px;width:5px;height:120px"></span><div class="kpi-num" style="font-size:calc(132px * var(--type-scale,1));font-weight:800;line-height:1">{{kpi2_num|92}}<span class="stat-unit" style="font-size:calc(44px * var(--type-scale,1))">{{kpi2_unit| %}}</span></div><p class="kpi-label" style="font-size:calc(16px * var(--type-scale,1));margin-top:12px">{{kpi2_label|指标二说明,给上下文}}</p></div></div>
|
|
4
|
-
<div class="rule rule-foot" style="position:absolute;left:calc(96px * var(--space-scale,1));right:calc(96px * var(--space-scale,1));bottom:40px;height:1px"></div><div class="deck-footer" style="position:absolute;left:calc(96px * var(--space-scale,1));bottom:17px;font-size:calc(12px * var(--type-scale,1));letter-spacing:.1em">{{footer|报告标题 / 章节}}</div><div class="deck-pageno" style="position:absolute;right:calc(96px * var(--space-scale,1));bottom:17px;font-size:calc(12px * var(--type-scale,1))">{{pageno|01}}</div></section>
|
|
3
|
+
<div style="position:absolute;left:calc(96px * var(--space-scale,1));right:calc(96px * var(--space-scale,1));top:320px;display:grid;grid-template-columns:1fr 1fr;gap:40px"><div class="kpi" style="position:relative;padding-left:22px"><span class="accent-bar" style="position:absolute;left:0;top:10px;width:5px;height:120px"></span><div class="kpi-num" style="font-size:calc(132px * var(--type-scale,1));font-weight:800;line-height:1">{{kpi1_num|585}}<span class="stat-unit" style="font-size:calc(44px * var(--type-scale,1))">{{kpi1_unit| 单位}}</span></div><p class="kpi-label" style="font-size:calc(16px * var(--type-scale,1));margin-top:12px">{{kpi1_label|指标一说明,给上下文}}</p><p class="card-body" style="font-size:calc(14px * var(--type-scale,1));line-height:1.5;margin-top:6px">{{kpi1_desc|一句话说明这个数字意味着什么。}}</p></div><div class="kpi" style="position:relative;padding-left:22px"><span class="accent-bar" style="position:absolute;left:0;top:10px;width:5px;height:120px"></span><div class="kpi-num" style="font-size:calc(132px * var(--type-scale,1));font-weight:800;line-height:1">{{kpi2_num|92}}<span class="stat-unit" style="font-size:calc(44px * var(--type-scale,1))">{{kpi2_unit| %}}</span></div><p class="kpi-label" style="font-size:calc(16px * var(--type-scale,1));margin-top:12px">{{kpi2_label|指标二说明,给上下文}}</p><p class="card-body" style="font-size:calc(14px * var(--type-scale,1));line-height:1.5;margin-top:6px">{{kpi2_desc|一句话说明这个数字意味着什么。}}</p></div></div>
|
|
4
|
+
<p class="deck-subhead" style="position:absolute;left:calc(96px * var(--space-scale,1));right:calc(96px * var(--space-scale,1));top:246px;font-size:calc(16px * var(--type-scale,1));line-height:1.5">{{subhead|}}</p><p class="deck-takeaway" style="position:absolute;left:calc(96px * var(--space-scale,1));right:calc(96px * var(--space-scale,1));bottom:56px;padding:4px 0 4px 14px;font-size:calc(16px * var(--type-scale,1));line-height:1.5;font-weight:600">{{takeaway|}}</p><div class="rule rule-foot" style="position:absolute;left:calc(96px * var(--space-scale,1));right:calc(96px * var(--space-scale,1));bottom:40px;height:1px"></div><div class="deck-footer" style="position:absolute;left:calc(96px * var(--space-scale,1));bottom:17px;font-size:calc(12px * var(--type-scale,1));letter-spacing:.1em">{{footer|报告标题 / 章节}}</div><div class="deck-pageno" style="position:absolute;right:calc(96px * var(--space-scale,1));bottom:17px;font-size:calc(12px * var(--type-scale,1))">{{pageno|01}}</div></section>
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
<!-- layouts/versus — structure-only variant (paint via skin). reuses class contract, no skin change. -->
|
|
2
2
|
<section class="slide" data-layout="versus" style="position:relative;width:1280px;height:720px;overflow:hidden"><div class="slide-backdrop"></div><div class="eyebrow-row" style="position:absolute;left:calc(96px * var(--space-scale,1));top:132px;display:flex;align-items:center;gap:14px"><span class="accent-bar" style="width:30px;height:1px;display:inline-block"></span><span class="eyebrow" style="font-size:calc(13px * var(--type-scale,1));letter-spacing:.28em">{{eyebrow|BEFORE / AFTER}}</span></div><h2 class="deck-title" style="position:absolute;left:calc(92px * var(--space-scale,1));top:158px;font-size:calc(48px * var(--type-scale,1));letter-spacing:-.4px">{{title|改造前后对比}}</h2>
|
|
3
3
|
<div class="card" style="position:absolute;left:calc(96px * var(--space-scale,1));top:300px;width:472px;height:300px;padding:34px;display:flex;flex-direction:column;justify-content:center"><div class="card-title" style="font-size:calc(20px * var(--type-scale,1));font-weight:700">{{before_title|改造前}}</div><div class="kpi-num" style="font-size:calc(72px * var(--type-scale,1));font-weight:800;line-height:1.1;margin-top:10px">{{before_num|T+1}}</div><p class="card-body" style="font-size:calc(15px * var(--type-scale,1));margin-top:8px">{{before_body|报表时效,人工汇总。}}</p></div><div class="step-circle" style="position:absolute;left:50%;top:410px;transform:translateX(-50%);width:88px;height:88px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:calc(24px * var(--type-scale,1));font-weight:700;z-index:2">VS</div><div class="card cmp-col--rec" style="position:absolute;right:calc(96px * var(--space-scale,1));top:300px;width:472px;height:300px;padding:34px;display:flex;flex-direction:column;justify-content:center"><div class="card-title" style="font-size:calc(20px * var(--type-scale,1));font-weight:700">{{after_title|改造后}}</div><div class="kpi-num" style="font-size:calc(72px * var(--type-scale,1));font-weight:800;line-height:1.1;margin-top:10px">{{after_num|分钟级}}</div><p class="card-body" style="font-size:calc(15px * var(--type-scale,1));margin-top:8px">{{after_body|实时计算,自动刷新。}}</p></div>
|
|
4
|
-
<div class="rule rule-foot" style="position:absolute;left:calc(96px * var(--space-scale,1));right:calc(96px * var(--space-scale,1));bottom:40px;height:1px"></div><div class="deck-footer" style="position:absolute;left:calc(96px * var(--space-scale,1));bottom:17px;font-size:calc(12px * var(--type-scale,1));letter-spacing:.1em">{{footer|报告标题 / 章节}}</div><div class="deck-pageno" style="position:absolute;right:calc(96px * var(--space-scale,1));bottom:17px;font-size:calc(12px * var(--type-scale,1))">{{pageno|01}}</div></section>
|
|
4
|
+
<p class="deck-subhead" style="position:absolute;left:calc(96px * var(--space-scale,1));right:calc(96px * var(--space-scale,1));top:246px;font-size:calc(16px * var(--type-scale,1));line-height:1.5">{{subhead|}}</p><p class="deck-takeaway" style="position:absolute;left:calc(96px * var(--space-scale,1));right:calc(96px * var(--space-scale,1));bottom:56px;padding:4px 0 4px 14px;font-size:calc(16px * var(--type-scale,1));line-height:1.5;font-weight:600">{{takeaway|}}</p><div class="rule rule-foot" style="position:absolute;left:calc(96px * var(--space-scale,1));right:calc(96px * var(--space-scale,1));bottom:40px;height:1px"></div><div class="deck-footer" style="position:absolute;left:calc(96px * var(--space-scale,1));bottom:17px;font-size:calc(12px * var(--type-scale,1));letter-spacing:.1em">{{footer|报告标题 / 章节}}</div><div class="deck-pageno" style="position:absolute;right:calc(96px * var(--space-scale,1));bottom:17px;font-size:calc(12px * var(--type-scale,1))">{{pageno|01}}</div></section>
|
|
@@ -27,6 +27,6 @@ V1 pack = `pack.css` **加上**一组包专属签名版式。这个耦合模型
|
|
|
27
27
|
|
|
28
28
|
## 新增一个包
|
|
29
29
|
|
|
30
|
-
见
|
|
30
|
+
见 `docs/ppt-template-tooling.md` 的"新增一个 pack"。`pack.css` 由
|
|
31
31
|
`gen-skin.mjs <id> --pack` 从 `ppt-tpl/families/<id>/family.json` 生成,与 skin
|
|
32
32
|
的 CSS 完全同构;专属版式是手写的结构创新,不由生成器产。
|
package/skills/document/pdf.md
CHANGED
|
@@ -34,6 +34,19 @@ render pages only when the content is visual.
|
|
|
34
34
|
password-protected PDF exits 1 (`PDF is password-protected … decrypt first`) from
|
|
35
35
|
every reader and editor: ask for the password and `pdf-ops decrypt` it.
|
|
36
36
|
|
|
37
|
+
## Fonts in generated PDFs
|
|
38
|
+
|
|
39
|
+
- App printing preserves caller-loaded embedded fonts before CJK fallback. A
|
|
40
|
+
system family name alone does not guarantee portable typography.
|
|
41
|
+
- Standalone printing rejects missing/invalid font manifests, missing/empty
|
|
42
|
+
referenced faces and failed web-font loads. `TALOS_CJK_FONTS=system` explicitly
|
|
43
|
+
relies on host fonts; it does not repair missing assets.
|
|
44
|
+
- Page labels: centered 8pt Helvetica/Noto Sans SC; reserve ≥24pt per active edge.
|
|
45
|
+
`{title}`, `{page}`, `{pages}` resolve after pagination. Overflow/missing glyphs fail.
|
|
46
|
+
- PDF reports label `validationScope:"structure-only"` and
|
|
47
|
+
`textStatsSource:"input-spec"`. Counts describe requested text, not visible
|
|
48
|
+
glyphs. Inspect previews for font substitution, missing text and clipping.
|
|
49
|
+
|
|
37
50
|
## Forms and flat-PDF filling
|
|
38
51
|
|
|
39
52
|
1. `bin/pdf-form.cjs list in.pdf` → field names and types; `fill in.pdf values.json
|