feat(ppt): zongyuan_red 逆向重建为真实中国建材总院模板 + 主动提示(bump 0.38.2)

按官方 总院模板.pptx(中国建筑材料科学研究总院)把手搓的 zongyuan_red
重建为真实品牌模板:PowerPoint COM 渲真页 + 解 pptx 抽实测色/字/资产。

- 打包 logo.png(八边形字标,EMF→PNG)/ cover_bg.jpg(总部大楼灰度)/
  ending_bg.jpg(材料马赛克);TIFF→压缩 JPG、EMF→透明 PNG
- 重写 5 页 SVG 忠实还原:封面(实景铺底+红块)/目录(红斜三角)/
  章节(八边形水印,原件缺按 DNA 合成)/内容(灰底红顶条卡片+底部红条)/
  尾页(材料创造美好世界+Thanks)
- 实测身份:主红 #D7000E、目录红 #D52C24、近黑 #181717、辅灰 #6F6F6F/#BCBDBD;
  微软雅黑+Arial+方正兰亭黑
- 改写 design_spec.md;补登记 layouts_index.json(此前 dir 在但未注册)
- 质检 --template-mode 5 页零 error;finalize 内嵌 8 图 + 全量渲图逐页确认

主动提示:strategist.md §e + SKILL.md 默认主题段各补一条 —— 指向
中国建材总院·CNBM 系汇报(含职称评审)时策略阶段主动把 zongyuan_red
整套模板作为候选点名给用户,点头再按明确路径套入;唯一鼓励主动提模板的
场景,其余仍等明确路径。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
caoqianming 2026-07-03 15:18:06 +08:00
parent dc721ba8a3
commit 941554f9d7
14 changed files with 204 additions and 383 deletions

View File

