@lark-apaas/coding-steering 0.1.16-dev.a4b57cd → 0.1.16-dev.b14a724
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
CHANGED
|
@@ -1,148 +1,153 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: make-a-deck
|
|
3
|
-
description:
|
|
3
|
+
description: 制作演示文稿 / PPT / pitch deck / slides / keynote。从零新建、从文档材料提炼重组、或对已有 PPTX 重新设计。触发词:presentation, slides, deck, PPT, PPTX, keynote, pitch, 演示文稿, 幻灯片, 路演
|
|
4
|
+
available-agents:
|
|
5
|
+
- CreativeDesign
|
|
4
6
|
---
|
|
5
7
|
|
|
6
|
-
#
|
|
8
|
+
# 制作演示文稿(deck)
|
|
7
9
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
-
|
|
19
|
-
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
-
|
|
28
|
-
-
|
|
29
|
-
-
|
|
30
|
-
-
|
|
31
|
-
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
-
|
|
60
|
-
|
|
61
|
-
-
|
|
62
|
-
|
|
63
|
-
-
|
|
64
|
-
|
|
65
|
-
-
|
|
66
|
-
|
|
67
|
-
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
-
|
|
85
|
-
|
|
86
|
-
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
-
|
|
103
|
-
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
- "
|
|
110
|
-
-
|
|
111
|
-
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
-
|
|
136
|
-
-
|
|
137
|
-
-
|
|
138
|
-
-
|
|
139
|
-
-
|
|
140
|
-
-
|
|
141
|
-
-
|
|
142
|
-
-
|
|
143
|
-
-
|
|
144
|
-
-
|
|
145
|
-
-
|
|
146
|
-
-
|
|
147
|
-
-
|
|
148
|
-
-
|
|
10
|
+
把演示文稿做成单个自包含的 HTML 页面。HTML 是输出载体,但设计判断按 PPT 来做:固定画幅、强叙事、可投影 / 可异步阅读、每页只承担一个清楚的沟通任务。
|
|
11
|
+
|
|
12
|
+
把自己当成演示文稿设计师,不是网页开发者:像顾问、分析师、高管准备董事会材料那样思考——清晰、叙事流、后排可读。每一页都同时是版式设计和文案写作。开始落 HTML 前,先写大纲;好的大纲本身就是一次叙事结构训练。
|
|
13
|
+
|
|
14
|
+
## 信息密度与结构饱满度
|
|
15
|
+
|
|
16
|
+
不要先把 deck 归类成预设模式,也不要用单个标签决定页面长相。根据受众、演示方式、内容复杂度和页面任务确定信息密度,先判断用户目标、材料形态和读者场景,再为每页设计具体的信息结构。好的 deck 不是字越少越高级,也不是字越多越专业,而是**结构饱满、层级清楚、文字克制、证据可扫读**。核心页可以更聚焦,分析与参考页可以更完整。
|
|
17
|
+
|
|
18
|
+
同时避开两个失败极端:
|
|
19
|
+
|
|
20
|
+
- **欠填充**:主体撑不起页面,只靠放大标题、拉高卡片、拉开列距、把来源压到底部或增加空白来撑版面。
|
|
21
|
+
- **过填充**:页面被长句和大段正文塞满,缺少图、表、矩阵、路径、标注、层级和视觉转译。
|
|
22
|
+
|
|
23
|
+
页面可以由图、表、矩阵、KPI strip、路径图、截图标注、对比框架或稳定卡片 scaffold 承载,而不是默认用大字号正文撑满。图表如果是本页主要证据,就应成为主视觉,不是塞在角落里的小配件。转场、封面和结尾页可以聚焦,分析、对比和案例页则应保留完成判断所需的信息。
|
|
24
|
+
|
|
25
|
+
**容量兜底。** 所有内容必须完整落在画布安全区内,不得滚动、溢出、重叠、裁切或依赖过小字体容纳。根据页面的真实信息量平衡纵向容量与信息密度:信息较多时,优先建立层级、调整构图、转换表达或拆页,只删除重复和低价值表达;信息本来较少时不要继续压缩,可通过重组视觉关系、强化核心内容或合并相邻页面解决,但不编造信息填充空间。**不要把整份文档直接贴进幻灯片**——这是最常见的失败模式。落 plan 时就想清楚:哪些内容更适合做成表格、图表、流程、引用页或图片页。每页都要预留安全底边:页脚、页码、来源和正文之间必须有明确间距,主体元素不能贴到画布底部或被页面边界裁掉。
|
|
26
|
+
|
|
27
|
+
## 叙事、标题与 Storyboard
|
|
28
|
+
|
|
29
|
+
- 先写完整标题序列放进 `scratchpad.md`。只读标题就应能看懂整份 deck 的逻辑(像书的目录)。检查是否形成清楚路径:背景 → 问题 → 洞察 → 方案 → 证据 → 下一步。
|
|
30
|
+
- 紧接着写 storyboard。为每页记录:本页阅读动作、关键判断、可用证据、信息关系、表达结构、是否足以独立成页、与前后页的节奏关系。不要给页面贴固定类型标签;用自然语言说明这一页为什么存在。
|
|
31
|
+
- 选定一种标题语法并全程一致:要么名词短语("市场机会""产品架构"),要么简短判断句("新用户增长主要来自自然流量")。
|
|
32
|
+
- 大字号标题需要换行时,按语义短语断行,避免单字成行、标点出现在行首或拆开固定短语;可通过调整文本区、字号或断行位置修正失衡。
|
|
33
|
+
- 每页正文只服务本页标题,不塞旁支。封面、章节页、转场页、结尾页也要服务故事,不做纯装饰。
|
|
34
|
+
- 文字要有明确功能:保留承担信息、导航、出处或真实品牌识别作用的文字;不为营造风格或填补空间而编造、重复无信息价值的辅助文字。
|
|
35
|
+
|
|
36
|
+
避免这些"AI 味"标题(它们会暴露 deck 是 AI 生成的)——标题的任务是**定位页面、推进叙事**,不是替演讲者甩结论 / 喊 punchline:
|
|
37
|
+
|
|
38
|
+
- "不是 X,而是 Y"式过度反转。
|
|
39
|
+
- "关键时刻""魔法时刻"式空泛或故作深刻。
|
|
40
|
+
- 过度夸张的行动号召、为制造张力而制造张力。
|
|
41
|
+
- 每页固定一个 takeaway 盒子,导致标题和正文重复。
|
|
42
|
+
|
|
43
|
+
## 页面规划与节奏
|
|
44
|
+
|
|
45
|
+
页面由材料和叙事需要长出来,不从预设模板或页型清单里挑。先在 storyboard 中写明每页的叙事作用、核心内容关系、视觉主角和需要承载的素材,再看信息关系决定版式:
|
|
46
|
+
|
|
47
|
+
- 并列 / 分类:用矩阵、分组卡片、标签云或多列清单,保持同层级内容可比较。
|
|
48
|
+
- 前后变化 / 方案对比:用 before-after、对照矩阵、差异表、评分表或坐标图。
|
|
49
|
+
- 过程 / 时间 / 执行动作:用时间线、泳道、步骤图、甘特式条带或 checklist。
|
|
50
|
+
- 因果 / 转化 / 漏斗:用链路图、漏斗、树状拆解、输入输出图或指标归因。
|
|
51
|
+
- 层级 / 系统 / 架构:用分层结构、系统图、地图、嵌套框或模块关系图。
|
|
52
|
+
- 数据 / 证据集合:用 KPI strip、图表、表格、标注数字和口径说明,而不是只摆大数字。
|
|
53
|
+
- 案例 / 场景:用情境、机制、动作、结果的组合结构;可以加入真实图片、截图或局部标注。
|
|
54
|
+
- 选择 / 决策 / 下一步:用决策矩阵、优先级地图、路线图、风险清单或行动表。
|
|
55
|
+
|
|
56
|
+
根据叙事阶段和整套缩略图轮廓安排节奏变化。同层级的并列内容保持平行 scaffold,利于跨页比较;叙事功能或内容关系不同但缩略图轮廓高度相似时,应重新选择构图。变化来自信息结构,不靠堆装饰。
|
|
57
|
+
|
|
58
|
+
## 内容组织与版式策略
|
|
59
|
+
deck 每页先判断它要让观众完成什么阅读动作:抓结论、看证据、比较差异、理解过程、记住模型、看到风险、做选择,还是进入下一章节。版式、文字、图形和动效都只是表达手段,选择最能讲清这一页的组合。
|
|
60
|
+
- 同时判断内容关系、视觉主角和信息量,再决定构图。可以用图片、图表、关键数字、结构图或核心结论建立视觉中心,其余元素为它服务;不要默认把信息拆成若干大小相近的卡片。
|
|
61
|
+
- 主动做视觉转译:定量数据适合用趋势、对比、分布或构成图表达;流程、因果、层级、系统和时间关系适合用流程图、关系图、矩阵、时间线或信息图表达;产品、人物、地点和场景适合用有信息价值的图片表达。不要把适合可视化的信息重新写成一组文字卡片。图表和图示应表达明确结论,没有可靠数据时不虚构定量图表。
|
|
62
|
+
- 数据页先确定主图表。标题若在讲规模增长、区域分布、结构占比、趋势轨迹、驱动因素或方案对比,主图表 / 主表格必须成为有效视觉中心;KPI strip、说明文字、来源和注释只能辅助它。不要用固定宽度比例机械判断好坏,重点检查图表周围是否出现大块无功能留白,或图表是否被旁边的文字列表、脚注、装饰和空白压成小配件。可用全宽图、纵向大图、图表 + 侧栏、图表 + 注释带、矩阵或小倍数图,选择能让主体区域被有效利用的构图。
|
|
63
|
+
- 让内容容量决定版式。布局应适应真实信息量:内容少时放大核心表达并重组构图,可升格为观点页、图解页、图片页或并入相邻页;内容多时建立层级、图解、表格、矩阵或拆页。不要把内容硬塞进固定卡片,也不要让小块内容漂浮在大片空白中。
|
|
64
|
+
- 先算垂直预算再排纵向内容。表格、时间线、融资里程碑、排行榜、横向条形图、评分条和 checklist 都要按“标题区 + KPI 区 + 主体行项 + 组间距 + 来源页脚安全区”估算高度。超过可用高度时重组行项、改成两列 / 矩阵 / 小倍数图,或拆页;不要让最后几行延伸到页脚或画布外。
|
|
65
|
+
- 根据当前页内容现场生成结构,不局限于常见页型。可以保留强文字页,也可以把材料转成模型图、关系图、流程、对比矩阵、时间线、象限、分层结构、地图、系统图、路径图、图表注释、截图标注或视觉隐喻;还可以把重要句子放大成观点页。示例只是启发,不是清单。
|
|
66
|
+
- 同一章节内可以有连续叙事,但每页的结构不必一样。核心页给足面积和视觉重量,支撑页可以更密集;重要概念可以用图形和标注解释,也可以用排版、引用、数字、对照文本或图文组合解释。
|
|
67
|
+
- 单页可以承载“小型演示过程”:先出现结论,再让支撑内容逐步显现,最后高亮关键判断。支撑内容可以是文字、数字、图形、数据、截图或关系结构;是否使用动效由表达目的决定。
|
|
68
|
+
- 如果一页只有少量概念,不要机械铺成几张卡片。先判断概念之间有没有关系:并列、递进、因果、闭环、漏斗、分层、坐标、路径、前后对比或组合模型。关系明确时可以画出来;关系不明确时,可以改成更有力量的文字观点页、引用页,或合并到相邻页。
|
|
69
|
+
- 如果一页出现“少量文字 + 大面积固定高度卡片 / 巨大页脚空白”,视为欠填充,不要交付。优先检查是否缺少支撑判断所需的结构性证据(口径、来源、对比基准、趋势、影响、风险、下一步),并用数字、标签、表格单元、图表注释或路径节点组织;不要为了简洁丢失必要证据,也不要把每个证据扩成重复长句。没有足够内容支撑独立成页时,合并到相邻页。
|
|
70
|
+
- 如果一页出现“两列大段文字 + 底部 KPI 条 / 来源脚注”的组合,也视为过密且缺少设计转译。应改成对比矩阵、雷达/坐标、产品拆解图、流程图、截图标注、分层卡片或拆成两页;不要把竞品分析、案例复盘、风险应对写成左右两块说明书。
|
|
71
|
+
- 卡片高度应由内容和网格共同决定,不要用等高大卡片撑满版面。卡片内容很少时,改用横向流程、对照矩阵、双层信息卡或紧凑清单;正文长到难以扫读时,重组为标签、表格、分组小项或拆页,同时保留支撑判断所需的信息。只有内容确实接近等量时才使用大面积等高卡片。
|
|
72
|
+
- 版式变化来自内容关系,不来自凑组件。不要为了“丰富”而加无依据内容、无意义图标或装饰图形;图形、图片和动效只有在能帮助观众理解时才使用。
|
|
73
|
+
|
|
74
|
+
## 版式系统(写第一页前先定)
|
|
75
|
+
|
|
76
|
+
- 用 CSS 变量定义字号 / 间距,放在 `<head>` 的 `<style>` 里,**先于任何 slide**。这让整份 deck 改一个数(直接改变量,或用 Tweaks 滑块绑同一变量)就能统一缩放,slide 本体保持无脚本的静态 HTML。下面只是一套适中起点;实际要根据 storyboard 里的信息结构微调,不要所有 deck 都套同一组大字号 / 大留白参数。1920×1080 起点:
|
|
77
|
+
```css
|
|
78
|
+
:root {
|
|
79
|
+
--type-title: 52px; --type-subtitle: 36px; --type-body: 28px; --type-small: 24px;
|
|
80
|
+
--pad-top: 72px; --pad-bottom: 56px; --pad-x: 84px;
|
|
81
|
+
--gap-title: 30px; --gap-item: 18px;
|
|
82
|
+
}
|
|
83
|
+
```
|
|
84
|
+
1280×720 时整体 ×0.67。每个 font-size 都用 `--type-*`,每个 padding / gap 都用 `--pad-*` / `--gap-*`。`--pad-bottom` 是结构性的底部呼吸空间,不是空白;如果底部只是空着,应把空间交还给正文、图表、注释或合并页。
|
|
85
|
+
- 每页先建立占满画布的页面外壳,承担背景和整体布局,设置 `width: 100%; height: 100%; box-sizing: border-box`。主体安全区可以直接由外壳的 padding 形成;需要独立内容层时,使用 `position: absolute; inset: var(--pad-top) var(--pad-x) var(--pad-bottom)`。主体优先采用正常的 CSS grid / flex 流和明确 gap。`minmax(0, 1fr)`、`min-width: 0`、`min-height: 0` 只用于已经处在明确尺寸轨道中的子项,避免内容撑破布局,不能代替页面高度。只有装饰、页码和来源适合绝对定位;表格、图表、列表、时间线不要用 absolute bottom 去硬塞。
|
|
86
|
+
- 网页默认(14-16px 正文、48-72px 边距)对投影太小。标题 ≥ 48px,正文 / 注释**不得小于 24px**(验证器会对 < 24px 抛错)。用户说字号一般指 pt,按 PowerPoint / Keynote 换算:`px = pt × 1.333`("标题 36pt" → CSS 设 ~48px)。
|
|
87
|
+
- 建立稳定布局锚点:标题、章节号、页码、来源、图表、主视觉和关键数字的位置不要随机漂移。规律来自章节、信息关系和跨页比较需要,不来自预设标签。
|
|
88
|
+
- 同一信息关系的页面要保持平行 scaffold,方便观众比较;不同信息关系再负责制造节奏。
|
|
89
|
+
|
|
90
|
+
## 视觉设计
|
|
91
|
+
|
|
92
|
+
视觉服务演示场景,不是网页首页。
|
|
93
|
+
|
|
94
|
+
- **主题与风格**:根据主题、受众和演示场景提炼视觉关键词,用它们决定配色、字体、图片类型和页面节奏;不把“干净、专业”默认等同于大量留白或通用企业风。
|
|
95
|
+
- **明暗按需求选择**:根据品牌 / 主题 / 图片素材 / 演示场景选择浅色、暗色或混合背景。无论选择哪种,都要保证投影、截图和后排阅读的对比度。明暗切换应落在叙事节点上(章节转换、关键强调),不要无来由地跳变。
|
|
96
|
+
- **字体与排版角色**:根据主题建立标题、正文、数字 / 数据和注释的排版角色,角色可以共享字体。综合使用字体气质、字重、字宽、行长、语义换行、数字样式和文字位置形成层级,而不只是改变字号或统一使用粗黑体;展示文字可以有个性,正文必须稳定可读。
|
|
97
|
+
- 图片先判断内容和用途:摄影 / 氛围图可满版裁切;截图、图表、产品界面、架构图必须完整展示(aspect-fit),不能裁掉关键边界或文字;透明图 / 细线图放到有对比的底色上。图上压字用品牌常见方式保护可读性(遮罩、渐变、模糊或文字容器)。
|
|
98
|
+
- 视觉要有节奏变化:全图页、大数字页、表格页、引用页、流程页、文字页交替出现;不要整套都是同一种卡片。也不要每页硬加描边卡片、固定结论框或装饰分割线——只有内容需要分组时才用容器。
|
|
99
|
+
- 扁平基线:好的 deck 不依赖阴影和悬浮卡片堆叠。优先用全页背景、编号、表格网格、图片裁切、对比色块和尺度差建立层次。只有在需要表达真实物件、票券、照片或舞台层次时才少量使用阴影。
|
|
100
|
+
- 不用 emoji、不临时手绘复杂假图;优先用用户素材、品牌资产、图标库或真实图片。
|
|
101
|
+
- **空间重心**:页面元素应形成完整构图:留白有明确作用,独立元素与主体有可感知的关系,多栏内容在视觉重量和内容关系上协调。不预设内容集中在上方、下方或固定比例;同一页一处大空、一处拥挤要重排。允许不对称构图,不要求左右元素数量、尺寸完全相等;通过面积、色彩、留白、位置和视觉重量形成平衡,避免机械平分页面。双栏 / 多栏失衡时改不对称栅格、调整主次关系或并回单栏。内容不足以独立成页时,合并、重构或升格为确有价值的观点页,不单纯放大数字、卡片或增加留白撑页。
|
|
102
|
+
- **信息重心**:主内容区应显得有事可读,来源、页码和装饰不能成为主要视觉重量;证据说明应尽量靠近对应内容,避免制造无意义的纵向空洞。
|
|
103
|
+
- **容量与边界**:重复排列卡片、指标、步骤或图表前,先根据条目数量、文字长度、间距和可用区域判断能否容纳。空间不足时调整构图、重组信息或拆页,只删除重复和低价值表达,不得依靠 `overflow: hidden` 裁掉内容。最终按实际渲染尺寸检查完整元素和元素组是否仍在页面安全区域内。
|
|
104
|
+
- **底部安全区**:正文、图表、表格、条形图和列表必须整体落在安全区域内,和页脚 / 来源 / 页码保持可感知间距。不要把条形图最后一行、表格最后一行或长标签压到页面底边;不要用 `position:absolute` 把元素硬钉在底部来“刚好塞下”。如果底部空间不足,优先重组行项、合并相关组、拆页或重新选择横向构图。
|
|
105
|
+
- **图表尺度**:图表、表格、结构图和截图标注要按“可阅读的分析对象”设计,不按“装饰素材”缩小。主图表应形成明确视觉中心,并有足够轴线、标签、图例和注释空间;如果图表周围留白过多,优先放大图表、增加与图表直接相关的标注 / 口径 / 对比基准,或重排为更紧凑的图表 + 侧栏 / 注释带结构。如果放大后其他信息放不下,先重组旁支、改成侧栏 / 脚注 / 下一页,而不是缩小主图表。多个小图同时出现时,必须有一个主图或改为矩阵 / 表格,避免所有图都小而轻。
|
|
106
|
+
- **图表优先**:工作汇报、客户案例、趋势观察、竞品分析这类 deck,连续 2-3 页纯文本卡片后必须切换到图表 / 表格 / 矩阵 / 图片标注 / 流程或 KPI strip。文本卡片可以存在,但不能成为整套 deck 的主要填充方式。
|
|
107
|
+
|
|
108
|
+
## HTML 实现(deck-stage 外壳)
|
|
109
|
+
|
|
110
|
+
- **不要手写 stage / 缩放 / 导航 / 页码**。先调用 `copy_starter_component`,`kind: "deck-stage.js"`(连字符、含扩展名,照抄;传裸名字或错扩展名会失败)。用普通 `<script src="deck-stage.js"></script>` 引入(vanilla JS,不是 JSX)。
|
|
111
|
+
- 用 `<deck-stage width="1920" height="1080">` 包住所有 slide,每页一个 `<section data-label="…">` 子元素。deck-stage 负责等比缩放、键盘 / 点击 / 翻页导航、页数与导航条、speaker-notes 的 postMessage,以及打印成 PDF(一页一张)。
|
|
112
|
+
- deck-stage 会**自动**按位置生成 `data-screen-label` 并注入 `data-miaoda-validate`——你只需给每页写 `data-label`(人类可读的页名),不用手写另两个。
|
|
113
|
+
- `data-label` 使用可读页名或章节名,例如"30秒结论""A方案日程""数据·增长产出",不要写成无语义的 `slide-1`。
|
|
114
|
+
- **不要**在 slide `<section>` 上自行设置 position / inset / width / height——deck-stage 会绝对定位每个子元素。
|
|
115
|
+
- 演讲者备注写在全局 `<script type="application/json" id="speaker-notes">`(置于 `<deck-stage>` 之外),内容是一个**按页顺序排列的扁平字符串数组**——第 N 个元素就是第 N 个 `<section>` 的备注(含封面,从 0 起按位置对齐);某页没有备注也要用空串 `""` 占位,让数组长度始终等于页数。随翻页 postMessage 给宿主。
|
|
116
|
+
```html
|
|
117
|
+
<script type="application/json" id="speaker-notes">
|
|
118
|
+
["首页开场白…", "", "第 3 页的讲解要点…"]
|
|
119
|
+
</script>
|
|
120
|
+
```
|
|
121
|
+
- 交付前必须做一次渲染级边界审计,而不是只看截图。打开生成的 HTML 后,逐页检查每个 slide 的 `section[data-label]` 及其正文元素的 `getBoundingClientRect()`:任何可见文字、图表、表格、图片、图例、数值标签、来源、页码或父级元素组,只要超出 slide 边界、进入页脚安全区、互相重叠或被裁切,就必须回到版式层面重排。不要把失败元素简单设成 `overflow:hidden`、缩小到不可读、或用负 margin / absolute bottom 硬塞。
|
|
122
|
+
|
|
123
|
+
### slide 正文写成静态 HTML,不要用脚本生成
|
|
124
|
+
|
|
125
|
+
这条最影响用户体验,理解**为什么**再执行:当一页正文是 `<deck-stage>` 里的普通静态标记时,用户在编辑态点任意标题 / 段落就能直接改字,编辑器会把改动即时 splice 回源文件;一旦这页由 `<script type="text/babel">`、React 组件或"遍历 JS 数组"渲染,这条直改路径就断了——每次微调都要通过 chat message 往返到你这里,更慢、也更难让用户自己打磨 deck。所以凡是静态页能表达的(文字、布局、背景、图片、表格),就把字面元素写进 HTML、用 CSS 定样式;只有当这页**真的**需要静态标记给不了的行为(交互图表、真实 demo、真实状态)才引入 babel / React 或额外 `<script>`。同样的渲染结果,静态版永远优先,因为它可直接编辑。
|
|
126
|
+
|
|
127
|
+
两个细节保住"可直接编辑":
|
|
128
|
+
|
|
129
|
+
- 每段可编辑文字放在自己的叶子节点里——把"Revenue"放进 `<h2>` 内它自己的 `<span>`,别写成 `<h2>Revenue <span class="sub">2025</span></h2>` 这种文本和子元素混在同一父节点。
|
|
130
|
+
- 重复结构写出来、不要生成——三条 bullet 就写三个 `<li>`,不要用数组渲染一个 `<li>` 三次。重复正是重点:它让用户改第二条时不碰第一条。
|
|
131
|
+
- 例外:`tweaks-panel.jsx` 是挨着 slide 的控制面板、不是 slide 正文,可以用 `<script type="text/babel">`;它不影响各静态 slide 各自走直改路径。
|
|
132
|
+
|
|
133
|
+
## 交付前自检
|
|
134
|
+
|
|
135
|
+
- 每页 16:9,无溢出 / 重叠 / 裁切;不仅检查文字,也检查卡片、图表、图片及其父级元素组的完整边界;字号符合投影阅读(正文没有小到像网页)。
|
|
136
|
+
- 构图完整:留白与主体关系明确,没有孤立漂浮、局部拥挤或失衡的多栏布局。
|
|
137
|
+
- 边界溢出检查:逐页确认所有文本、表格行、条形图、图例、数值标签、来源和页码都在画布安全区内;元素组的底边不得低于页脚安全线。凡是需要 `overflow: hidden` 才不露馅、或最后一行贴底 / 被裁切 / 与页脚碰撞,都必须重排。
|
|
138
|
+
- 实测边界检查:以浏览器实际渲染结果为准检查 bounding box,不以设计意图或静态 CSS 推断为准。每页所有可见元素的 `top/left/right/bottom` 都必须落在 slide 可视区域内;主要内容还要避开页脚 / 页码 / 来源所在的安全带。若任一元素超界、被父容器裁切、被 transform 推出画面、或与固定页脚碰撞,不允许交付。
|
|
139
|
+
- 欠填充检查:主内容与页面可用区域明显脱节、卡片内部出现大块无功能空白,或少量元素孤立漂浮时,必须重构;不能用放大卡片、拉开列距、把来源压到底部来撑页,也不要继续删减本来就少的信息。
|
|
140
|
+
- 过密检查:正文主要由难以扫读的长句组成,或元素已无法在安全区内形成清楚层级时,必须先删除冗余表达、重组为表格 / 矩阵 / 图表注释 / 视觉节点,必要时拆页;不要删减必要证据或通过缩小字体硬塞。
|
|
141
|
+
- 信息密度检查:每页应包含结论、证据和上下文中的至少两类,但证据可以是数字、图、表、来源、对比基准、趋势箭头或截图标注,不要求都写成句子。指标不能只有大数字,还要有口径 / 来源 / 对比基准 / 趋势 / 影响说明中的必要项。流程不能只有“动作 / 结果”两段短文塞进大卡片,优先用表格、泳道、时间线或 checklist。
|
|
142
|
+
- 图表主视觉检查:如果本页结论依赖趋势、对比、构成、分布或表格证据,主图表 / 主表格是否形成明确视觉中心;图表周围是否有大块无功能留白;KPI strip、文字列表、来源和装饰不得比主图表更抢视觉重量。若图表看起来像角落里的小配件,必须放大、补充相关标注或重排构图。
|
|
143
|
+
- 内容容量检查:布局是否适应真实信息量;内容少时有没有重组为更强核心表达、图解或合并页,内容多时有没有建立层级、图解、表格或拆页;不能硬塞进固定卡片,也不能让小块内容漂浮在大片空白中。
|
|
144
|
+
- 页码、来源和固定页脚不与正文争用空间;逐页检查文字、图片和固定元素没有遮挡或碰撞。
|
|
145
|
+
- 留白与平衡:同一页没有一处大空、一处拥挤;允许不对称,但左右 / 多栏应通过面积、色彩、留白、位置和视觉重量取得平衡,避免机械平分或把内容固定在某个纵向区域。
|
|
146
|
+
- 只读标题能讲通故事;标题语法全程一致,没有 punchline / takeaway 盒子。
|
|
147
|
+
- 已建立 storyboard,并从整套缩略图检查页面轮廓;不同内容关系没有被连续压成相似的卡片网格或单一上下布局。
|
|
148
|
+
- 转场页推动叙事,而不是只做装饰。
|
|
149
|
+
- 页面既没有靠留白撑场,也没有变成长文档截图。
|
|
150
|
+
- 同类页面布局、标题位置、页码、章节标识平行一致;图片没被不合理拉伸,截图 / 图表完整展示。
|
|
151
|
+
- 需要跨页比较的成组内容使用了稳定 scaffold。
|
|
152
|
+
- slide 正文是静态可编辑 HTML,没用脚本循环生成;`data-label`、speaker-notes、打印分页完整。
|
|
153
|
+
- deck-stage 外壳、导航、页码来自 starter component,没有手写重复实现。
|