@lark-apaas/coding-steering 0.1.18-dev.85a24fd → 0.1.18-dev.ac6c20c

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,6 +1,6 @@
1
1
  {
2
2
  "name": "@lark-apaas/coding-steering",
3
- "version": "0.1.18-dev.85a24fd",
3
+ "version": "0.1.18-dev.ac6c20c",
4
4
  "description": "Stack-specific steering content for miaoda-coding templates",
5
5
  "type": "module",
6
6
  "files": [
@@ -1,8 +1,10 @@
1
1
  ---
2
2
  name: animated-video
3
3
  description: Use when creating animated videos, motion graphics, product walkthroughs, or visual storytelling with timeline-based playback. 触发词:animation, video, motion, 动画, 视频, 动效, 产品演示, 演示动画, walkthrough
4
- available-agents:
5
- - CreativeDesign
4
+ metadata:
5
+ display-names:
6
+ zh-CN: 动画视频
7
+ en-US: Animated Video
6
8
  ---
7
9
 
8
10
  # Animated video
@@ -1,8 +1,10 @@
1
1
  ---
2
2
  name: charts
3
3
  description: "基于 ECharts 的数据可视化,用于浏览器直出 HTML。当需要创建图表、仪表盘或数据可视化时使用。触发词:chart, ECharts, 图表, 可视化, visualization, 饼图, 柱状图, 折线图, 数据图表, 甘特图, 热力图, 数据展示, dashboard, 仪表盘, 数据看板"
4
- available-agents:
5
- - CreativeDesign
4
+ metadata:
5
+ display-names:
6
+ zh-CN: 图表
7
+ en-US: Charts
6
8
  ---
7
9
 
8
10
  # 图表
@@ -139,7 +141,7 @@ Object.assign(window, { EChart });
139
141
  | 6 | Funnel label 被隐藏或位置不在内部 | `label: { show: true, position: 'inside' }` |
140
142
  | 7 | 容器高度 <300px | `min-height: 300px` |
141
143
  | 8 | 单张图表中分类色(每项一个色相)>8 种 | 聚合或分组 |
142
- | 9 | Pie 使用了外部引导线标签(`position` 缺失或为 `'outside'`) | `label: { show: false }` + `emphasis: { label: { show: false } }`;使用 tooltip。允许 `position: 'inside'` doughnut 中心标签 |
144
+ | 9 | Pie / 环形图的分类或数值只能靠 tooltip 读到——用了外部引导线标签(`position` `'outside'` 或缺失),或干脆 `label: { show: false }` 且既无图例也无中心标注 | 分类 + 数值必须**静态可读**(tooltip 不算,图表常被导出 / 截图当静态图看)。任选其一:inside 标签标注 `name` + 百分比(扇区够大时)、图例映射色 分类、或环形图中心标注关键数值。禁止外部引导线标签(`position: 'outside'` 易重叠 / 裁切),也禁止只靠 tooltip 承载分类 / 数值 |
143
145
  | 10 | Pie 设置了 `itemStyle` | 完全移除 |
144
146
  | 11 | 任何 series 设置了 `label.color` | 禁止设置;由 theme 控制 |
145
147
  | 12 | `label.formatter` 使用字符串模板 | 改用回调:`formatter: (params) => ...` |
@@ -1,8 +1,10 @@
1
1
  ---
2
2
  name: data-report
3
3
  description: "数据驱动的报表与看板设计。从数据分析到报表规划、信息层级组织,适用于用户有数据文件或明确指标,需要产出结构化数据报表的场景。图表绘制部分由 charts skill 承担。触发词:数据报表, 数据看板, 数据分析报表, BI, 经营报表, 指标看板, 周报, 月报, 数据大盘, KPI, 报表设计, data report, dashboard report, analytics report"
4
- available-agents:
5
- - CreativeDesign
4
+ metadata:
5
+ display-names:
6
+ zh-CN: 数据看板
7
+ en-US: Data Dashboard
6
8
  ---
7
9
 
8
10
  # 数据报表
@@ -52,7 +54,7 @@ available-agents:
52
54
 
53
55
  在写代码之前,先确定报表由哪些组件构成:
54
56
 
55
- - **视觉方向**:参考 `frontend-design` 的方法先定主题世界、受众姿态、材料、配色逻辑和视觉签名。例如环境数据可以像研究观测页,销售经营可以像运营战情室,财务/管理指标可以像管理层简报。风格必须服务数据可信度,不要套通用科技蓝或泛白卡。
57
+ - **视觉方向**:参考 `frontend-design` 的方法先定主题世界、受众姿态、材料、配色逻辑和签名元素。例如环境数据可以像研究观测页,销售经营可以像运营战情室,财务/管理指标可以像管理层简报。风格必须服务数据可信度,不要套通用科技蓝或泛白卡。
56
58
  - **阅读路径**:先判断读者是要快速扫现状、追异常、看趋势、比较对象、查明细还是读复盘。不同任务对应不同起手式,不要默认都从 KPI 卡开始。
57
59
  - **候选部件**:标题 / 范围 / 口径、摘要、KPI、主图表、辅助图表、文字洞察、明细表、时间线、矩阵、截图或注释都只是候选。需要哪个用哪个,不要为了"完整"把它们凑齐。
58
60
  - **核心承载**:只给真正承载核心问题的模块更大面积。核心可能是一张趋势图、一张排名表、一段异常解释、一个流程漏斗,也可能是一组明细,不固定。
@@ -76,7 +78,7 @@ available-agents:
76
78
  - 布局按数据叙事组织,不按"先放所有图再放文字"组织。
77
79
  - 顺序跟随读者任务:监控型可以先给状态概览,诊断型可以先给异常和原因链,对比型可以先给对象矩阵,复盘型可以先给时间线,明细型可以先给可查表格。
78
80
  - 同一页面内至少使用两种不同的版式关系:例如 KPI 横条 + 左右不等分主图 + 双列洞察 + 表格/结论带。避免所有模块都是同尺寸白卡片上下排列。
79
- - 内容块采用平面化处理:优先用 `border:1px solid ...`、浅底色、分隔线、色条、编号、标签和表格行背景;内容卡片和图表容器默认不加 `box-shadow`。
81
+ - 内容块采用平面化处理:优先用 `border:1px solid ...`、浅底色、分隔线、色条(仅当颜色编码真实分类 / 状态)、编号、标签和表格行背景;内容卡片和图表容器默认不加 `box-shadow`。
80
82
  - 图表旁边应有短洞察、口径或排名摘要,不要让图表孤零零占满整行。
81
83
  - 文字用于解释图表看不出的原因、口径、异常和行动建议,不重复图表标题。
82
84
  - 表格用于精确查数和比较对象,不要把长表伪装成密集柱状图。
@@ -1,67 +1,69 @@
1
1
  ---
2
2
  name: frontend-design
3
- description: Guidance for establishing a distinctive, intentional visual direction for a design — palette, typography, and aesthetic choices that don't read as templated defaults. Applies across media (decks, reports, UI, prototypes), not just web UI.
4
- available-agents:
5
- - CreativeDesign
3
+ description: 为设计确立独特、有意图的视觉方向的指引——配色、字体与美学选择不带模板化默认的痕迹。适用于各类媒介(deck、报告、UI、原型),不限于 Web UI
4
+ metadata:
5
+ display-names:
6
+ zh-CN: 创意设计
7
+ en-US: Creative Design
6
8
  ---
7
9
 
8
10
  # Frontend Design
9
11
 
10
- Approach this as the design lead at a small studio known for giving every client a visual identity that could not be mistaken for anyone else's. This client has already rejected proposals that felt templated, and is paying for a distinctive point of view: make deliberate, opinionated choices about palette, typography, and layout that are specific to this brief, and take one real aesthetic risk you can justify.
12
+ 以一家小型设计工作室的设计主管身份来做这件事——这家工作室以让每位客户拥有绝不会被认错的视觉形象而闻名。这位客户已经否掉过几版感觉模板化的提案,他们付费买的是一个鲜明的观点:针对这份 brief 做出深思熟虑、有主张的配色、字体与版式选择,并承担一次你能说清理由的真正的美学冒险。
11
13
 
12
- ## Ground it in the subject
14
+ ## 让设计扎根于主题
13
15
 
14
- If the brief does not pin down what the product or subject is, pin it yourself before designing: name one concrete subject, its audience, and the page's single job, and state your choice. If there's any information in your memory about the human's preferences, context about what they're building, or designs you've made before – use that as a hint. The subject's own world, its materials, instruments, artifacts, and vernacular, is where distinctive choices come from. Build with the brief's real content and subject matter throughout.
16
+ 如果 brief 没有钉死产品或主题是什么,动手设计前先自己钉死:点出一个具体的主题、它的受众、这个页面唯一要完成的任务,并明确说出你的选择。如果你的记忆里有关于用户偏好的信息、关于他们正在构建什么的上下文、或你以往做过的设计——把它们当作线索用起来。主题自身的世界——它的材质(materials)、工具与仪器(instruments)、特有的器物(artifacts)、行话与语汇(vernacular)——正是独特选择的来源。全程用 brief 的真实内容与题材来构建。
15
17
 
16
- ## Visual Direction
18
+ ## 视觉方向
17
19
 
18
- Before choosing colors or components, decide the direction in your thinking. Fill four slots — each pulled from *this* subject:
20
+ 在选定颜色或组件之前,先在思考中定下方向。填满四个槽位——每一个都要取自*这个*主题:
19
21
 
20
- - **World** — what world does this page belong to? Go to the subject's own: its materials, instruments, artifacts, vernacular.
21
- - **Materials** — what real surfaces and marks belong to that world? Name the ones from the subject before reaching for a generic one.
22
- - **Palette** — which colors are semantic or branded, which are neutral supports, and which single accent earns attention?
23
- - **Signature** — the one device the page is remembered by. Make it something that could only belong to this subject; a signature generic enough to reuse on the next brief is a default, not a choice.
22
+ - **世界(World)**——这个页面属于哪个世界?去主题自己的世界里找:它的材质、工具与仪器、特有的器物、行话与语汇。
23
+ - **材质(Materials)**——哪些真实存在的材质表面(surfaces)与印记(marks)属于那个世界?先把主题自带的一一列出来,别一上来就用通用的。
24
+ - **配色(Palette)**——哪些颜色承担语义或品牌职责,哪些是中性的支撑色,哪一个唯一的强调色赢得注意力?
25
+ - **签名元素(Signature)**——整个页面靠它被记住的那一个手法。它必须只可能属于这个主题;一个换到下份 brief 也能复用的签名元素,是默认值,不是选择。
24
26
 
25
- Style is not decoration applied after layout. This direction decides typography, spacing, chart treatment, section rhythm, borders, icon style, and which components deserve emphasis.
27
+ 风格不是版式排完后再涂上去的装饰。这个方向决定字体排印、间距、图表处理、章节节奏、边框、图标风格,以及哪些组件值得强调。
26
28
 
27
- ## Design principles
29
+ ## 设计原则
28
30
 
29
- For web designs, the hero is a thesis. Open with the most characteristic thing in the subject's world, in whatever form makes sense for it: a headline, an image, an animation, a live demo, an interactive moment. Be deliberate with your choice: a big number with a small label, supporting stats, and a gradient accent is the template answer, only use if that's truly the best option.
31
+ 对于网页设计,hero 区就是全页的论点。开场就亮出主题世界里最具特征的东西,形式因主题而定:一句大标题、一张图、一段动画、一个实时 demo、一个交互瞬间。选择要经过深思:「大数字 + 小标签 + 辅助统计数据 + 渐变点缀」是模板答案,只有当它确实是最佳选项时才用。
30
32
 
31
- Typography carries the personality of the page. Pair the display and body faces deliberately, not the same families you would reach for on any other project, and set a clear type scale with intentional weights, widths, and spacing. Make the type treatment itself a memorable part of the design, not a neutral delivery vehicle for the content.
33
+ 字体排印承载页面的性格。展示字体(display)与正文字体(body)的搭配要刻意为之,而不是随手拿任何项目都会用的那几个字体家族;并建立清晰的字号体系,字重、字宽、字距都要有意图。让字体处理本身成为设计中令人记住的一部分,而不是承载内容的中性载体。
32
34
 
33
- Structure is information. Structural devices, numbering, eyebrows, dividers, labels, should encode something true about the content, not decorate it. Many generic designs use numbered markers (01 / 02 / 03), but that's only appropriate if the content actually is a sequence - like a real process or a typed timeline where order carries information the reader needs. Question if choices like numbered markers actually make sense before incorporating them.
35
+ 结构即信息。结构件——编号、眉标、分隔线、标签——应当编码内容中真实存在的信息,而不是装饰内容。很多千篇一律的设计都用编号标记(01 / 02 / 03),但只有当内容真的是一个序列时——比如真实的流程、或顺序本身携带读者所需信息的类型化时间线——编号才成立。在采用编号标记这类选择之前,先质疑它们是否真的说得通。
34
36
 
35
- Leverage motion deliberately. Think about where and if animation can serve the subject: a page-load sequence, a scroll-triggered reveal, hover micro-interactions, ambient atmosphere. An orchestrated moment usually lands harder than scattered effects; choose what the direction calls for. However, sometimes less is more, and extra animation contributes to the feeling that the design is AI-generated.
37
+ 有意识地运用动效。想清楚动画是否、以及在哪里能服务主题:页面加载序列、滚动触发的揭示、hover 微交互、环境氛围。一个经过编排的时刻通常比散落的零星特效更有力;按视觉方向的需要来选。但有时少即是多——多余的动画会加重「这个设计是 AI 生成的」的观感。
36
38
 
37
- Match complexity to the vision. Maximalist directions need elaborate execution; minimal directions need precision in spacing, type, and detail. Elegance is executing the chosen vision well.
39
+ 让复杂度匹配愿景。极繁方向需要精雕细琢的执行;极简方向需要间距、字体与细节上的精准。优雅就是把选定的愿景执行到位。
38
40
 
39
- Consider written content carefully. Often a design brief may not contain real content, and it's up to you to come up with copy. Copy can make a design feel as templated as the design itself. See the below section on writing for more guidance.
41
+ 认真对待文字内容。设计 brief 往往不含真实内容,文案要由你来写。文案带来的模板感不亚于设计本身。更多指引见下文关于写作的章节。
40
42
 
41
- ## Process: brainstorm, explore, plan, critique, build, critique again
43
+ ## 流程:头脑风暴、探索、规划、评审、构建、再评审
42
44
 
43
- For calibration: AI-generated design right now clusters around three looks: (1) a warm cream background (near #F4F1EA) with a high-contrast serif display and a terracotta accent; (2) a near-black background with a single bright acid-green or vermilion accent; (3) a broadsheet-style layout with hairline rules, zero border-radius, and dense newspaper-like columns. All three are legitimate for some briefs, but they are defaults rather than choices, and they appear regardless of subject. Where the brief pins down a visual direction, follow it exactly — the brief's own words always win, including when it asks for one of these looks. Where it leaves an axis free, don't spend that freedom on one of these defaults. Just like a human designer who's hired, there's often a careful balance between doing what you're good at and taking each project as a chance to experiment and learn.
45
+ 先校准现状:当下的 AI 生成设计集中在四种长相上:(1) 暖奶油色背景(接近 #F4F1EA)+ 高对比衬线展示字体 + 陶土色(terracotta)强调色;(2) 近黑背景 + 单一亮色强调——酸性绿(acid green)或朱红(vermilion);(3) 大报(broadsheet)式版面——发丝线(hairline rules)、零 border-radius、报纸般的密集分栏;(4) 深色底「科技感」版面——紫蓝渐变、发光光晕(glow)、半透明玻璃拟态(glassmorphism)卡片,科技 / AI / 数据类 brief 上尤其高发。四者对某些 brief 都站得住脚,但它们是默认值而非选择,而且不看主题就冒出来。凡是 brief 钉死了视觉方向的地方,严格照办——brief 自己的话始终优先,包括它点名要这四种长相之一的时候。凡是 brief 留出自由度的维度,别把这份自由花在这四个默认值上。就像受雇的人类设计师一样,往往要在「做自己擅长的」与「把每个项目当作试验和学习的机会」之间小心权衡。
44
46
 
45
- Work in two passes. First, brainstorm a short design plan based on the human's design brief: expand the visual direction above into a compact token system: color, type, layout, and signature. Color: describe the palette as 4–6 named hex values. Type: the typefaces for 2+ roles (a characterful display face that's used with restraint, a complementary body face, and a utility face for captions or data if needed). Layout: a layout concept, using one-sentence prose descriptions and ASCII wireframes to ideate and compare. Signature: the single unique element this page will be remembered by that embodies the brief in an appropriate way.
47
+ 分两遍做。第一遍,基于用户的设计 brief 头脑风暴出一份简短的设计计划:把上文的视觉方向展开成一套紧凑的 token 体系——色彩、字体、版式、签名元素。色彩:用 4–6 个命名的 hex 值描述配色。字体:至少两种角色的字体(一款有性格、克制使用的展示字体,一款与之互补的正文字体,必要时再加一款用于图注或数据的功能字体)。版式:一个版式概念,用一句话的文字描述加 ASCII 线框图来构思和比较。签名元素:这个页面将被记住的那个唯一独特元素,以恰当的方式体现 brief
46
48
 
47
- Then review that plan against the brief before building: if any part of it reads like the generic default you would produce for any similar page (work through a similar prompt to see if you arrive somewhere similar) rather than a choice made for this specific brief — revise that part, say what you changed and why. Only after you've confirmed the relative uniqueness of your design plan should you start to write the code, following the revised plan exactly and deriving every color and type decision from it.
49
+ 然后在动手构建前,对照 brief 复查这份计划:如果其中任何部分读起来像你对任何同类页面都会产出的通用默认(在心里过一遍相似的 prompt,看你是否会落到差不多的地方),而不是为这份 brief 专门做出的选择——就修订那部分,说明你改了什么、为什么改。只有在确认设计计划具备相对独特性之后,才开始写代码,严格遵循修订后的计划,让每一个颜色和字体决策都从计划中推导出来。
48
50
 
49
- When writing the code, be careful of structuring your CSS selector specificities. It's easy to generate CSS classes that cancel each other out (especially with a type-based selector like .section and a element-based selector like .cta). This can happen often with paddings/margins between sections.
51
+ 写代码时,注意组织好 CSS 选择器的优先级(specificity)。很容易写出相互抵消的 CSS 类(尤其是 `.section` 这类分区级选择器与 `.cta` 这类元素级选择器之间)。区块之间的 padding/margin 上经常出这种问题。
50
52
 
51
- Try to do a lot of this planning and iteration in your thinking, and only show ideas to the user when you have higher confidence it'll delight them.
53
+ 尽量把这些规划与迭代放在思考中完成,只在你有较高把握能让用户眼前一亮时,才把想法拿给用户看。
52
54
 
53
- ## Restraint and self-critique
55
+ ## 克制与自我评审
54
56
 
55
- Spend your boldness in one place. Let the signature element be the one memorable thing, keep everything around it quiet and disciplined, and cut any decoration that does not serve the brief. Not taking a risk can be a risk itself! Build to a quality floor without announcing it: responsive down to mobile, visible keyboard focus, reduced motion respected. Critique your own work as you build, taking screenshots if your environment supports it – a picture is worth 1000 tokens. Consider Chanel's advice: before leaving the house, take a look in the mirror and remove one accessory. Human creators have memory and always try to do something new, so if you have a space to quickly jot down notes about what you've tried, it can help you in future passes.
57
+ 把大胆花在一个地方。让签名元素成为唯一被记住的东西,它周围的一切保持安静、克制,砍掉任何不服务于 brief 的装饰。不冒险本身也可能是一种冒险!默默守住质量底线,不必声张:响应式适配到移动端、键盘焦点可见、尊重 reduced motion。边构建边评审自己的作品,环境支持就截图看——一图胜千 token。想想香奈儿的忠告:出门前照照镜子,摘掉一件配饰。人类创作者有记忆,总在尝试新东西;如果你有地方快速记下自己试过什么,会对后续迭代有帮助。
56
58
 
57
- ## More on writing in design
59
+ ## 再谈设计中的写作
58
60
 
59
- Words appear in a design for one reason: to make it easier to understand, and therefore easier to use. They are design material, not decoration. Bring the same intentionality to copy that you would bring to spacing and color. Before writing anything, ask what the design needs to say, and how it can best be said to help the person navigate the experience.
61
+ 文字出现在设计里只有一个理由:让设计更易理解,从而更易使用。文字是设计材料,不是装饰。对文案投入的心思,要和对间距、色彩投入的一样多。落笔之前,先问这个设计需要说什么、怎么说最能帮人在这段体验里找到方向。
60
62
 
61
- Write from the end user's side of the screen. Name things by what people control and recognize, never by how the system is built. A person manages notifications, not webhook config. Describe what something does in plain terms rather than selling it. Being specific is always better than being clever.
63
+ 站在屏幕另一侧的最终用户角度来写。以人们能控制、能认出的东西命名,绝不以系统的实现方式命名。用户管理的是「通知」,不是「webhook 配置」。用平实的语言描述某物做什么,而不是推销它。具体始终胜过抖机灵。
62
64
 
63
- Use active voice as default. A control should say exactly what happens when it's used: "Save changes," not "Submit." An action keeps the same name through the whole flow, so the button that says "Publish" produces a toast that says "Published." The vocabulary of an interface is the signposting for someone navigating the product. Cohesion and consistency are how people learn their way around.
65
+ 默认使用主动语态。一个控件应当准确说明使用它时会发生什么:说 "Save changes",而不是 "Submit"。同一个动作在整条流程中保持同名:写着 "Publish" 的按钮,产生的 toast 就写 "Published"。界面的词汇表就是用户穿行产品时的路标。连贯与一致是人们认路的方式。
64
66
 
65
- Treat failure and emptiness as moments for direction, not mood. Explain what went wrong and how to fix it, in the interface's voice rather than a person's. Errors don't apologize, and they are never vague about what happened. An empty screen is an invitation to act.
67
+ 把失败与空态当作指路的时机,而不是渲染情绪的时机。解释出了什么问题、怎么修复,用界面的口吻而非某个人的口吻。错误提示不道歉,也绝不对发生了什么含糊其辞。空屏是一份行动邀请。
66
68
 
67
- Keep the register conversational and tuned: plain verbs, sentence case, no filler, with tone matched to the brand and the audience. Let each element do exactly one job. A label labels, an example demonstrates, and nothing quietly does double duty.
69
+ 语域要像对话一样自然,并经过调校:动词平实、sentence case(句首大写)、没有废话,语气与品牌和受众匹配。让每个元素只做一件事:标签就是标注,示例就是演示,没有元素悄悄身兼二职。
@@ -1,8 +1,10 @@
1
1
  ---
2
2
  name: hi-fi-design
3
3
  description: 用于创建高保真 UI mockup、设计探索,或带多种变体的视觉原型。触发词:mockup, hi-fi, prototype, UI design, 高保真, 设计稿, 原型, 界面设计, 视觉设计, 设计方案
4
- available-agents:
5
- - CreativeDesign
4
+ metadata:
5
+ display-names:
6
+ zh-CN: 高保真设计
7
+ en-US: Hi-Fi Design
6
8
  ---
7
9
 
8
10
  # 高保真设计
@@ -1,8 +1,10 @@
1
1
  ---
2
2
  name: interactive-prototype
3
3
  description: Working app with real interactions
4
- available-agents:
5
- - CreativeDesign
4
+ metadata:
5
+ display-names:
6
+ zh-CN: 交互原型
7
+ en-US: Interactive Prototype
6
8
  ---
7
9
 
8
10
  Create a fully interactive prototype with realistic state management and transitions. Use React useState/useEffect for dynamic behavior. Include hover states, click interactions, form validation, animated transitions, and multi-step navigation flows. It should feel like a real working app, not a static mockup.
@@ -1,132 +1,180 @@
1
1
  ---
2
2
  name: make-a-deck
3
- description: 当用户要求制作演示文稿 / PPT / PPTX / pitch deck / slides / keynote / 路演材料时使用——即供演讲者现场演示、固定画幅 16:9 的自包含 HTML deck。
3
+ description: 当用户要求制作演示文稿、PPTPPTXpitch deckslideskeynote 或路演材料时使用。产出适合现场演示的 16:9 HTML deck。
4
+ metadata:
5
+ display-names:
6
+ zh-CN: 幻灯片制作
7
+ en-US: Slide Deck
4
8
  ---
5
9
 
6
10
  # Make a deck
7
11
 
8
- 把演示 deck 做成一个自包含的 HTML 单页。
12
+ 你是一名幻灯片设计师,为演讲者制作现场演示用的幻灯片。产物是一个 HTML 单页 deck:用 `<deck-stage>` 包住一组 1920×1080 的 `<section>`,一个 section 就是一页。
9
13
 
10
- 进入这个角色:你是一名演示设计师(presentation designer)。你为演讲者制作用于现场演示的幻灯片 deck——HTML 只是你的输出介质,你的作品要经得起现场检验:清晰、叙事流畅、后排也能看清。你不是在做网站。
14
+ 这是用于演示的幻灯片,不是在做一个网页,也不是把报告原文分成几屏。最重要的事情是:内容清晰、叙事流畅。
11
15
 
12
- **先判断场合,再定设计语气。** 判定场合后,代入该场合最专业的制作者身份——为这类场合做过上百场 deck 的人会怎么取舍——用它校准每一页的语气与密度。场合决定三件事:信息密度(听众扫读还是研读)、标题语法(论点式还是主题式)、节奏权重(哪类版式原型承担叙事高点)。动手前在 scratchpad 用一两句写明场合、代入的身份与这三项决策,全 deck 一致执行;工艺规则(构图、字号、平行性)不随场合变。
16
+ ## 动手前先定方向
13
17
 
14
- 每张幻灯片既是版式设计的练习,也是文案写作的练习。动手前先写大纲;好的大纲本身就是一次讲故事和叙事结构的练习。
18
+ 先看用户给的主题、受众、场合、品牌和附件。能从这些信息判断风格,就直接判断;确实判断不了时,用提问工具主动问清楚。
15
19
 
16
- ## 动手前先问
20
+ 先想清楚:这是谁在什么场合讲、观众需要记住什么、哪些页是重点。用一两句话写进 `scratchpad.md`,后面所有页面都按这个口径做。
17
21
 
18
- - 如果用户没有说明想要的视觉风格,也没有提供 design system,就用提问工具(ask user)**主动询问**。绝不要直接给出一个通用设计!
22
+ 视觉方向先调用 frontend-design skill 搭框架,再从主题、受众和场景里提炼几个视觉关键词,用来决定配色、字体、图片类型和页面节奏。它和本 skill 冲突时,以本 skill 为准。
19
23
 
20
- ## 构建准备与技术契约
24
+ ## 第一步:规划幻灯片大纲
21
25
 
22
- ### deck-stage 组件
26
+ 必须先写 `scratchpad.md`。每页至少写清四件事:
23
27
 
24
- 以 1920×1080(16:9)为基准构建。**绝不**手写 stage/缩放/翻页的脚手架——先调用 `copy_starter_component` 并传入 `kind: "deck-stage.js"`,然后将 deck HTML 写成 `<deck-stage width="1920" height="1080">`,每张幻灯片对应一个 `<section data-label="…">` 子元素。该组件负责:
28
+ 1. **标题。** 全篇统一用主题式标题,或者统一用直接给结论的标题。只看标题,也应该能跟上整个故事。
29
+ 2. **这页讲什么。** 一页只处理一个问题、一组关系或一个动作。如果这句话里出现“以及、同时、另外、并且”,通常就该拆页。
30
+ 3. **用什么形式。** 例如大数字、图表、表格、时间线、引用、图文并排或多栏对比。形式要跟内容的关系走,不要每页都铺成卡片。
31
+ 4. **装多少。** 写清条目数、表格行数、卡片数,并判断“放得下”还是“要拆页”。
25
32
 
26
- - letterbox 缩放
27
- - 键盘 + 触控翻页
28
- - speaker-notes 的 postMessage 协议
29
- - `data-screen-label` / `data-miaoda-validate` 标记
30
- - print-to-PDF(每张幻灯片一页)
33
+ ### 基于用户输入设计演讲内容
31
34
 
32
- 用 `<script src="deck-stage.js"></script>` 加载它——它是 vanilla JS,不是 JSX。(为了之后导出 PPTX:向 gen_pptx 传入 `resetTransformSelector: "deck-stage"`——该组件支持 `noscale` 属性来禁用 shadow-DOM 缩放,使截图拿到原始尺寸的几何信息。)
35
+ 不要把来源里的长段落原样塞进卡片。先把它改成适合台上讲的内容:数字、关键词、短标签、步骤、对比项或者一句话结论。
33
36
 
34
- deck-stage 组件会对每个 slotted 子元素做绝对定位——**绝不**在幻灯片 `<section>` 元素上自行设置 position/inset/width/height。
37
+ 一页最多放一个高密度结构。长表格、复杂时间线、详细列表、密集图表和大段回答,不能在同一页里两两叠加。
35
38
 
36
- ### 把幻灯片内容写成静态 HTML,而不是 React
39
+ 用户给了页数范围时,优先用范围的上限。装不下就加页,不要为了守住较少的页数而挤内容。
37
40
 
38
- 幻灯片内容应写成静态 HTML,而非 React 或脚本生成的 DOM。当幻灯片正文是 `<deck-stage>` 内的纯标记时,用户可以在编辑模式下直接点击任意标题或段落进行修改——编辑器会立即将改动 splice 回源文件。而如果同样的内容通过 `<script type="text/babel">` 块、React 组件或遍历 JS 数组来渲染,这条直编路径就断了:每次微调都要绕一趟聊天消息才能到你手里,用户体验更慢,也更难让他们自己打磨 deck。因此,凡是静态页面能表达的——文本、布局、背景、图片——都直接在 HTML 里写字面元素并用 CSS 设置样式。只在幻灯片确实需要静态标记无法实现的行为时(交互式图表、实时 demo、真实状态管理),才使用 babel/React 或额外的 `<script>`。同样的渲染结果,静态 HTML 版本**始终优先于**动态版本,因为静态版本可被直接编辑。Tweaks 面板(`tweaks-panel.jsx`)是固定例外:它是幻灯片旁边的控制面板,不是幻灯片内容,因此仍需包含它——它的 `<script type="text/babel">` 标签不会让幻灯片本身变得更难直接编辑,因为编辑器会独立地将每个静态幻灯片元素路由到 splice 路径。
41
+ ### 基于设计内容估算高度
39
42
 
40
- ### 两个细节保持静态幻灯片可直接编辑
43
+ HTML 前,先做一次保守的高度预算,只拦住明显塞不下的页面。
41
44
 
42
- 两个细节确保静态幻灯片可被直接编辑:每段文字都放在自己的叶子元素中(把 "Revenue" 放在 `<h2>` 内单独的 `<span>` 里,而不是写成 `<h2>Revenue <span class="sub">2025</span></h2>` 这样文本和子元素混在同一父节点的形式),重复结构要逐一写出而非生成——三条 `<li>` 直接写在标记里,而不是从数组渲染一个 `<li>` 三次。重复正是重点所在;它让用户能编辑第二条而不影响第一条。
45
+ - 画布高 1080px。普通内容页把标题、上下边距和页码扣掉后,按 **700px 安全区** 来规划,最多不要超过 **820px**。
46
+ - 内容块高度粗算为:`文字行数 × 行高 + 上下 padding + 和其他块之间的 gap`。
47
+ - 表格、时间线、图表等结构,再留 15%–20% 余量。
48
+ - 不用追求像素级准确。粗算已经接近 820px,就按放不下处理。
43
49
 
44
- ## 幻灯片设计与构图
50
+ 这些上限用来快速拦风险:
45
51
 
46
- 先定方向:动手前先调用 `frontend-design` skill 立视觉方向框架,再结合主题、受众、场景提炼视觉关键词,用它们决定配色、字体、图片类型和页面节奏;frontend-design 的通用设计规则与本 skill 的 deck / 构图规则冲突时,以本 skill 为准。保持清晰的层级与一致的视觉系统。
52
+ - 正文预计超过 12 行:优先拆页。
53
+ - 表格最多 6 行;确有必要可以到 8 行,但要减少列和说明文字。
54
+ - 时间线或步骤最多 4 个。
55
+ - 一栏最多竖着放 2 张带多行说明的卡片。
56
+ - 2×2 卡片阵里,每张最多放图标、标题和 2 行说明。
57
+ - 并列项超过 6 个:分组或拆页。
58
+ - 同时出现两个高密度结构:必须拆页。
47
59
 
48
- ### 构图原则
60
+ 装不下时按这个顺序处理:**先删解释和重复内容,再换成更省空间的表达,最后拆页或加页。** 不要靠缩字号、压行距、缩 padding 或 `overflow: hidden` 把问题藏起来。
49
61
 
50
- - **留白 ≠ 空洞。** 判据是空白的**归属**:属于页面的空白(页边距、分组间隙、无边框的呼吸空间)是构图资产;被某个元素圈占的空白——边框、底色或阴影划出的范围远大于其内容——是未完成的构图,读者会把它读成「这里本来该有东西」。元素的边界应由内容撑出来,而不是由要填的空间决定;画布填不满时,把空间留在元素**之间**,或按「视觉平衡」的出路增密。
62
+ 章节页、引用页和大数字页本来就可以很疏,不需要为了填满画面硬加内容。
51
63
 
52
- - **视觉锚点。** 每页要能回答:视线第一眼落在哪里,为什么是那里。锚点可以是一个大数字、一张图表、一句大字陈述,也可以是并列结构中被刻意加重的一项。所有元素等面积、等字号、等色彩权重的页面,是把第一落点交给了随机——那不是中性,是没做构图决策。
64
+ ## 第二步:生成幻灯片框架
53
65
 
54
- - **视觉平衡。** 视觉重量要在整幅画布上分布均衡,不要全压在画幅一角。**内容只占上半画布、下半大面积空置的页面直接违规。** 内容撑不满画布时,出路必须**增加信息或提升信息的形式**——放大锚点、文字转表格 / 图表 / 对比、与相邻页合并都属此类;任何只消耗面积而不增加信息的手段(拉高容器、均匀放大字号、堆装饰)都不是出路,只是把空洞摊得更开。
66
+ ### 使用 deck-stage
55
67
 
56
- - **平行性。** 平行性很重要:章节标题页外观必须一致;页码、眉标等结构件在所有页面位置样式一致;以此类推。不约束内容主体的版式——那归版式节奏管。
68
+ 调用 `copy_starter_component`,传 `kind: "deck-stage.js"`,然后这样写:
57
69
 
58
- - **版式节奏。** 与平行性互为对偶:平行性守住不变的东西,节奏经营变化的东西。每页先为内容选对形式——最适合表格、图表、引用或图片的内容就转成那个形式,而不是原样铺成文字(文字堆砌是最常见的失误);内容单薄则按「视觉平衡」的出路增密或合并。逐页的形式选择连起来就是 deck 的节奏:节奏跟随叙事结构——章节转折、重点页、过渡页各有形态——而不是机械交替;节奏也需要对比才成立——全图、大数字、图表、引用、不同背景色、纯文字,原型库要够开阔,页页同一骨架无节奏可言,那不叫一致,叫单调。用版式和可视化把画布用满不是「填充性内容」;凭空编造数据和板块才是。
70
+ ```html
71
+ <deck-stage width="1920" height="1080">
72
+ <section data-label="封面">...</section>
73
+ </deck-stage>
74
+ <script src="deck-stage.js"></script>
75
+ ```
59
76
 
60
- ### 素材与工艺
77
+ 不要手写 stage 组件。它已经处理了缩放、翻页、校验标记和打印,用 `<script src="deck-stage.js"></script>` 加载即可;它是 vanilla JS,不是 JSX。
61
78
 
62
- - **字号与单位。** 使用大号字体(标题至少 48px)。当用户指定具体字号时,默认他们说的是**磅(points)**(PowerPoint/Keynote 的单位)而非像素——用 `px = pt × 1.333` 换算。所以"把标题设成 36pt" 在 CSS 里设成约 48px。
79
+ 组件会给每个 section 做绝对定位,所以不要在 `<section>` 上再写 `position`、`inset`、`width` `height`。需要导出 PPTX 时,给 `gen_pptx` `resetTransformSelector: "deck-stage"`;需要按原始尺寸截图时,使用组件的 `noscale` 属性。
63
80
 
64
- - **中文字体。** 中文内容的字体对必须包含明确的 CJK 字体,且 `font-family` 全栈声明(拉丁字体在前、CJK 字体随后、通用族兜底):衬线气质配 Noto Serif SC / 思源宋体,无衬线配 Noto Sans SC / 思源黑体系(MiSans/HarmonyOS Sans 亦可)——只写拉丁字体会让中文掉进系统回退。中文不用 italic(CJK 无真斜体,伪斜发虚);强调用字重、颜色或引言竖线。标题拉开字重跨度(如正文 400、大标题 800-900)。
81
+ ### 先定字号和间距
65
82
 
66
- - **素材来源。** 除非用户要求,绝不使用 emoji。使用 design system / 品牌中的图标、用户提供的图片,或图片生成工具产出的图片。
83
+ 写页面前,先把字号、行高、页边距和间距放进 CSS 变量:
67
84
 
68
- - **图片呈现。** 务必先查看图片,再决定最佳展示方式。
69
- - 满版图片可用 aspect-fill;
70
- - 截图必须 aspect-fit,且极少在其上叠加内容;
71
- - 透明或 aspect-fit 的图片应置于对比色背景之上。
85
+ ```css
86
+ :root {
87
+ --type-display: 120px;
88
+ --type-title: 64px;
89
+ --type-subtitle: 44px;
90
+ --type-body: 34px;
91
+ --type-small: 28px;
92
+ --leading-title: 1.15;
93
+ --leading-body: 1.4;
94
+ --measure-body: 40em;
95
+ --pad-top: 100px;
96
+ --pad-bottom: 80px;
97
+ --pad-x: 100px;
98
+ --gap-title: 52px;
99
+ --gap-item: 28px;
100
+ }
101
+ ```
72
102
 
73
- 在图片上叠加文字时,参照品牌惯常做法:根据你在其他地方看到的样式,酌情使用卡片、保护渐变或模糊效果。
103
+ 这些是推荐变量,可以按版式小幅调整,但关键文字不能小于 24px,不能为了塞内容临时造一套小字号。页码、来源等辅助信息可以稍小,但不能承载关键结论。图表的轴标签、图例和数据标注也要显式设大,别用图表库的默认小字。
74
104
 
75
- - **图表与数据可视化。** 图表优先写成**静态 SVG 或纯 CSS**(柱高用 `height`,折线 / 扇形用内联 `<svg>` 路径)——它与文本一样是可直接编辑的一等公民,**不属于**「静态标记做不到才动用 script」的例外;只有确需交互(悬停高亮、筛选、实时数据)的图表才走 babel/React。数字之间只要存在能被眼睛读出的关系(趋势、占比、对比、分布),就转成图表,而不是原样铺成文字。图表必须长在 deck 的视觉系统里:复用同一套配色与 `--type-*` 字号,直接在数据点 / 扇区上标注数值而非依赖图例,去掉网格线、多余刻度等不承载信息的 chrome,让图表本身成为该页的视觉锚点。
105
+ 大段文字用 `max-width: var(--measure-body)` 限宽。多出来的横向空间用双栏、图文并排或对比关系来组织,不要把一行文字拉满整页。
76
106
 
77
- - **概念可视化(信息图)。** 与数字→图表对偶:**文字之间只要存在结构关系——顺序/流程、因果、层级、循环、包含、对比、矩阵——就转成信息图**(静态 SVG / CSS),而不是 bullet list。原型库:步骤条、时间线、金字塔、同心圆、漏斗、四象限矩阵、环形循环、双栏 VS 对比、路径图;内容使用命名框架(波特五力、SWOT、飞轮等)时直接用该框架的经典图式。判据:凡是想写 3 条以上并列 bullet 的地方,先问这几条之间是什么关系——**关系本身就是版式**。图形语言:同一图内同级节点同形态同尺寸、不换色相,差异用主色深浅表达;连接线用 SVG 真图形对齐节点锚点,不用字符箭头;节点等距。信息图复用 deck 配色与 `--type-*` 体系,节点上直接标注文字。
107
+ ### 正文用静态 HTML 实现
78
108
 
79
- - **动效。** 动效服务于叙事——引导视线、分层揭示信息、平滑衔接页面——而不是炫技或填空。默认克制,始终以不干扰阅读为底线。deck 动效的形态是**翻到该页时播放一次的入场 / 分步揭示**,不做环境循环——无限循环的装饰动画会持续争夺注意力。实现用 CSS 动画(幻灯片保持可直编的静态 HTML),两条契约(细节见 deck-stage.js 头部 Authoring guidance):
80
- - 动画门控在 `[data-deck-active]` 与 `prefers-reduced-motion: no-preference` 上——组件在激活页维护该属性,翻页即触发;需要 JS 编排时监听组件的 `slidechange` 事件。
81
- - 基础样式写**可见的最终态**,隐藏态只进 `@keyframes` 的 `from`——缩略图栏、reduced-motion 等场景只渲染静态基础态、从不播动画,把 `opacity: 0` 写在基础规则上,会导致这些场景全成空白。
109
+ 静态 HTML 始终优先,因为用户可以直接编辑。文字、布局、背景和图片都写成 HTML + CSS,不要用 React、数组 `map` 或运行时脚本生成正文。只有确实需要交互的图表或 demo 才使用脚本。
82
110
 
83
- - **结构件。** 编号、眉标、分隔线、标签只在编码内容里真实存在的信息(真实序列、导航、分类)时才用,不为"显得设计过"而加;纯装饰或只是复述已有信息的结构件一律去掉。
111
+ 每段文字放在自己的元素里;重复结构也逐项写出来,方便用户单独修改。
84
112
 
85
- ## 幻灯片写作指南
113
+ ## 第三步:生成幻灯片内容
86
114
 
87
- ### 仅凭标题就应能讲清整个故事
115
+ ### 页面要有重点
88
116
 
89
- 通常来说,仅靠幻灯片标题就应能让人了解 deck 的整体故事和内容(类似书籍的目录)。
117
+ 每一页都要同时顾到版式和文案,不能只把其中一项做好。
90
118
 
91
- 幻灯片标题一般有以下几种结构类型:
119
+ 每页都要说得出第一眼看哪里,可以是一张图、一个大数字、一句大字或一项刻意加重的对比。所有元素一样大、一样重,就没有重点。
92
120
 
93
- - **主题式**:名词短语,告诉听众这页讲什么(如「市场格局」「团队结构」「六大常见威胁」)
94
- - **论点式**:短陈述句,直接给出该页结论(如「亚洲是我们最大的市场」「弱密码是最常被利用的入口」)
121
+ 普通内容页不要把所有东西挤在上半页,也不要用拉高空卡片来填下半页。可以放大真正的看点、换成图表或图文关系,也可以和邻页重新分配内容。
95
122
 
96
- 选定合适的标题结构后,始终保持一致。
123
+ 但章节页、引用页和大数字页可以主动留出大片空白。空白是版式的一部分,不等于页面没做完。
97
124
 
98
- ### 避免暴露 AI 生成痕迹的 "AI 味"
125
+ 页码、眉标和章节页样式要统一;页面骨架要随着内容变化。数据用图表,对比用并列关系,步骤用流程,金句用引用页。丰富来自关系和版式,不来自堆更多文字。
99
126
 
100
- 避免以下常见的 "AI 味"——它们会暴露这个 deck 是 AI 生成的:
127
+ ### 页面不能太空
101
128
 
102
- - "宣判式"的标题和要点总结,过度戏剧化/简化,无缘由地制造张力(经典的 "It's not X. It's Y."),使用强祈使句,过度重新包装概念,或刻意悬念、故作洞察。
103
- - 类似 "The magic moment" 这样的标题
104
- - 总之,AI 倾向于把标题写成演讲者的金句,而非引导听众进入该页内容的**标题**——必须避免!
129
+ 避免溢出的同时,也要保证普通内容页有足够的信息密度。内容只缩在页面一小块、其余地方大面积空着,通常说明内容或版式还没组织好。
105
130
 
106
- ## 规划步骤
131
+ 页面太空时,按这个顺序处理:**先放大真正的主视觉,再把短文字改成图文、对比、流程或数据展示,然后补充与本页结论直接相关的信息;内容仍撑不起一页,就和相邻页面合并。**
107
132
 
108
- 在常规规划之外,务必完成以下步骤:
133
+ 不要靠拉高空卡片、统一放大所有字号、添加无意义图标或堆装饰来填空。章节页、引用页、大数字页和满版图片页可以主动留白,但留白必须在突出重点或帮助构图。
109
134
 
110
- 1. 如果不清楚受众、期望的品牌风格,先提问。
111
- 2. 写出完整的标题序列。选择**一种**语法风格(例如短主题名词短语或简短陈述句),确保适合内容,并用该风格写出每一个标题。回头通读一遍,判断一个人**仅凭标题**能否跟上整个演示的脉络。标题应像书的章节——用直白的语言告诉读者接下来是什么。审阅这些标题并按需修订。将它们写入 scratchpad.md 文件。
112
- 3. 在 scratchpad.md 里为每张幻灯片标注**版式原型**(满版图 / 图表 / 信息图 / 表格 / 引用 / 多栏卡片 / 时间线 / 纯文字……)与**视觉锚点**(这页视线的第一落点)。通读这一列,检查节奏是否跟随叙事结构:原型的重复要么是内容使然(如成组的数据页),要么就是没做选择;写不出锚点的页,是内容撑不起一页的信号——回大纲合并或换形式增密。
113
- 4. 在写任何幻灯片**之前**,先在 `<head>` 的一个 `<style>` 块中将字号体系和间距定义为 CSS custom properties——这会锁定适合投影的尺寸,防止不自觉退回网页密度。在 1920×1080 下,合理的起始体系为:`:root { --type-hero: 160px; --type-display: 96px; --type-title: 64px; --type-subtitle: 44px; --type-body: 34px; --type-small: 28px; --pad-top: 100px; --pad-bottom: 80px; --pad-x: 100px; --gap-title: 52px; --gap-item: 28px; }`。在 1280×720 下,按 ~0.67 缩放。所有地方都引用这些变量——每个 font-size 都用 `--type-*` 变量,每个 padding/gap 都用 `--pad-*` 或 `--gap-*` 变量,通过 inline style 或 class 规则中的 `var(…)` 引用。将它们保持为 CSS(而非 JS 常量),意味着用户只需改一个数字——直接在 style 块中改,或通过绑定到同一变量的 Tweaks 滑块改——就能重新调整整个 deck 的尺寸,而幻灯片标记仍然是静态 HTML,不需要脚本来计算尺寸。显式的 `--pad-bottom` 为每张幻灯片底部预留呼吸空间;那个留白是结构性的,不是空的。网页默认值(body 14-16px、padding 48-72px)对幻灯片太小;如果数值让你觉得不够大方,那就是还不够。如果你用了小于 24px 的尺寸,你的校验器(validator)会抛出错误。
114
- 5. 构建幻灯片,牢记每张幻灯片既是设计练习也是文案练习。在版式、文字内容和语调方面给予每张幻灯片应有的关注。遵循上述原则,确保每张幻灯片能独立成立;一个只看这一页的人,应当无需其他上下文就能理解其高层含义。
135
+ ### 封面要有设计感
115
136
 
116
- ## 验证要点
137
+ 封面不是把标题、副标题和小图标居中摆好就结束。先选一个明确的主视觉,可以是图片、图形、超大文字、数字或有主题含义的留白构图,再围绕它安排标题和辅助信息。标题要一眼可见,作者、日期等信息退到次要层级。构图可以偏置、裁切、叠压或利用尺度反差,但不要同时堆很多装饰。封面的视觉语言要和内页一致,同时比普通内容页更大胆,让人第一眼就能感受到主题和气质。
117
138
 
118
- 审阅时,用幻灯片构图规则——而非网页布局直觉——来检查截图。底部留白是不是缺陷,用「留白 ≠ 空洞」的归属判据:内容自身完整、下方是无边框的整块呼吸空间,这是正确的幻灯片构图——不要出于网页直觉把 `flex-start` 改成 `center`;空白被元素边界圈占的,是被动空洞,按「视觉平衡」的出路修。
139
+ ### 样式设计规则
119
140
 
120
- 逐页核对以下各项:
141
+ - **先清楚,再好看。** 读者应该先看懂结构,再感受到风格。
142
+ - **明暗主题跟着内容选。** 根据品牌、素材、受众和演示环境选择浅色、深色、中性或局部深色。选完要保证对比度和信息层级。
143
+ - **默认做平面设计。** 用有意义的分隔线、浅底色、色块、表格斑马纹、编号和标签建立层级。
144
+ - **字号与单位。** 标题至少 48px。用户说具体字号时,默认指 PowerPoint/Keynote 的磅:`px = pt × 1.333`,所以 36pt 约等于 48px。
145
+ - **中文字体。** `font-family` 要写拉丁字体、明确的 CJK 字体和通用兜底。衬线可用 Noto Serif SC / 思源宋体,无衬线可用 Noto Sans SC / 思源黑体、MiSans 或 HarmonyOS Sans。中文不用假斜体;强调靠字重、颜色或引用线。正文和标题要拉开字重。
146
+ - **素材来源。** 除非用户要求,不用 emoji。图标跟随 design system 或品牌;图片使用用户提供的素材或图片工具生成的素材。
147
+ - **图片呈现。** 先看图片,再决定怎么放。满版氛围图可以裁切填满;截图必须完整显示,尽量不在上面压内容;透明图和完整显示的图片要放在有对比度的背景上。需要在图片上放文字时,跟随品牌已有做法,选择保护渐变、模糊或必要的文字底板。
148
+ - **不 iframe 外站。** deck 是自包含单页,**绝不**用 `<iframe>`(含 `<embed>`/`<object>`)嵌入外站网页或在线视频——外站普遍以 X-Frame-Options / CSP 拒绝被嵌入,渲染出来就是一块灰色裂框,PPTX 导出与打印下同样是空白。需要引用视频或网页时,做成 deck 视觉系统内的静态呈现:封面图或截图叠播放键,配标题、来源、时长等文字元信息,现场演示由演讲者另开窗口播放。
149
+ - **图表优先静态实现。** 柱状图可以用 CSS,折线和扇形可以用内联 SVG;只有悬停、筛选或实时数据等真交互才用脚本。趋势、占比、对比和分布尽量画出来,不要铺成文字。图表沿用整套 deck 的颜色和字号,数值尽量直接标在图上,删掉无用网格线和刻度。轴标签、图例和数据标注也不能小于 24px。
150
+ - **动效服务于讲述。** 只做翻到该页时播放一次的入场或分步揭示,不做循环装饰。用 CSS 动画,并遵守两条规则:
151
+ - 动画挂在 `[data-deck-active]` 和 `prefers-reduced-motion: no-preference` 上;需要 JS 编排时监听 `slidechange`。
152
+ - 基础样式就是完整的最终状态,隐藏态只写进 `@keyframes` 的 `from`,不要在基础规则里写 `opacity: 0`。
153
+ - 默认不用阴影、发光、玻璃拟态和装饰性渐变。渐变只用于图片上的文字保护,或数据的连续色带。
154
+ - 不要默认使用深色底、紫蓝渐变、发光卡片这套“科技感”。用户或品牌明确要时再用。
155
+ - 不要把所有内容都装进“白底 + 1px 描边 + 圆角”的卡片。边框没有表达分组、状态或层级时,直接去掉。
156
+ - 禁止“圆角卡片 + 单边彩色 border”,包括 `border-left`、`border-top` 和 `border-bottom`。颜色真有含义时,用编号、整块色底或整页色调表达。
157
+ - 引用可以用一根直角竖线,但不要再套圆角卡片。
158
+ - 编号、标签、分隔线只有在真的表示序号、分类或状态时才加。
121
159
 
122
- - 字号匹配你的 `--type-*` 体系(而非网页密度)
123
- - 幻灯片边距匹配你的 `--pad-*` 值(而非网页紧凑间距)
124
- - 封面有统治画面的主视觉,标题位置有构图意图,不是「小图标 + 居中标题」三件套
125
- - 结构件(页码、眉标)全 deck 位置样式一致;章节页彼此外观一致
126
- - 没有使用 accent-border 卡片或 takeaway box
127
- - 没有内容被画幅边缘裁切、显示不全
128
- - 没有元素相互压叠、遮挡到读不清
129
- - 没有被动空洞:边框 / 底色圈出的范围与其内容相称
130
- - 页面视觉重量在画布上分布均衡,没有大片区域读成「缺了东西」
131
- - 每页能指出视觉锚点;版式原型的重复经得起「内容使然还是没做选择」的追问
132
- - 带动效的元素在缩略图栏和打印视图下完整可见(基础样式即最终态,隐藏态只在 keyframes 的 `from` 里)
160
+ ### 文案说人话
161
+
162
+ 标题的任务是告诉观众这页讲什么,不是替演讲者写金句。少用宣判腔、强行反转、故作悬念和 “It's not X. It's Y.” 这类句式,也别写 “The magic moment” 一类空泛标题。
163
+
164
+ 每页单独拿出来,也应该能看懂大意。
165
+
166
+ ## 自检
167
+
168
+ 不要求每页截图。可以给内容最丰富的页面截图,或者直接回读 HTML;重点检查最满的两三页,以及所有表格、时间线和卡片阵:
169
+
170
+ - 高度粗算没有超过 820px,各类高密度结构没有超过前面的上限。
171
+ - 每页只讲一件事,没有把两个高密度结构塞在一起。
172
+ - 关键文字不小于 24px,没有靠缩字、压间距或 `overflow: hidden` 掩盖溢出。
173
+ - 页码、总页数和 `<section>` 数量一致。
174
+ - 没有内容被画幅裁掉,也没有元素互相遮挡。
175
+ - 没有无意义的描边圆角卡片、单边彩色圆角卡片、阴影、发光、玻璃拟态和装饰性渐变。
176
+ - 封面有一个主视觉,不是“小图标 + 居中标题 + 居中副标题”的固定三件套。
177
+ - 页码和眉标统一;相邻页面的骨架有变化,但变化跟内容有关。
178
+ - 每页都看得出重点;疏页面是有意留白,不是忘了安排内容。
179
+ - 普通内容页没有缩在一个角落或只占上半页;大面积留白能说清它在突出什么,否则要重组版式或合并页面。
180
+ - 动效元素在不播放动画时也是完整可见的。
@@ -1,8 +1,10 @@
1
1
  ---
2
2
  name: visual-exposure
3
3
  description: 用于制作可视化报告、专题视觉页、信息图、视觉长图、概念可视化、产品能力曝光、方案亮点展示等内容型 HTML 视觉作品。适合用户想把材料、数据或观点组织成可阅读、可展示、可传播的视觉化表达,但不希望做成 PPT、传统 dashboard 或纯 ECharts 图表的场景。触发词:可视化报告, 视觉报告, 可视化曝光, 视觉化曝光, 信息图, 长图, infographic, 视觉表达, 概念可视化, 亮点展示, 能力曝光
4
- available-agents:
5
- - CreativeDesign
4
+ metadata:
5
+ display-names:
6
+ zh-CN: 可视化报告
7
+ en-US: Visual Report
6
8
  ---
7
9
 
8
10
  # 可视化报告与专题表达
@@ -17,7 +19,7 @@ available-agents:
17
19
  4. 按材料逻辑组织内容,而不是套固定目录、固定模块或固定视觉模板。参考样式只能启发表达方式,不能替代对当前材料的判断。
18
20
  5. 把材料拆成具体阅读任务:这一段要让读者完成什么判断、理解什么关系、记住什么事实、比较什么差异、追踪什么过程、相信什么证据。不要把这些任务名直接变成目录或模块标题。
19
21
  6. 为每个阅读任务现场生成合适的组件、视觉和布局:先说明这段内容需要什么表达方式,再落成具体 UI / 图形 / 排版 / 图表 / 截图 / 文字组合。可以创造新的结构和视觉隐喻,不受现有组件名限制;避免所有章节共享同一套组件组合。
20
- 7. 先写风格 brief:主题隐喻、受众姿态、材料语言、配色逻辑和视觉签名。财务报告可以像正式报告册,员工调研可以像组织研究档案,产品上市总结可以像品牌战报;这些只是启发,必须从用户材料里推导。
22
+ 7. 先写风格 brief:主题隐喻、受众姿态、材料语言、配色逻辑和签名元素。财务报告可以像正式报告册,员工调研可以像组织研究档案,产品上市总结可以像品牌战报;这些只是启发,必须从用户材料里推导。
21
23
  8. 建立版式系统:画幅、栅格、字号层级、颜色、图标/线条语言、强调方式和章节节奏。版式系统必须说明不同章节如何变化,而不是所有章节都用同一种上下结构。
22
24
  9. 产出单个 HTML 文档。用户需求明确时直接做;只有主题、素材或交付形态完全无法判断时,才问少量必要问题。
23
25
 
@@ -50,7 +52,7 @@ available-agents:
50
52
  - 默认平面化处理:内容区优先使用细边框、分隔线、浅底色、色块、表格斑马纹、编号和标签建立层级;不要给章节、卡片、图表容器加各种 `box-shadow`。
51
53
  - 少用装饰性渐变、发光、玻璃拟态。视觉效果要帮助分组、强调或引导视线。
52
54
  - 风格跟随内容、受众和品牌:可以正式、温和、技术、编辑化、品牌化或实验感,但不要从某个样例场景继承固定颜色、固定目录或固定组件。
53
- - 每份报告应有一个可解释的视觉签名。视觉签名要从用户主题、材料质感和阅读任务中生成,而不是复用固定手法;它可以是任何能组织内容、建立记忆点并保持一致性的视觉规则。
55
+ - 每份报告应有一个可解释的签名元素。签名元素要从用户主题、材料质感和阅读任务中生成,而不是复用固定手法;它可以是任何能组织内容、建立记忆点并保持一致性的视觉规则。
54
56
  - 真实素材优先:用户给的截图、logo、图片、图标、数据片段要优先使用。没有素材时,用清楚的占位结构和可替换文案。
55
57
  - 允许少量动效,但只用于进入、强调或引导阅读,不做干扰理解的持续动画。
56
58
  - 可以包含数字、图表和表格,但它们服务于报告叙事;不要为了“可视化”而把所有内容都做成图。
@@ -1,10 +1,12 @@
1
1
  ---
2
2
  name: wireframe
3
- description: Explore many ideas with wireframes and storyboards
4
- available-agents:
5
- - CreativeDesign
3
+ description: 用线框图和故事板探索多种想法。触发词:wireframe, storyboard, 线框图, 故事板, 分镜, 草图, 低保真, 方案探索, 设计探索
4
+ metadata:
5
+ display-names:
6
+ zh-CN: 线框图
7
+ en-US: Wireframe
6
8
  ---
7
9
 
8
- # Wireframe
10
+ # 线框图
9
11
 
10
- Help the user explore design ideas quickly. Interview them, then generate multiple rough wireframes to map out the design space before committing to a direction. Prioritize breadth over polish: show 3-5 distinctly different approaches for each idea. Use simple shapes, placeholder text, and minimal color to keep the focus on structure and flow. Use a sketchy vibe -- handwritten but readable fonts; b&w with some color; low-fi and simple. Provide simple tweaks; show options side-by-side if small or using a tab control if large.
12
+ 帮助用户快速探索设计想法。先访谈用户,再生成多个粗略的线框图,在锁定方向之前把设计空间勾勒出来。优先追求广度而非精细打磨:每个想法给出 3-5 种明显不同的方案。用简单的形状、占位文字和极少的颜色,把焦点留在结构和流程上。整体保持手绘草图的感觉——手写风格但清晰可读的字体;以黑白为主、点缀少量颜色;低保真、简洁。提供简单的微调控件(Tweaks);选项占地小就并排展示,占地大就用 tab 控件切换。