@ -21,6 +21,9 @@
## 已完成关键能力 ## 已完成关键能力
### 2026-07-03 / ppt 模板 zongyuan_red 逆向重建为真实 中国建材总院 身份(bump 0.38.2)
用户给官方 `总院模板.pptx`(中国建筑材料科学研究总院有限公司)要求"统一按这个来,zongyuan_red"。原 `layouts/zongyuan_red/` 是手搓的红条结构版(深蓝 #1F2A44 + 顶部红条 + 55/45 封面 + PART 章节),与真实文件 DNA 完全不符。PowerPoint COM 渲出 3 档真页(封面/内容/尾页)+ 解 pptx 抽实测:主红 `#D7000E`、目录红 `#D52C24`、近黑 `#181717`、辅灰 `#6F6F6F`/`#BCBDBD`;字体 微软雅黑 + Arial + 方正兰亭黑;八边形品牌 logo(EMF→PNG 透明底)+ 总部大楼灰度实景 + 材料马赛克实景(TIFF→压缩 JPG)。重写 5 页 SVG 忠实还原:封面(实景铺底+顶左 logo&机构全称+居中主红块+白标题)/目录(左上实景+右下大红斜三角+目录标题+白字方块序号,承集团规范斜向分割)/章节(八边形品牌水印+红 PART 胶囊+大标题,原件缺、按八边形 DNA 合成)/内容(左缘红方块+标题+灰分隔线+右上 logo+4 列灰底红顶条卡片+底部红条+页码)/尾页(材料马赛克+"材料创造美好世界"红+Thanks)。打包 logo.png/cover_bg.jpg/ending_bg.jpg 三资产,改写 design_spec.md 反映真实身份,补登记进 layouts_index.json(此前 dir 在但未注册)。质检 --template-mode 5 页零 error;finalize 内嵌 8 图 + svg_preview 全量渲图逐页过目确认与原件一致。**并加主动提示**:strategist.md §e + SKILL.md 默认主题段各补一条 —— 受众/素材/用户机构指向 中国建材总院·CNBM 系(汇报/立项/评审/职称评审/品牌宣讲)时,策略阶段**主动**把 `zongyuan_red` 整套模板作为候选点名给用户(区别于 business-red 仅配色预设),用户点头再按明确路径套入;这是唯一鼓励主动提模板的场景,其余仍等明确路径,不模糊匹配。
### 2026-07-03 / web 进度 dock 展开遮挡最新内容(贴底时补触底,bump 0.38.1) ### 2026-07-03 / web 进度 dock 展开遮挡最新内容(贴底时补触底,bump 0.38.1)
用户报:对话「拉到底部但仍有内容被遮挡看不到」。根因:`#task-progress-dock` 是 `#chat-stream` 上方的 flex 兄弟(`flex-shrink:0`),dock 一展开/长高,`chat-stream` 可视高度就被从顶部挤掉那么多——`scrollTop` 据置不变,原本贴底的内容被推到视口折线以下看不见。而 `chat.js` 直播态 `task_progress` 事件在重渲 dock(=长高)后**早 return,跳过了末尾第 1684 行的贴底兜底**,所以底部不会自动回滚。修:在 `task_progress` 分支 `setTaskProgress` 后补一句 `if (nearBottom) stream.scrollTop = stream.scrollHeight`(与其余事件分支同款贴底逻辑),dock 涨高时把最新内容重新钉到底。只动 `web/static/js/chat.js` 直播路径一处,历史渲染/其他事件不受影响。 用户报:对话「拉到底部但仍有内容被遮挡看不到」。根因:`#task-progress-dock` 是 `#chat-stream` 上方的 flex 兄弟(`flex-shrink:0`),dock 一展开/长高,`chat-stream` 可视高度就被从顶部挤掉那么多——`scrollTop` 据置不变,原本贴底的内容被推到视口折线以下看不见。而 `chat.js` 直播态 `task_progress` 事件在重渲 dock(=长高)后**早 return,跳过了末尾第 1684 行的贴底兜底**,所以底部不会自动回滚。修:在 `task_progress` 分支 `setTaskProgress` 后补一句 `if (nearBottom) stream.scrollTop = stream.scrollHeight`(与其余事件分支同款贴底逻辑),dock 涨高时把最新内容重新钉到底。只动 `web/static/js/chat.js` 直播路径一处,历史渲染/其他事件不受影响。

View File

@ -1,3 +1,3 @@
# zcbot 版本号单一事实源:web/app.py 的 FastAPI version、/healthz 返回、前端展示都引这里。 # zcbot 版本号单一事实源:web/app.py 的 FastAPI version、/healthz 返回、前端展示都引这里。
# 改版本只动这一行。 # 改版本只动这一行。
__version__ = "0.38.1" __version__ = "0.38.2"

View File

@ -72,6 +72,7 @@ description: 生成 PowerPoint 演示文稿 (.pptx) 文件。✅ 触发:用户
- 商务红 `#C00000` / 中建材等品牌色,作为**候选之一**;**中文政企/集团/科研商务汇报默认就把商务红列进 ≥3 配色候选**(见 strategist.md §e)。用户点名("做成蓝色 / 用我们公司紫色")或素材里有 brand guideline → 按其锁定。 - 商务红 `#C00000` / 中建材等品牌色,作为**候选之一**;**中文政企/集团/科研商务汇报默认就把商务红列进 ≥3 配色候选**(见 strategist.md §e)。用户点名("做成蓝色 / 用我们公司紫色")或素材里有 brand guideline → 按其锁定。
- 现成一款 **`business-red` 商务红品牌预设**(`templates/brands/business-red/`:#C00000 全色表 + 宋体标题 + 实心图标);用户说"红色 / 商务红 / 中建材风"→ 指给他按路径 opt-in,或直接锁其配色。其它品牌/模板同理:**用户给 `templates/` 下明确路径才触发**(见 strategist.md 模板分发),不主动猜、不模糊匹配。 - 现成一款 **`business-red` 商务红品牌预设**(`templates/brands/business-red/`:#C00000 全色表 + 宋体标题 + 实心图标);用户说"红色 / 商务红 / 中建材风"→ 指给他按路径 opt-in,或直接锁其配色。其它品牌/模板同理:**用户给 `templates/` 下明确路径才触发**(见 strategist.md 模板分发),不主动猜、不模糊匹配。
- **例外(主动提示):中国建材总院系汇报** —— 受众/素材/用户机构指向 **中国建筑材料科学研究总院 · 中国建材(CNBM)系**(工作汇报/立项/项目评审/**职称评审**/品牌宣讲)时,策略阶段**主动**把整套品牌模板 `templates/layouts/zongyuan_red/`(八边形 logo + 品牌红 `#D7000E` + 总部大楼实景铺底,5 页齐)作为候选点名给用户,用户点头再按明确路径套入(见 strategist.md §e "中国建材总院" 提示)。这是唯一鼓励主动提模板的场景;其余仍等明确路径。
--- ---

View File

@ -123,6 +123,8 @@ Proactively provide a color scheme (HEX values) based on content characteristics
> **商务红 default candidate.** For Chinese state-enterprise / group / research-institute business decks (工作汇报 / 述职 / 方案评审 / 年度总结 / 科技成果), offer **商务红 `#C00000`** as one of the ≥3 color candidates by default — it is the conventional, expected business color in this context. Anchor a red-dominant scheme on it: pair with a 鎏金 `#BF9B5F` *or* 沉靛蓝 `#2B4C7E` accent (red-gold or red-blue, pick one as the point accent), warm off-white surface (`#FBF5F5`), and reserve solid `#C00000` for headings / key data / one color block — never a full-canvas red. A ready-made bundle of exactly this (palette + serif-title typography + filled-icon style) ships as the **`business-red` brand preset** (`templates/brands/business-red/`); when the user wants "红色 / 商务红 / 中建材风" point them at it (apply by explicit path per Step 3) or lock its palette inline. > **商务红 default candidate.** For Chinese state-enterprise / group / research-institute business decks (工作汇报 / 述职 / 方案评审 / 年度总结 / 科技成果), offer **商务红 `#C00000`** as one of the ≥3 color candidates by default — it is the conventional, expected business color in this context. Anchor a red-dominant scheme on it: pair with a 鎏金 `#BF9B5F` *or* 沉靛蓝 `#2B4C7E` accent (red-gold or red-blue, pick one as the point accent), warm off-white surface (`#FBF5F5`), and reserve solid `#C00000` for headings / key data / one color block — never a full-canvas red. A ready-made bundle of exactly this (palette + serif-title typography + filled-icon style) ships as the **`business-red` brand preset** (`templates/brands/business-red/`); when the user wants "红色 / 商务红 / 中建材风" point them at it (apply by explicit path per Step 3) or lock its palette inline.
> **中国建材总院 → 主动提 `zongyuan_red` 整套模板.** 当受众 / 素材 / 用户机构指向 **中国建筑材料科学研究总院 · 中国建材(CNBM)系**(工作汇报 / 述职 / 立项 / 项目评审 / **职称评审** / 品牌宣讲)时,除商务红候选外,**主动在 ah 预览里把 `templates/layouts/zongyuan_red/` 作为一个候选点名给用户**(一句话:"你们总院有现成品牌模板 `zongyuan_red`(八边形 logo + 品牌红 `#D7000E` + 总部大楼实景铺底,封面/目录/章节/内容/尾页 5 页齐),要不要直接套?")。与 `business-red` 的区别:business-red 只是**配色+字体身份预设**(自由设计上皮用);zongyuan_red 是**带真实 logo/实景照片的整套 5 页版式**,要品牌一致、省事就用它。仍是 opt-in —— 用户点头后按 Step 3 以**明确路径**套入锁定其 identity+structure;用户要另起风格 / 换配色就走自由设计,不强推。
**Color rules**: 60-30-10 rule (primary 60%, secondary 30%, accent 10%); text contrast ratio >= 4.5:1; no more than 4 colors per page. **Color rules**: 60-30-10 rule (primary 60%, secondary 30%, accent 10%); text contrast ratio >= 4.5:1; no more than 4 colors per page.
**Lock the full neutral set the visual style implies** — not just primary / secondary / accent / border. Predict the extra neutral tiers the locked `visual_style` (§d Layer 2) needs and lock them now; `spec_lock.colors` must be complete before generation, and the Executor draws only from it (never invents a tone mid-deck). **Lock the full neutral set the visual style implies** — not just primary / secondary / accent / border. Predict the extra neutral tiers the locked `visual_style` (§d Layer 2) needs and lock them now; `spec_lock.colors` must be complete before generation, and the Executor draws only from it (never invents a tone mid-deck).

View File

@ -83,5 +83,17 @@
"content", "content",
"ending" "ending"
] ]
},
"zongyuan_red": {
"summary": "中国建筑材料科学研究总院/中国建材集团品牌汇报:政企科研汇报、专项立项、项目评审、职称评审、品牌宣讲。",
"canvas_format": "ppt169",
"page_count": 5,
"page_types": [
"cover",
"toc",
"chapter",
"content",
"ending"
]
} }
} }

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 22 KiB

