mirror of
https://github.com/larksuite/cli.git
synced 2026-07-07 17:45:15 +08:00
refactor:slides design
This commit is contained in:
@@ -107,12 +107,16 @@ lark-cli auth login --domain slides
|
||||
|
||||
### 视觉系统
|
||||
|
||||
- 先根据主题、行业、受众和交付方式推导视觉方向,再确定配色、字体、图形语言和页面密度;不要让用户在一堆抽象风格词里做选择。
|
||||
- 先根据内容主题、行业语境、受众和交付方式推导视觉方向,再确定匹配主题情绪的配色、字体、图形语言和页面密度;不要套用通用高饱和模板色,也不要让用户在一堆抽象风格词里做选择。
|
||||
- 同一份 deck 要锁定一套视觉系统,并贯穿所有页面:主色、背景、正文颜色、强调色、标题处理、留白密度、图标/图形风格都要稳定。
|
||||
- 配色要有角色分工:`primary` 承担品牌/结构,`background` 承担页面基底,`text_primary` / `text_body` 保证阅读,`accent` 只用于关键数字、结论或行动点。
|
||||
- 不要默认蓝色商务风;如果一套配色换到完全不同主题仍然成立,说明它不够具体。
|
||||
- 生成 XML 前先写出 deck 级颜色令牌并明确分工:`primary` 承担品牌/结构,`background` / `background_alt` 承担页面基底,`text_primary` / `text_body` / `muted` 保证阅读层级,`accent` 只用于关键数字、结论或行动点;后续页面复用这些令牌,不要每页临时发明新颜色。
|
||||
- 每页都必须显式写 `<style><fill>...</fill></style>`。普通内容页默认复用同一明暗基调和底色体系;只有封面、章节页、强调页可以有意改变背景,并且必须保留同一主色、边栏、纹理或视觉母题。
|
||||
- 背景策略要克制:纯色、渐变或图片三选一作为主背景,不要叠多层全页色块。深色、发光或科技感页面,应使用平整深色背景 + 局部发光元素,而不是半透明大渐变把页面洗白。
|
||||
- 所有文字、图标、线条和图表都必须与背景保持足够对比;弱化信息可以降低饱和度或透明度,但不能牺牲可读性。
|
||||
- 正文和注释不要使用高饱和色;高饱和或高亮度颜色只作为小面积 `accent`,避免用于大段文字、大面积背景或整页高饱和渐变。
|
||||
- 所有文字、图标、线条和图表都必须与背景保持清晰可读的对比;不要把“对比充足”做成刺眼的纯黑/纯白/荧光色组合。弱化信息可以降低饱和度或透明度,但不能牺牲可读性。
|
||||
- 图片或渐变背景上放文字时,给文字区域加半透明遮罩、色块或足够留白;不要把正文直接压在复杂背景上。
|
||||
- 渐变色必须使用 `rgba()` 格式并带百分比停靠点,例如 `linear-gradient(135deg,rgba(15,23,42,1) 0%,rgba(56,97,140,1) 100%)`;使用 `rgb()` 或省略停靠点可能导致服务端回退为白底。
|
||||
- 验证时逐页检查:背景是否显式填充且未无意变白,正文颜色是否可读,`accent` 是否过量,渐变是否可能回退。
|
||||
|
||||
### 字体与字号
|
||||
|
||||
@@ -170,6 +174,5 @@ lark-cli auth login --domain slides
|
||||
- 不要创建纯文本页;plain title + bullets 只能作为草稿,不是正式交付。
|
||||
- 不要只设计一页,其余页面保持 plain;视觉系统必须全篇贯彻,或者全篇保持有意克制。
|
||||
- 不要混用太多字体、字号、圆角、阴影和强调色;变化必须有层级意义。
|
||||
- 不要使用低对比文字、低对比图标或难以阅读的背景图。
|
||||
- 不要用图表承载多个结论,也不要因为有数字就机械画图。
|
||||
- 不要在标题下方画装饰强调线作为默认设计手法;优先用留白、背景色块、尺度、分区和对齐建立层级。
|
||||
- 不要在标题下方画装饰强调线作为默认设计手法;优先用空间关系、局部低饱和色块、尺度、分区和对齐建立层级。
|
||||
|
||||
@@ -1,155 +0,0 @@
|
||||
# 设计规则
|
||||
|
||||
这份规则用于生成或大幅改写演示文稿时做布局、组件、视觉层级和 XML 决策。它不是审美评论清单,而是生成前必须落到坐标、字号、颜色、组件和校验动作里的约束。
|
||||
|
||||
默认画布按 `960 x 540` 规划。模板可以覆盖具体坐标,但不能覆盖这些原则:页面要有清晰主视觉区域,文本要受密度约束,不同页型必须产生明显不同的几何结构。
|
||||
|
||||
## 生成前先定的事
|
||||
|
||||
- 先定页面角色:封面、章节页、观点页、证据页、数据页、对比页、流程页、时间线页、结论页。
|
||||
- 先定一个主锚点:标题、关键数字、图表、截图、结论句或对比差异。主锚点必须是页面最大、最靠前或最高对比的区域。
|
||||
- 先定结构令牌:外边距、标题区、主体区、栏宽、模块间距、组件内边距、圆角、线条粗细、色彩令牌和字体角色。
|
||||
- 先定文本密度,再写文本。不要先塞满内容,再靠缩字号抢救。
|
||||
- 先定组件类型。只有当内容确实是同级可比对象时才用卡片;只有当顺序有意义时才用流程或时间线。
|
||||
|
||||
## 核心规则
|
||||
|
||||
- `layout_type` 必须改变几何:不同页型的元素位置、区域大小、对齐方式和视觉节奏都要明显不同。
|
||||
- `visual_focus` 必须成为最大或最高对比区域。它可以是图片、图表、指标、引语、表格或形状占位视觉。
|
||||
- `text_density` 用来限制可见文本量:
|
||||
- `low`:标题加一句短陈述,或 1-3 个标签。
|
||||
- `medium`:标题加 2-4 条短要点,或若干带标签的信息区。
|
||||
- `high`:使用表格、分栏、分组标签或注释。不要用一个长 bullet 框承载所有信息。
|
||||
- 不要把整份演示文稿做成“标题加 bullet”。当页面数不少于 4 页且内容允许时,至少使用 4 种不同布局结构。
|
||||
- 优先使用少量大对象,不要堆很多小文本框。
|
||||
- 每页只允许 1 个主锚点。次级锚点必须解释、证明或补充主锚点,不能与它争抢注意力。
|
||||
|
||||
## 布局与间距
|
||||
|
||||
- 常规内容页使用 `60-80` px 外边距,除非有意使用全出血图片或封面式处理。
|
||||
- 常规内容页标题区通常为 `y=36..90`,主体内容通常从 `y>=110` 开始。标题文本框要足够宽,避免意外换行。
|
||||
- 非背景内容应尽量位于 `y=500` 以上,页脚除外。
|
||||
- 优先把主体拆成 2-3 个大区域,而不是很多碎片。常见结构包括:左文右图、左图右文、上标题下模块、指标锚点加证据区。
|
||||
- 同级模块必须共享 x/y、宽高、内边距和槽位顺序。不同尺寸只在差异本身就是信息时使用。
|
||||
- 相关元素之间的距离应小于不相关元素之间的距离;主锚点周围留更大呼吸空间,次要信息可以更紧凑但必须对齐。
|
||||
- 间距令牌要显式:`margin`、`titleGap`、`moduleGap`、`innerPadding`。重复模块用令牌生成坐标,不要手工逐个摆放。
|
||||
|
||||
## 背景与视觉母题一致性
|
||||
|
||||
- 为普通内容页选择一个默认背景,并精确复用。避免多个近似但不一致的背景色,除非它明确表示章节变化。
|
||||
- 封面、强调页、结论页可以使用深色、图片主导或高对比背景,但仍必须共享整套文稿的主色、视觉母题、边缘处理、字体或几何语言。
|
||||
- 如果封面使用左右或分区构图,背景或版式中必须看得出分区;为文字区和视觉区保留各自空间。
|
||||
- 复用少量视觉装置:侧边栏、卡片圆角、节点样式、线条粗细、图标容器或页脚处理。
|
||||
- 背景和视觉母题形状应先于内容元素插入,避免遮住文字、图片或图示。
|
||||
|
||||
## 视觉层级
|
||||
|
||||
- 用位置、大小、字重、留白和颜色共同建立层级,不要只靠颜色。
|
||||
- 至少定义 3 个清晰文本层级:标题/主张、模块标题或标签、正文/注释。复杂页可增加指标和来源角色。
|
||||
- 指标、结论或关键差异如果是页面主旨,必须放在专用区域中,不能埋在段落、图例或小卡片里。
|
||||
- 颜色只用于确认已经由尺寸和位置建立的层级。到处使用强调色会让页面失去重点。
|
||||
- 装饰不能成为第一视觉停点;分割线、网格线、卡片边框应低对比,除非它们表示选择、风险或状态。
|
||||
|
||||
## 字体与文本框
|
||||
|
||||
把字体当作角色系统,而不是逐个文本框随机调样式。推荐先定义这些角色:`deckTitle`、`slideTitle`、`sectionLabel`、`moduleTitle`、`body`、`caption`、`metric`、`source`。
|
||||
|
||||
| 文本用途 | 常见字号 | 最小高度 |
|
||||
|----------|----------|----------|
|
||||
| 注释,1 行 | 10-12 | 18 |
|
||||
| 注释,2 行 | 10-12 | 30 |
|
||||
| 正文,1 行 | 13-16 | 24 |
|
||||
| 正文,2 行 | 13-16 | 40 |
|
||||
| 正文,2 行,加粗 | 15-18 | 48 |
|
||||
| 小标题,1 行 | 24-32 | 42 |
|
||||
| 大标题,2 行 | 34-44 | 110 |
|
||||
| 核心指标 | 64-110 | 110 |
|
||||
|
||||
补充规则:
|
||||
|
||||
- 同一角色在同一页和同一组组件中必须使用相同 `fontFamily`、`fontSize`、`fontWeight` 和颜色。
|
||||
- 加粗文本、中文文本、中英混排、较大行距,或包含多个段落的文本块,都需要增加高度。
|
||||
- 不要把较长中文句子或英文短语放进 `height=18` 或 `height=22` 的文本框。这类高度只适合短标签。
|
||||
- 不要通过把正文缩到不可读来解决拥挤。优先缩短文案、拆分模块、扩大文本框或换成表格/卡片/图示结构。
|
||||
- 页脚和来源说明通常只放一行短文本。如果需要更多内容,应放成页脚上方的正式注释块。
|
||||
- 底部结论条承载一行强调文本时至少 `40` px 高,承载两行时至少 `54` px 高。
|
||||
|
||||
## 色彩
|
||||
|
||||
- 从中性底色、高对比正文色、低对比分割色、一个强调色开始。只有在表达正负、风险、阶段、类别等语义时才增加语义色。
|
||||
- 普通内容页避免给每个模块不同填充色。模块填充用于分组,强调色用于标记重要项或当前项。
|
||||
- 图表配色应克制:大多数系列保持柔和,只高亮支持页面结论的系列、行、列或单元格。
|
||||
- 同一套演示文稿中强调色的含义要稳定。不要在一页表示推荐,下一页又表示风险。
|
||||
- 长正文不要放在高饱和背景上。深色或图片背景必须保证标题和正文对比度。
|
||||
|
||||
## 页型规则
|
||||
|
||||
把这些高频页型当作几何承诺,而不是名称。
|
||||
|
||||
| `layout_type` | 几何承诺 | 文本限制 |
|
||||
|---------------|----------|----------|
|
||||
| `title-cover` | 一个主导性标题块,可配全出血背景、侧边大图、强调带或分区视觉区域。 | 只用 `low`:标题加副标题/背景句,不放 bullets。 |
|
||||
| `section-opener` | 大章节编号、标签或标题成为主锚点,其他内容只做定位。 | 只放章节名、短引导句和必要元信息。 |
|
||||
| `image-left-text-right` | 左侧视觉区占约 `35-45%` 宽度;密集截图或论文图可放大到 `50-65%`;右侧文本通常从 `x=420` 开始。 | 一个主标题加最多 4 条要点,或 2-3 张解读卡片/标注。 |
|
||||
| `image-right-text-left` | 左侧文本区通常从 `x=60..90` 开始,宽 `400..460`;右侧视觉区占约 `35-45%` 宽度,并与主文本块对齐。 | 一个核心判断加 2-3 条支撑点;标注要短且结构平行。 |
|
||||
| `two-column` | 主区域拆成两个均衡栏,例如 `x=60,width=400` 和 `x=500,width=400`;每栏都需要自己的标题或视觉锚点。 | `medium`:每栏 2-3 条短内容。`high`:使用分组行或小表格。 |
|
||||
| `big-number` | 最大对象必须留给指标:字号常为 `64-110`,区域至少 `300 x 120`。 | `low` 或 `medium`;数字周围只放紧凑标签、图例或小卡片。 |
|
||||
| `comparison` | 使用两个或三个对齐的面板、列、表格或小倍图;用一个明确线索突出推荐项或关键差异。 | 使用平行表述;避免长短不一的 bullet 列表。 |
|
||||
| `cards` | 2-6 个同级模块共享宽高、内边距、标题位置和槽位顺序。 | 每张卡片只承载一个短观点,不放段落。 |
|
||||
| `process` | 重复节点加连接线,形成单一路径;连接线在节点和标签下方。 | 步骤标签比描述更突出,描述短且平行。 |
|
||||
| `timeline` | 里程碑沿时间轴排列;时间差重要时按时间比例,否则按序列均分。 | 日期/阶段标签优先,说明文字短。 |
|
||||
| `data` | 结论区与证据区分离,指标或洞察先于图表细节。 | 图表标题写洞察,不只写指标名。 |
|
||||
| `conclusion` | 使用一个主导性的结论句或行动号召,最多搭配 3 个下一步卡片、检查项或负责人/日期标签。 | 保持易记,不要堆总结。 |
|
||||
|
||||
## 组件规则
|
||||
|
||||
- **封面/章节页**:只保留标题组、主视觉和少量元信息。不要把封面做成执行摘要、仪表盘或多卡片汇总。
|
||||
- **指标组件**:包含 value、unit、label、explanation、optional delta。数值是最大文本,单位和限定词靠近数值但更小。
|
||||
- **数据图表**:先给图表/表格留足边界,再放标注。优先用直接标签减少视线往返;网格线和坐标轴低对比。
|
||||
- **对比组件**:被比较对象必须共享槽位顺序,例如 label、metric、visual、description、emphasis marker。只高亮一个推荐项、变化项或风险项。
|
||||
- **卡片组件**:卡片只用于真实同级对象。标题长度和字号要平行,正文用一句话,推荐或选中卡片最多增加一个强调线索。
|
||||
- **流程/时间线**:节点从数组或索引生成位置,连接线先画、节点后画、标签最后画。不要让连接线穿过文字。
|
||||
- **截图/论文图/产品图**:真实素材必须足够大到可读;若过密,应裁切关键区域、做局部放大,或用原生形状重画核心信息。
|
||||
|
||||
## 截图与真实素材页面
|
||||
|
||||
- 根据页面角色决定放置方式,不按固定页码套模板。方法概览、证据页、对比页和失败分析页通常更适合放真实图片。
|
||||
- 只有在图片以幻灯片尺寸展示仍可读时,才直接使用真实素材。如果图过密,应裁切关键区域、做局部放大,或用原生形状重画核心信息。
|
||||
- 截图或真实图片通常应成为视觉焦点。不要把它缩成装饰性缩略图,同时在周围堆大量文字。
|
||||
- 配少量解释性标注,告诉观众应该看哪里。
|
||||
- 使用外部素材或论文图时,始终添加简短来源说明。
|
||||
|
||||
## XML / Slides 生成规则
|
||||
|
||||
- 先定义画布、边距、标题区、主体区、栏宽、间距、颜色、字体角色和组件 token,再生成具体对象。
|
||||
- 每个文本框必须先有语义角色,再分配坐标、字号、字重和颜色。
|
||||
- 所有形状、文本、图片、图表都使用显式 `x/y/width/height`,不要依赖默认位置或自适应猜测。
|
||||
- 重复组件必须从同一数据数组和同一几何函数生成,避免手写出微小不一致。
|
||||
- z-order 顺序通常是:背景、分区形状、连接线、图片/图表/卡片、文本、标注/强调层。
|
||||
- 颜色通过 `base`、`text`、`muted`、`accent`、`positive`、`negative`、`risk` 等 token 引用,不要在每个对象里临时硬编码。
|
||||
- 生成后必须检查重叠、裁切、异常换行、标题意外换行、底部溢出、来源说明缺失和主锚点不清。
|
||||
|
||||
## 常见错误
|
||||
|
||||
- 页面没有主锚点,所有内容都像同级说明。
|
||||
- 把视觉稿变成标题加长 bullet,或者把研究材料原文直接塞进文本框。
|
||||
- 用很多颜色和边框填满空白,却没有表达语义。
|
||||
- 同级卡片尺寸、标题位置、槽位顺序不一致。
|
||||
- 数据页只有图表没有结论,或结论离证据太远。
|
||||
- 流程线穿过标签,时间线里程碑太多且描述过长。
|
||||
- 字号层级过平,标题、标签、正文看起来差不多大。
|
||||
- 为了装下文字持续缩字号,而不是删减、拆分或换结构。
|
||||
|
||||
## 证据来源
|
||||
|
||||
这些规则来自典型ppt案例的主题化提炼。核心跨文稿模式包括:
|
||||
|
||||
- 顶部标题先锚定页面,再组织主体内容。
|
||||
- 左右文本/视觉分区是最稳定的解释结构之一。
|
||||
- 结构化文本页使用重复对齐模块,而不是自由散落文本框。
|
||||
- 数据页通常用数字锚点配合图表或表格表达结论。
|
||||
- 字体尺度分离标题、标签和正文。
|
||||
- 中性底色配有限强调色比多色装饰更可靠。
|
||||
- 封面和章节页使用更少文本对象和更强视觉框架。
|
||||
- 多个同级对象应规范化为卡片或同构模块。
|
||||
- 流程和时间线通过重复节点加克制连接线表达顺序。
|
||||
@@ -14,7 +14,7 @@ metadata:
|
||||
|
||||
| 用户需求 | 优先动作 | 关键文档 / 命令 |
|
||||
|-------------------------------------|----------|-----------------|
|
||||
| 新建 PPT | 先确定叙事、页序和视觉策略,再按复杂度选择一步或两步创建 | `design-rules.md`、`slides +create` |
|
||||
| 新建 PPT | 先确定叙事、页序和视觉策略,再按复杂度选择一步或两步创建 | `SKILL.md` 设计思路、`slides +create` |
|
||||
| 已有 PPT 大幅改写 | 多页整页重建用 `+replace-pages`,单页局部编辑用 `+replace-slide` | `xml_presentations.get`、`lark-slides-replace-pages.md`、`lark-slides-edit-workflows.md` |
|
||||
| 编辑单个标题、文本块、图片或局部元素 | 优先块级替换/插入,不改页序 | `slides +replace-slide`、`lark-slides-replace-slide.md` |
|
||||
| 读取或分析已有 PPT | 解析 slides/wiki token,回读全文或单页 XML,保存 `xml_presentation_id`、`slide_id`、`revision_id` | `xml_presentations.get`、`xml_presentation.slide.get` |
|
||||
@@ -62,7 +62,6 @@ lark-cli auth login --domain slides
|
||||
高频只读:
|
||||
|
||||
- [xml-schema-quick-ref.md](references/xml-schema-quick-ref.md)
|
||||
- [design-rules.md](references/design-rules.md)(新建 / 大幅改写)
|
||||
- [validation-checklist.md](references/validation-checklist.md)(创建 / 大幅改写后)
|
||||
|
||||
按需再读:
|
||||
@@ -135,7 +134,7 @@ lark-cli auth login --domain slides
|
||||
```text
|
||||
Step 1: 需求澄清 & 读取知识
|
||||
- 澄清主题、受众、页数、风格
|
||||
- 读取 xml-schema-quick-ref.md;新建 / 大幅改写时还要读取 design-rules.md
|
||||
- 读取 xml-schema-quick-ref.md;新建 / 大幅改写时按 SKILL.md 的设计思路先锁定视觉系统
|
||||
|
||||
Step 2: 生成大纲 → 用户确认
|
||||
- 生成结构化大纲供用户确认
|
||||
|
||||
@@ -25,7 +25,7 @@ python3 skills/lark-slides/scripts/template_tool.py extract --template <template
|
||||
```text
|
||||
Step 1: 需求澄清 & 读取知识
|
||||
- 澄清主题、受众、页数、风格
|
||||
- 读取 xml-schema-quick-ref.md;新建 / 大幅改写时还要读取 design-rules.md
|
||||
- 读取 xml-schema-quick-ref.md;新建 / 大幅改写时按 SKILL.md 的设计思路先锁定视觉系统
|
||||
- 按本文检索模板并给出候选
|
||||
|
||||
Step 2: 生成大纲 -> 用户确认
|
||||
|
||||
@@ -92,7 +92,7 @@ python3 skills/lark-slides/scripts/xml_text_overlap_lint.py --input <presentatio
|
||||
- 多个主体元素在同一区域重叠,而不是有意叠加背景。
|
||||
- 重要内容越过画布边界,或贴近底部超过 `y=500`。
|
||||
- 高密度页使用单个长 bullet list,没有分栏、表格或分组。
|
||||
- 标题、主视觉、正文的字号和颜色差异太弱,视觉层级不清。
|
||||
- 标题、主视觉、正文没有通过字号、字重、位置、留白、分组或小面积 `accent` 建立清晰层级。
|
||||
- 所有内容页都是同一套标题加 bullets 坐标。
|
||||
|
||||
## Verification Record
|
||||
|
||||
Reference in New Issue
Block a user