After

Width:  |  Height:  |  Size: 1.9 KiB

View File

@ -1,66 +1,24 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1280 720" width="1280" height="720"> <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 1280 720" width="1280" height="720">
<defs> <!-- ===== 中国建材总院 · 章节分隔页 =====
<linearGradient id="chapterBg" x1="0%" y1="0%" x2="100%" y2="100%"> 白底 + 右侧八边形品牌水印(呼应 logo) + 左侧 PART 胶囊 + 章节大标题。
<stop offset="0%" stop-color="#1F2A44"/> 集团缺章节页,按八边形 DNA 合成。 -->
<stop offset="100%" stop-color="#0A1220"/>
</linearGradient>
</defs>
<!-- Background --> <rect x="0" y="0" width="1280" height="720" fill="#FFFFFF"/>
<rect x="0" y="0" width="1280" height="720" fill="url(#chapterBg)"/> <rect x="0" y="0" width="1280" height="6" fill="#ECECEC"/>
<rect x="0" y="714" width="1280" height="6" fill="#ECECEC"/>
<!-- Top brand bar --> <!-- 右侧八边形品牌水印(呼应 logo 造型) -->
<rect x="0" y="0" width="1280" height="8" fill="#D6000F"/> <polygon points="1250,459 1109,600 910,600 770,459 770,261 910,120 1109,120 1250,261" fill="#D7000E" fill-opacity="0.06"/>
<polygon points="1170,410 1085,510 965,510 880,410 880,290 965,190 1085,190 1170,290" fill="none" stroke="#D7000E" stroke-opacity="0.18" stroke-width="2"/>
<!-- Bottom brand bar --> <!-- 左侧:PART 胶囊 -->
<rect x="0" y="712" width="1280" height="8" fill="#D6000F"/> <rect x="80" y="248" width="196" height="46" rx="23" fill="#D7000E"/>
<text x="104" y="279" font-family="Arial, sans-serif" font-size="22" font-weight="bold" fill="#FFFFFF" letter-spacing="2">PART {{CHAPTER_NUM}}</text>
<!-- Decorative diagonal bands --> <!-- 章节大标题 + 红色下划线 -->
<polygon points="0,0 200,0 0,200" fill="#D6000F" fill-opacity="0.1"/> <text x="80" y="392" font-family="微软雅黑, 'Microsoft YaHei', sans-serif" font-size="44" font-weight="bold" fill="#181717" letter-spacing="2">{{CHAPTER_TITLE}}</text>
<polygon points="1280,720 1080,720 1280,520" fill="#D6000F" fill-opacity="0.1"/> <rect x="82" y="418" width="130" height="6" fill="#D7000E"/>
<!-- Decorative dots --> <!-- 左下八边形 logo -->
<g fill="#FFFFFF" fill-opacity="0.1"> <image x="80" y="600" width="52" height="76" xlink:href="logo.png" preserveAspectRatio="xMidYMid meet"/>
<circle cx="1100" cy="150" r="3"/>
<circle cx="1130" cy="150" r="3"/>
<circle cx="1160" cy="150" r="3"/>
<circle cx="1100" cy="180" r="3"/>
<circle cx="1130" cy="180" r="3"/>
<circle cx="1160" cy="180" r="3"/>
</g>
<!-- Large background number -->
<text x="640" y="460" font-family="Arial" font-size="340" font-weight="bold" fill="#D6000F" fill-opacity="0.15" text-anchor="middle">{{CHAPTER_NUM}}</text>
<!-- Chapter label pill -->
<g id="chapter-pill">
<rect x="540" y="240" width="200" height="40" fill="#D6000F" rx="20"/>
<text x="640" y="268" font-family="Arial" font-size="18" fill="#FFFFFF" text-anchor="middle" letter-spacing="6" font-weight="bold">PART 0{{CHAPTER_NUM}}</text>
</g>
<!-- Divider -->
<rect x="440" y="310" width="400" height="2" fill="#D6000F"/>
<!-- Main title -->
<text x="640" y="400" font-family="Microsoft YaHei" font-size="56" font-weight="bold" fill="#FFFFFF" text-anchor="middle">{{CHAPTER_TITLE}}</text>
<!-- Sub decorative line -->
<rect x="590" y="440" width="100" height="2" fill="#FFFFFF" fill-opacity="0.4"/>
<!-- Decorative dots under title -->
<g fill="#D6000F">
<circle cx="610" cy="490" r="4"/>
<circle cx="630" cy="490" r="4" fill-opacity="0.7"/>
<circle cx="650" cy="490" r="4" fill-opacity="0.4"/>
<circle cx="670" cy="490" r="4" fill-opacity="0.2"/>
</g>
<!-- Bottom-left mark -->
<g id="bottom-mark">
<rect x="60" y="640" width="30" height="3" fill="#D6000F"/>
<text x="60" y="670" font-family="Arial" font-size="12" fill="#FFFFFF" fill-opacity="0.6" letter-spacing="2">CHAPTER DIVIDER</text>
</g>
<!-- Bottom-right page number -->
<text x="1220" y="670" font-family="Arial" font-size="14" fill="#FFFFFF" fill-opacity="0.6" text-anchor="end">0{{CHAPTER_NUM}}</text>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 2.6 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 22 KiB

After

Width:  |  Height:  |  Size: 2.0 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 21 KiB

After

Width:  |  Height:  |  Size: 3.3 KiB

View File

@ -1,57 +1,19 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1280 720" width="1280" height="720"> <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 1280 720" width="1280" height="720">
<defs> <!-- ===== 中国建材总院 · 尾页 =====
<linearGradient id="endingBg" x1="0%" y1="0%" x2="100%" y2="100%"> 材料应用马赛克灰度铺底 + 集团口号"材料创造美好世界"(红) + Thanks(深灰) +
<stop offset="0%" stop-color="#1F2A44"/> 右上八边形 logo。忠实还原 总院模板.pptx slide3。 -->
<stop offset="60%" stop-color="#3D0B18"/>
<stop offset="100%" stop-color="#8B0010"/>
</linearGradient>
</defs>
<!-- Background --> <!-- 背景:材料马赛克灰度实景,白罩淡化 -->
<rect x="0" y="0" width="1280" height="720" fill="url(#endingBg)"/> <image x="0" y="0" width="1280" height="720" xlink:href="ending_bg.jpg" preserveAspectRatio="xMidYMid slice"/>
<rect x="0" y="0" width="1280" height="720" fill="#FFFFFF" fill-opacity="0.30"/>
<!-- Top brand bar --> <!-- 右上:八边形 logo -->
<rect x="0" y="0" width="1280" height="8" fill="#D6000F"/> <image x="1160" y="24" width="64" height="88" xlink:href="logo.png" preserveAspectRatio="xMidYMid meet"/>
<!-- Decorative corner diagonals --> <!-- 集团口号 + Thanks(居中偏上) -->
<polygon points="0,0 240,0 0,240" fill="#D6000F" fill-opacity="0.15"/> <text x="560" y="352" font-family="微软雅黑, 'Microsoft YaHei', sans-serif" font-size="48" font-weight="bold" fill="#D7000E" text-anchor="middle" letter-spacing="4">材料创造美好世界</text>
<polygon points="1280,720 1040,720 1280,480" fill="#D6000F" fill-opacity="0.2"/> <text x="560" y="404" font-family="Arial, sans-serif" font-size="26" fill="#6F6F6F" text-anchor="middle" letter-spacing="6">{{THANK_YOU}}</text>
<!-- Decorative dots --> <!-- 结束信息 -->
<g fill="#FFFFFF" fill-opacity="0.1"> <text x="560" y="452" font-family="微软雅黑, 'Microsoft YaHei', sans-serif" font-size="15" fill="#6F6F6F" text-anchor="middle">{{CONTACT_INFO}}</text>
<circle cx="180" cy="580" r="3"/>
<circle cx="210" cy="580" r="3"/>
<circle cx="240" cy="580" r="3"/>
<circle cx="180" cy="610" r="3"/>
<circle cx="210" cy="610" r="3"/>
<circle cx="240" cy="610" r="3"/>
</g>
<!-- Decorative accent line -->
<rect x="540" y="200" width="200" height="3" fill="#D6000F"/>
<!-- Main title "谢谢" -->
<text x="640" y="340" font-family="Microsoft YaHei" font-size="96" font-weight="bold" fill="#FFFFFF" text-anchor="middle" letter-spacing="20">{{THANK_YOU}}</text>
<!-- English subtitle -->
<text x="640" y="400" font-family="Arial" font-size="24" fill="#FFFFFF" fill-opacity="0.7" text-anchor="middle" letter-spacing="6">THANK YOU</text>
<!-- Divider -->
<rect x="540" y="440" width="200" height="1" fill="#FFFFFF" fill-opacity="0.3"/>
<!-- Q&A pill -->
<g id="qa-pill">
<rect x="570" y="470" width="140" height="48" fill="#D6000F" rx="24"/>
<text x="640" y="501" font-family="Arial" font-size="22" font-weight="bold" fill="#FFFFFF" text-anchor="middle" letter-spacing="4">Q &amp; A</text>
</g>
<!-- Contact info area -->
<g id="contact-info">
<rect x="340" y="560" width="600" height="70" fill="#FFFFFF" fill-opacity="0.06" rx="8"/>
<text x="640" y="598" font-family="Microsoft YaHei" font-size="16" fill="#FFFFFF" fill-opacity="0.9" text-anchor="middle">{{CONTACT_INFO}}</text>
<text x="640" y="620" font-family="Arial" font-size="12" fill="#FFFFFF" fill-opacity="0.5" text-anchor="middle" letter-spacing="2">CHINA · RESEARCH INSTITUTE</text>
</g>
<!-- Bottom bar -->
<rect x="0" y="712" width="1280" height="8" fill="#D6000F"/>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 2.4 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 75 KiB

View File

@ -1,102 +1,93 @@
# 总院品牌红模板 (zongyuan_red) # 中国建材总院模板 (zongyuan_red)
## Template Overview ## Template Overview
- **Template ID**: `zongyuan_red` - **Template ID**: `zongyuan_red`
- **Display Name**: 总院品牌红 - **Display Name**: 中国建材总院
- **Category**: `brand` / `government` - **Category**: `brand` / `government` / `research-institute`
- **Canvas Format**: `ppt169` (1280×720) - **Canvas Format**: `ppt169` (1280×720)
- **Applicable Scenarios**: 政府/科研院所汇报、专项立项、项目评审、品牌宣讲 - **Applicable Scenarios**: 政企/科研院所汇报、专项立项、项目评审、职称评审、品牌宣讲
- **Tone**: 严谨权威、政务正式、品牌辨识度强 - **Tone**: 严谨权威、政务正式、品牌辨识度强、简洁淡雅
- **Theme Mode**: Light theme (white background + brand red accents + dark navy text) - **Theme Mode**: Light theme(白/浅灰底 + 品牌红强调 + 近黑文字)
- **Source**: Adapted from 总院 (China Research Institute) corporate PPT template - **Source**: 逆向自 中国建筑材料科学研究总院有限公司(China Building Materials Academy)官方 PPT 模板 `总院模板.pptx`(封面/内容/尾页三档实测,章节/目录页按同一八边形+红斜三角 DNA 合成)
## Color Palette ## Color Palette
| Role | HEX | Usage | | Role | HEX | Usage |
|------|-----|-------| |------|-----|-------|
| Primary (Brand Red) | `#D6000F` | 顶部色条、标题、强调、logo、关键数字 | | Primary(品牌红) | `#D7000E` | logo、主红块、内容页底部红条、卡片红顶条、关键强调 |
| Dark Navy | `#1F2A44` | 副标题、图表主色、深色文字 | | Primary(目录标题红) | `#D52C24` | 目录页"目 录"标题(略哑,与主红区分) |
| Neutral Body | `#333333` | 正文文字 | | Dark Text(近黑) | `#181717` | 机构名、主标题、内容页标题、卡片标题 |
| Neutral Muted | `#666666` | 辅助/说明文字 | | Neutral Gray | `#6F6F6F` | 副标题、日期、说明文字、页码 |
| Background | `#F5F5F7` | 页面背景(可选白底) | | Divider Gray | `#BCBDBD` | 内容页标题分隔线、副标题 |
| Surface | `#FFFFFF` | 卡片/内容面板 | | Card Surface | `#ECECEC` | 卡片底、封面顶/底细边带 |
| Divider | `#E0E0E0` | 分隔线、描边 | | Background | `#FFFFFF` | 页面底色 |
| Takeaway Bg | `#D6000F` @ 0.08 opacity | 结论框浅底 |
| Alert / Emphasis | `#D6000F` | 红色强调(与主色同) |
| Success | `#2E7D32` | 正向指标 |
> 避免过度使用红色——红色仅用于品牌色条、标题、关键数字;大面积背景保持白/浅灰 > 红仅用于 logo / 主红块 / 底部红条 / 卡片红顶条 / 关键数字;大面积保持白与浅灰,红灰为主、简洁淡雅。
## Typography ## Typography
- **Primary Font**: Microsoft YaHei - **Primary Font(CJK)**: 微软雅黑(Microsoft YaHei);栈尾 `sans-serif`
- **Title**: 32px bold, color `#1F2A44` (or `#D6000F` for chapter/emphasis) - **Latin / 数字**: Arial
- **Subtitle**: 18-20px regular, color `#666666` - **可选标题体**: 方正兰亭黑(FZLanTingHei-M-GBK,原件封面标题用;未装则回退微软雅黑)
- **Body**: 15-16px regular, color `#333333` - **Title**: 4446px bold(封面白字 / 章节近黑)
- **Data/Number**: Arial Bold, color `#D6000F` - **Content Title**: 26px bold `#181717`
- **Footer**: 12-14px, color `#999999` - **Subtitle / Body**: 1420px,`#6F6F6F` / `#BCBDBD`
- **Number / Footer**: Arial,`#6F6F6F`
## Logo(bundled)
- **File**: `logo.png` — 红色八边形(八角星镂空)+ "中国建材" 字标,透明底
- **Usage**: 封面顶左(octagon + 机构全称并排)、内容页右上角、章节/目录白色区角标
- **禁忌**: 不可置于红底之上(红字标会与红底同色不可见)——红区内改用反白或留白区放置
## Bundled Assets
| File | 用途 |
|------|------|
| `logo.png` | 八边形品牌字标(封面/内容/尾页角标) |
| `cover_bg.jpg` | 总部大楼灰度实景(封面/目录页铺底,配白罩淡化) |
| `ending_bg.jpg` | 材料应用马赛克灰度实景(尾页铺底) |
## Layout Conventions ## Layout Conventions
### Universal Rules ### Universal Rules
- 顶部 6px 红色品牌色条(内容页通用) - 画布 16:9(1280×720 / 13.33×7.5 in,英寸×96 = px)
- 右上角 logo 占位区80×50距右边 40px - 实景铺底页(封面/目录/尾页)统一压白罩(`#FFFFFF` fill-opacity 0.300.48)让文字浮起
- 底部页脚30px 浅灰背景)含页码(右下 arial和模板信息左下微软雅黑灰字 - 内容页右上角八边形 logo、底部品牌红条为品牌识别核心,禁省略
- 卡片网格:4 列 × 266px 宽,间距 ≈22px,内容区 y≈150 起
### Page Structure ### Page Structure
1. **Cover (01_cover.svg)** 1. **Cover (01_cover.svg)** — 总部大楼灰度铺底 + 顶左 logo & 机构全称(近黑)+ 居中主红块(右满出血)+ 白色主标题 + 副标题/作者/日期
- 左侧白色主标题区(占 55% 2. **TOC (02_toc.svg)** — 左上实景区 + 右下大红斜三角 + "目 录"红标题(`#D52C24`)+ 白字方块序号章节条目 + 左下 logo
- 右侧深色/图片区(占 45%,可换图) 3. **Chapter (02_chapter.svg)** — 白底 + 右侧八边形品牌水印(呼应 logo)+ 左侧红 PART 胶囊 + 章节大标题 + 红下划线 + 左下 logo
- 顶部细红条 + logo 区 4. **Content (03_content.svg)** — 左缘红方块 + 标题(26px 近黑)+ 灰分隔线 + 右上 logo + 灰底红顶条卡片 + 底部红条 + 页码
- 底部副标题/日期/作者 5. **Ending (04_ending.svg)** — 材料马赛克灰度铺底 + 集团口号"材料创造美好世界"(红)+ Thanks + 结束信息 + 右上 logo
2. **TOC (02_toc.svg)**
- 左侧"目录"超大红色字
- 右侧章节列表:红色序号 + 章节标题
- 顶部红色品牌色条
3. **Chapter (02_chapter.svg)**
- 超大背景数字PART 01淡红 0.08 透明)
- 红色小胶囊标签 "PART 0N"
- 中央大标题
- 下方副标题
4. **Content (03_content.svg)**
- 顶部6px 红条 + 标题32px+ 分隔线
- 可选:"Takeaway/结论" 浅红底色条(结论先行)
- 主内容区 40-620 高度
- 底部页脚
5. **Ending (04_ending.svg)**
- 深色渐变背景(`#1F2A44` → `#8B0010`
- 中央"谢 谢!"超大字
- "Thank You" 英文副标
- Q&A 胶囊
- 底部信息区
## Placeholder Contract ## Placeholder Contract
| Page | Placeholders | | Page | Placeholders |
|------|-------------| |------|-------------|
| Cover | `{{TITLE}}`, `{{SUBTITLE}}`, `{{DATE}}`, `{{AUTHOR}}` | | Cover | `{{TITLE}}`, `{{SUBTITLE}}`, `{{AUTHOR}}`, `{{DATE}}` |
| TOC | `{{TOC_ITEM_1_TITLE}}`, `{{TOC_ITEM_2_TITLE}}`, `{{TOC_ITEM_3_TITLE}}`, `{{TOC_ITEM_4_TITLE}}`, `{{TOC_ITEM_5_TITLE}}` | | TOC | `{{TOC_ITEM_1_TITLE}}``{{TOC_ITEM_4_TITLE}}` |
| Chapter | `{{CHAPTER_NUM}}`, `{{CHAPTER_TITLE}}` | | Chapter | `{{CHAPTER_NUM}}`, `{{CHAPTER_TITLE}}` |
| Content | `{{PAGE_TITLE}}`, `{{CONTENT_AREA}}`, `{{PAGE_NUM}}` | | Content | `{{PAGE_TITLE}}`, `{{PAGE_SUBTITLE}}`, `{{PAGE_NUM}}`(内容区卡片按本页内容重排) |
| Ending | `{{THANK_YOU}}`, `{{CONTACT_INFO}}` | | Ending | `{{THANK_YOU}}`(默认 "Thanks"), `{{CONTACT_INFO}}` |
## Design Principles ## Design Principles
1. **Brand consistency**红色色条和顶栏是品牌识别核心,禁止省略 1. **Brand consistency** — 八边形 logo + 品牌红是识别核心,禁省略/换色
2. **Conclusion-first** — 内容页优先使用 assertion headline断言式标题+ takeaway 条 2. **Restraint** — 红灰为主,红仅点在 logo/红块/红条/红顶条/关键数字;大面积白与浅灰
3. **Whitespace** — 大面积留白,只让红色出现在关键位置 3. **Conclusion-first** — 内容页优先断言式标题 + 结论先行
4. **Structure clarity** — 清晰的分隔线、统一的 padding40/60/80 栅格) 4. **Whitespace** — 大面积留白,实景铺底页压白罩保持淡雅
5. **Data visibility** — 关键数字用红色 Arial Bold 放大显示 5. **Structure clarity** — 统一分隔线、4 列卡片网格、40/49px 左缘栅格
## SVG Technical Constraints ## SVG Technical Constraints
严格遵守 PPT Master 全局技术约束: 严格遵守 shared-standards 全局约束:
- 禁用 `mask` / `<style>` / `class` / `<foreignObject>` / `<symbol>+<use>` - 禁用 `<style>` / `class` / `<mask>` / `<symbol>+<use>` / `<foreignObject>` / `@font-face` / `rgba()` / HTML 命名实体
- 透明度使用 `fill-opacity` / `stroke-opacity`,不使用 `rgba()` - 透明度用 `fill-opacity` / `stroke-opacity`
- 图标使用 `<use data-icon="chunk/xxx">` 引用全局图标库 - 图片用 `<image xlink:href="…" preserveAspectRatio="xMidYMid slice">`,finalize 阶段内嵌为 base64
- 图标(如需)用 `<use data-icon="<lib>/<name>">` 引全局图标库
- 字体栈尾必须是预装字体(微软雅黑 / Arial)

Binary file not shown.

After

Width:  |  Height:  |  Size: 359 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 8.1 KiB