diff --git a/config/external-sources.lock.json b/config/external-sources.lock.json index f59a3f47..b9ed4e72 100644 --- a/config/external-sources.lock.json +++ b/config/external-sources.lock.json @@ -6,8 +6,8 @@ "repo": "https://github.com/Nutlope/hallmark.git", "ref": "main", "adapter": "claude-skill", - "commit": "8f6969f8922caabde9de1784959eae11ddf68073", - "syncedAt": "2026-10-29T15:25:46Z" + "commit": "4f6a46c6dc325d40ab268c93e25c7b96676ebccd", + "syncedAt": "2026-10-30T16:00:00Z" }, { "id": "docx", @@ -150,8 +150,8 @@ "repo": "https://github.com/shadcn-ui/ui.git", "ref": "main", "adapter": "claude-skill", - "commit": "96da9cc7f1aa10580a3741664e2a77c721206c00", - "syncedAt": "2026-10-28T01:57:49Z" + "commit": "b8d7baa15b1dca5716f13153e63795fc3d741f6b", + "syncedAt": "2026-10-30T16:00:00Z" }, { "id": "frontend-slides", @@ -168,8 +168,8 @@ "repo": "https://github.com/op7418/guizang-ppt-skill.git", "ref": "main", "adapter": "claude-skill", - "commit": "c91369c449d34755d320a8b81d0734000d99d1ab", - "syncedAt": "2026-08-08T16:00:01Z" + "commit": "93d21bf4a73a851907a6eb00acbf30618236667a", + "syncedAt": "2026-10-30T16:00:00Z" }, { "id": "html-ppt", @@ -186,8 +186,8 @@ "repo": "https://github.com/hugohe3/ppt-master.git", "ref": "main", "adapter": "claude-skill", - "commit": "15baa7c570f12c78cd9ac6ead897724571e32e87", - "syncedAt": "2026-10-29T16:00:00Z" + "commit": "5e8856be0da8e6bc85c4aa28acc614478f7b7137", + "syncedAt": "2026-10-30T16:00:00Z" }, { "id": "grill-me", @@ -267,8 +267,8 @@ "repo": "https://github.com/vercel/next.js.git", "ref": "canary", "adapter": "skill-collection", - "commit": "79107ebd94e53c69865c1a49ac734ba8004491ba", - "syncedAt": "2026-10-29T16:00:00Z" + "commit": "7571895249a22086367a12ddec90fae97bac067d", + "syncedAt": "2026-10-30T16:00:00Z" }, { "id": "shuorenhua", diff --git a/plugins/codex/plugins/guizang-ppt-skill/README.en.md b/plugins/codex/plugins/guizang-ppt-skill/README.en.md index e19c1646..8502a309 100644 --- a/plugins/codex/plugins/guizang-ppt-skill/README.en.md +++ b/plugins/codex/plugins/guizang-ppt-skill/README.en.md @@ -86,11 +86,11 @@ Beyond Claude Code / Codex, you can also use Guizang PPT Skill on these platform - 📐 **Horizontal swipe navigation**: ← → arrows / scroll wheel / touch swipe / bottom dots / ESC for index - 🧩 **Style A 10 layouts**: cover, divider, big numbers, image/text, image grid, pipeline, comparison, and more - 🧱 **Style B 22 locked layouts**: Cover, Statement, KPI Tower, Loop Diagram, Duo Compare, Image Hero, Closing Manifesto, and more -- 🎨 **Curated theme presets**: 5 electronic-ink themes for Style A, 4 Swiss anchor-color themes for Style B +- 🎨 **Curated theme presets**: 5 electronic-ink themes for Style A, 4 Swiss anchor-color themes for Style B; a brand color becomes a constrained brand theme generated with color science - 🖼 **Optional Codex image flow**: generate documentary photos, infographics, flow diagrams, system maps, and UI scenes with GPT-Image 2.0 / GPT-M 2.0, then insert them at template-safe ratios - 📰 **Social covers**: generate 21:9 WeChat cover images, 1:1 share cards, 3:4 Xiaohongshu covers, video thumbnails, and related variants - 🎤 **Presenter mode**: dual-window audience output, 16:9 current/next previews, speaker notes, timing and rehearsal, auto advance, laser pointer, circles, and live recovery controls -- 📴 **Low-power static mode**: press `B` to turn WebGL / canvas animation into static visuals +- 📴 **Low-power static mode**: press `B` to turn WebGL / canvas animation into static visuals; on slow machines the background lowers its resolution automatically and freezes to a still frame if needed - 📄 **Single HTML file** — no build, no server, open directly in the browser ## Fits / Doesn't fit @@ -327,7 +327,7 @@ guizang-ppt-skill/ ## Theme presets -Pick from `references/themes.md`. **Custom hex values are not allowed** — protecting the aesthetic matters more than freedom of choice. +Pick from `references/themes.md`. **Don't write hex values by hand** — protecting the aesthetic matters more than freedom of choice. Every theme's text, rule and small accent-text colors are derived with the same contrast rules (WCAG + APCA). ### Style A Editorial Themes @@ -339,11 +339,13 @@ Pick from `references/themes.md`. **Custom hex values are not allowed** — prot | Kraft Paper theme preview | 🍂 **Kraft Paper** | `#2a1e13` / `#eedfc7`. Nostalgic, humanist, literary, indie zines. | | Dune theme preview | 🌙 **Dune** | `#1f1a14` / `#f0e6d2`. Art, design, creative, fashion, gallery-like decks. | -Switching themes only requires replacing the 6 variables at the top of `template.html`'s `:root{}` block — all other CSS flows through `var(--...)`. +To switch themes, set the theme id on the template's first line, e.g. ``. All themes are built into the template. + +When the user gives a brand or logo color, run `node scripts/gz-theme.mjs brand "#4D6BFE" --family magazine` (`--family swiss` for Style B) and paste the printed theme into the deck. The script pulls the color into the lightness and chroma range the style allows and refuses it if it cannot meet the readability floors — fall back to a preset then. ### Style B Swiss Themes -Pick from `references/themes-swiss.md`. **Custom hex values are not allowed** here either. +Pick from `references/themes-swiss.md`. **Don't write hex values by hand** here either; brand colors go through the same script. | Preview | Theme | Anchor color and best for | |---------|-------|---------------------------| @@ -379,7 +381,7 @@ If the user asks for a Swiss-style deck without specifying color, default to Int - Add more Swiss layout validation rules - Improve screenshot redesign and infographic generation workflows - Prepare marketplace-specific variants such as WorkBuddy -- Add more curated theme packs while keeping custom colors restricted +- Add more curated theme packs; brand colors stay constrained ## FAQ @@ -387,7 +389,7 @@ If the user asks for a Swiss-style deck without specifying color, default to Int The main output is HTML. You can present it in a browser, screenshot it, or record it. PPTX conversion can be done as a separate workflow, but it is not the core path today. **Why are custom colors not allowed?** -The skill is designed for stable visual output. Arbitrary colors often break the system, so decks must use curated presets. +The skill is designed for stable visual output. Arbitrary colors often break the system, so decks must use curated presets. For a brand color, generate a theme with `scripts/gz-theme.mjs`: it constrains lightness and chroma per style and checks contrast for every text role. **Can I add my own layout?** Yes. Style A layouts can be extended in `references/layouts.md`. Style B is stricter: update `template-swiss.html`, `layouts-swiss.md`, `swiss-layout-lock.md`, and the validator together. @@ -414,7 +416,7 @@ Bugs, layout issues, new layout requests — Issues and PRs welcome. Prioritize: - Presenter runtime changes must land in both templates and pass `scripts/check-presenter-runtime-sync.mjs`; CI rejects CSS / JavaScript drift - Presenter-note or live-behavior changes must also update `references/presenter-mode.md`, `references/checklist.md`, and `scripts/validate-presenter-mode.mjs` - Log pitfalls into `checklist.md` at the matching P0 / P1 / P2 / P3 tier -- New theme colors go into `themes.md` with a recommended use case +- Themes, type sizes, fonts and background effects come from a shared design system: the templates' `GZ:FONTS` / `GZ:TOKENS` / `GZ:EFFECTS` blocks and the `GZ:THEMES` blocks in `themes*.md` are generated — don't edit them by hand; open an issue for new theme colors or type changes ## License diff --git a/plugins/codex/plugins/guizang-ppt-skill/README.md b/plugins/codex/plugins/guizang-ppt-skill/README.md index 15fef041..07eeda15 100644 --- a/plugins/codex/plugins/guizang-ppt-skill/README.md +++ b/plugins/codex/plugins/guizang-ppt-skill/README.md @@ -88,11 +88,11 @@ Guizang PPT Skill 的持续迭代获得 **360 安全龙虾**、**Kimi work**、* - 📐 **横向左右翻页**:键盘 ← → / 滚轮 / 触屏滑动 / 底部圆点 / ESC 索引 - 🧩 **Style A 10 种布局**:封面、章节、数据大字报、图文、图片网格、Pipeline、对比等 - 🧱 **Style B 22 种锁定版式**:Cover、Statement、KPI Tower、Loop Diagram、Duo Compare、Image Hero、Closing Manifesto 等 -- 🎨 **主题色预设**:Style A 5 套电子墨水主题,Style B 4 套瑞士高饱和锚点色 +- 🎨 **主题色预设**:Style A 5 套电子墨水主题,Style B 4 套瑞士高饱和锚点色;给品牌色时按色彩科学生成受约束的品牌主题 - 🖼 **Codex 可选配图流程**:可用 GPT-Image 2.0 / GPT-M 2.0 生成纪实照片、信息图、流程图、系统关系图、UI 情景图,并按模板比例插入 - 📰 **多平台封面**:可用同一套视觉规则生成公众号 21:9、公众号分享卡 1:1、小红书 3:4、视频号横版等封面 - 🎤 **演讲者模式**:双窗口观众屏、当前页/下一页 16:9 预览、演讲备注、计时排练、自动翻页、激光笔、圈选和现场故障恢复 -- 📴 **低性能静态模式**:按 `B` 可关闭 WebGL / canvas 动画,让动态内容退回静态背景 +- 📴 **低性能静态模式**:按 `B` 可关闭 WebGL / canvas 动画,让动态内容退回静态背景;电脑带不动时背景会自动降分辨率,再不行就定格成静态 - 📄 **单文件 HTML**:不需要构建、不需要服务器,浏览器直接打开 ## 适合 / 不适合 @@ -328,7 +328,7 @@ guizang-ppt-skill/ ## 主题色预设 -从 `references/themes.md` 里选一套——**不允许自定义 hex 值**,保护美学比给自由更重要。 +从 `references/themes.md` 里选一套——**不允许随手写 hex 值**,保护美学比给自由更重要。所有主题的文字色、线条色和强调色小字都按同一套对比度规则(WCAG + APCA)算出来。 ### Style A 电子杂志主题 @@ -340,11 +340,13 @@ guizang-ppt-skill/ | 牛皮纸主题预览 | 🍂 **牛皮纸** | `#2a1e13` / `#eedfc7`。怀旧、人文、阅读、历史、文学分享。 | | 沙丘主题预览 | 🌙 **沙丘** | `#1f1a14` / `#f0e6d2`。艺术、设计、创意、时尚和画廊感内容。 | -切换主题只需替换 `template.html` 开头 `:root{}` 里的 6 行变量,其他 CSS 全走 `var(--...)`。 +切换主题只需把模板第一行 `` 改成主题 id,例如 `data-theme="indigo-porcelain"`,全部主题都已内置在模板里。 + +用户给了品牌色或 logo 主色时,运行 `node scripts/gz-theme.mjs brand "#4D6BFE" --family magazine`(瑞士风用 `--family swiss`),把输出的主题贴进 deck。脚本会把品牌色收进这套风格允许的明度和彩度范围,达不到可读性要求就拒绝,这时回到预设。 ### Style B 瑞士主题 -瑞士风从 `references/themes-swiss.md` 里选一套,同样**不允许自定义 hex 值**。 +瑞士风从 `references/themes-swiss.md` 里选一套,同样**不允许随手写 hex 值**,品牌色走同一个脚本。 | 预览 | 主题 | 锚点色与适合场景 | |------|------|------------------| @@ -380,7 +382,7 @@ guizang-ppt-skill/ - 增加更多瑞士风版式校验规则 - 优化截图再设计和信息图生成工作流 - 整理 WorkBuddy 等平台上架版本 -- 增加更多主题包,但继续限制自定义颜色 +- 增加更多主题包,品牌色继续走受约束生成 ## FAQ @@ -388,7 +390,7 @@ guizang-ppt-skill/ 当前核心交付是 HTML。你可以用浏览器演示、截图或录屏。如果需要 PPTX,建议把 HTML 页面作为视觉稿再转换,但这不是当前主流程。 **为什么不允许自定义颜色?** -这个 Skill 的重点是稳定产出。自由选色很容易破坏整体风格,所以只允许从预设主题里选。 +这个 Skill 的重点是稳定产出。自由选色很容易破坏整体风格,所以只允许从预设主题里选。需要品牌色时用 `scripts/gz-theme.mjs` 生成,它会按风格约束明度和彩度,并检查每个文字角色的对比度。 **我能加自己的版式吗?** 可以。Style A 可以在 `references/layouts.md` 里扩展;Style B 更严格,需要同步更新 `template-swiss.html`、`layouts-swiss.md`、`swiss-layout-lock.md` 和校验器。 @@ -415,7 +417,7 @@ Bug、排版问题、新布局需求——欢迎开 Issue 或 PR。改动请优 - 演讲者运行时必须同时更新两套模板,并运行 `scripts/check-presenter-runtime-sync.mjs`;CI 会拦截两份模板的 CSS / JavaScript 漂移 - 演讲备注或现场行为变化时,同步更新 `references/presenter-mode.md`、`references/checklist.md` 和 `scripts/validate-presenter-mode.mjs` - 把踩过的坑写到 `checklist.md` 对应的 P0 / P1 / P2 / P3 级别 -- 新主题色进 `themes.md` 并给出适合的场景 +- 主题、字号、字体和背景特效来自共享设计系统,模板里 `GZ:FONTS` / `GZ:TOKENS` / `GZ:EFFECTS` 区块和 `themes*.md` 的 `GZ:THEMES` 区块是生成的,不要手改;新主题色或字号调整请提 Issue ## License diff --git a/plugins/codex/plugins/guizang-ppt-skill/THIRD_PARTY_SOURCE.json b/plugins/codex/plugins/guizang-ppt-skill/THIRD_PARTY_SOURCE.json index 194b50f5..b086f63a 100644 --- a/plugins/codex/plugins/guizang-ppt-skill/THIRD_PARTY_SOURCE.json +++ b/plugins/codex/plugins/guizang-ppt-skill/THIRD_PARTY_SOURCE.json @@ -2,8 +2,8 @@ "sourceId": "guizang-ppt-skill", "repo": "https://github.com/op7418/guizang-ppt-skill.git", "ref": "main", - "commit": "c91369c449d34755d320a8b81d0734000d99d1ab", + "commit": "93d21bf4a73a851907a6eb00acbf30618236667a", "adapter": "claude-skill", "sourcePath": ".", - "syncedAt": "2026-08-08T16:00:01Z" + "syncedAt": "2026-10-30T16:00:00Z" } diff --git a/plugins/codex/plugins/guizang-ppt-skill/skills/guizang-ppt-skill/.gitignore b/plugins/codex/plugins/guizang-ppt-skill/skills/guizang-ppt-skill/.gitignore index f7cf2dbb..f9c4860b 100644 --- a/plugins/codex/plugins/guizang-ppt-skill/skills/guizang-ppt-skill/.gitignore +++ b/plugins/codex/plugins/guizang-ppt-skill/skills/guizang-ppt-skill/.gitignore @@ -1,2 +1,5 @@ .DS_Store *.backup +.gz-visual/ +.gz-smoke/ +.gz-dbg/ diff --git a/plugins/codex/plugins/guizang-ppt-skill/skills/guizang-ppt-skill/README.en.md b/plugins/codex/plugins/guizang-ppt-skill/skills/guizang-ppt-skill/README.en.md index e19c1646..8502a309 100644 --- a/plugins/codex/plugins/guizang-ppt-skill/skills/guizang-ppt-skill/README.en.md +++ b/plugins/codex/plugins/guizang-ppt-skill/skills/guizang-ppt-skill/README.en.md @@ -86,11 +86,11 @@ Beyond Claude Code / Codex, you can also use Guizang PPT Skill on these platform - 📐 **Horizontal swipe navigation**: ← → arrows / scroll wheel / touch swipe / bottom dots / ESC for index - 🧩 **Style A 10 layouts**: cover, divider, big numbers, image/text, image grid, pipeline, comparison, and more - 🧱 **Style B 22 locked layouts**: Cover, Statement, KPI Tower, Loop Diagram, Duo Compare, Image Hero, Closing Manifesto, and more -- 🎨 **Curated theme presets**: 5 electronic-ink themes for Style A, 4 Swiss anchor-color themes for Style B +- 🎨 **Curated theme presets**: 5 electronic-ink themes for Style A, 4 Swiss anchor-color themes for Style B; a brand color becomes a constrained brand theme generated with color science - 🖼 **Optional Codex image flow**: generate documentary photos, infographics, flow diagrams, system maps, and UI scenes with GPT-Image 2.0 / GPT-M 2.0, then insert them at template-safe ratios - 📰 **Social covers**: generate 21:9 WeChat cover images, 1:1 share cards, 3:4 Xiaohongshu covers, video thumbnails, and related variants - 🎤 **Presenter mode**: dual-window audience output, 16:9 current/next previews, speaker notes, timing and rehearsal, auto advance, laser pointer, circles, and live recovery controls -- 📴 **Low-power static mode**: press `B` to turn WebGL / canvas animation into static visuals +- 📴 **Low-power static mode**: press `B` to turn WebGL / canvas animation into static visuals; on slow machines the background lowers its resolution automatically and freezes to a still frame if needed - 📄 **Single HTML file** — no build, no server, open directly in the browser ## Fits / Doesn't fit @@ -327,7 +327,7 @@ guizang-ppt-skill/ ## Theme presets -Pick from `references/themes.md`. **Custom hex values are not allowed** — protecting the aesthetic matters more than freedom of choice. +Pick from `references/themes.md`. **Don't write hex values by hand** — protecting the aesthetic matters more than freedom of choice. Every theme's text, rule and small accent-text colors are derived with the same contrast rules (WCAG + APCA). ### Style A Editorial Themes @@ -339,11 +339,13 @@ Pick from `references/themes.md`. **Custom hex values are not allowed** — prot | Kraft Paper theme preview | 🍂 **Kraft Paper** | `#2a1e13` / `#eedfc7`. Nostalgic, humanist, literary, indie zines. | | Dune theme preview | 🌙 **Dune** | `#1f1a14` / `#f0e6d2`. Art, design, creative, fashion, gallery-like decks. | -Switching themes only requires replacing the 6 variables at the top of `template.html`'s `:root{}` block — all other CSS flows through `var(--...)`. +To switch themes, set the theme id on the template's first line, e.g. ``. All themes are built into the template. + +When the user gives a brand or logo color, run `node scripts/gz-theme.mjs brand "#4D6BFE" --family magazine` (`--family swiss` for Style B) and paste the printed theme into the deck. The script pulls the color into the lightness and chroma range the style allows and refuses it if it cannot meet the readability floors — fall back to a preset then. ### Style B Swiss Themes -Pick from `references/themes-swiss.md`. **Custom hex values are not allowed** here either. +Pick from `references/themes-swiss.md`. **Don't write hex values by hand** here either; brand colors go through the same script. | Preview | Theme | Anchor color and best for | |---------|-------|---------------------------| @@ -379,7 +381,7 @@ If the user asks for a Swiss-style deck without specifying color, default to Int - Add more Swiss layout validation rules - Improve screenshot redesign and infographic generation workflows - Prepare marketplace-specific variants such as WorkBuddy -- Add more curated theme packs while keeping custom colors restricted +- Add more curated theme packs; brand colors stay constrained ## FAQ @@ -387,7 +389,7 @@ If the user asks for a Swiss-style deck without specifying color, default to Int The main output is HTML. You can present it in a browser, screenshot it, or record it. PPTX conversion can be done as a separate workflow, but it is not the core path today. **Why are custom colors not allowed?** -The skill is designed for stable visual output. Arbitrary colors often break the system, so decks must use curated presets. +The skill is designed for stable visual output. Arbitrary colors often break the system, so decks must use curated presets. For a brand color, generate a theme with `scripts/gz-theme.mjs`: it constrains lightness and chroma per style and checks contrast for every text role. **Can I add my own layout?** Yes. Style A layouts can be extended in `references/layouts.md`. Style B is stricter: update `template-swiss.html`, `layouts-swiss.md`, `swiss-layout-lock.md`, and the validator together. @@ -414,7 +416,7 @@ Bugs, layout issues, new layout requests — Issues and PRs welcome. Prioritize: - Presenter runtime changes must land in both templates and pass `scripts/check-presenter-runtime-sync.mjs`; CI rejects CSS / JavaScript drift - Presenter-note or live-behavior changes must also update `references/presenter-mode.md`, `references/checklist.md`, and `scripts/validate-presenter-mode.mjs` - Log pitfalls into `checklist.md` at the matching P0 / P1 / P2 / P3 tier -- New theme colors go into `themes.md` with a recommended use case +- Themes, type sizes, fonts and background effects come from a shared design system: the templates' `GZ:FONTS` / `GZ:TOKENS` / `GZ:EFFECTS` blocks and the `GZ:THEMES` blocks in `themes*.md` are generated — don't edit them by hand; open an issue for new theme colors or type changes ## License diff --git a/plugins/codex/plugins/guizang-ppt-skill/skills/guizang-ppt-skill/README.md b/plugins/codex/plugins/guizang-ppt-skill/skills/guizang-ppt-skill/README.md index 15fef041..07eeda15 100644 --- a/plugins/codex/plugins/guizang-ppt-skill/skills/guizang-ppt-skill/README.md +++ b/plugins/codex/plugins/guizang-ppt-skill/skills/guizang-ppt-skill/README.md @@ -88,11 +88,11 @@ Guizang PPT Skill 的持续迭代获得 **360 安全龙虾**、**Kimi work**、* - 📐 **横向左右翻页**:键盘 ← → / 滚轮 / 触屏滑动 / 底部圆点 / ESC 索引 - 🧩 **Style A 10 种布局**:封面、章节、数据大字报、图文、图片网格、Pipeline、对比等 - 🧱 **Style B 22 种锁定版式**:Cover、Statement、KPI Tower、Loop Diagram、Duo Compare、Image Hero、Closing Manifesto 等 -- 🎨 **主题色预设**:Style A 5 套电子墨水主题,Style B 4 套瑞士高饱和锚点色 +- 🎨 **主题色预设**:Style A 5 套电子墨水主题,Style B 4 套瑞士高饱和锚点色;给品牌色时按色彩科学生成受约束的品牌主题 - 🖼 **Codex 可选配图流程**:可用 GPT-Image 2.0 / GPT-M 2.0 生成纪实照片、信息图、流程图、系统关系图、UI 情景图,并按模板比例插入 - 📰 **多平台封面**:可用同一套视觉规则生成公众号 21:9、公众号分享卡 1:1、小红书 3:4、视频号横版等封面 - 🎤 **演讲者模式**:双窗口观众屏、当前页/下一页 16:9 预览、演讲备注、计时排练、自动翻页、激光笔、圈选和现场故障恢复 -- 📴 **低性能静态模式**:按 `B` 可关闭 WebGL / canvas 动画,让动态内容退回静态背景 +- 📴 **低性能静态模式**:按 `B` 可关闭 WebGL / canvas 动画,让动态内容退回静态背景;电脑带不动时背景会自动降分辨率,再不行就定格成静态 - 📄 **单文件 HTML**:不需要构建、不需要服务器,浏览器直接打开 ## 适合 / 不适合 @@ -328,7 +328,7 @@ guizang-ppt-skill/ ## 主题色预设 -从 `references/themes.md` 里选一套——**不允许自定义 hex 值**,保护美学比给自由更重要。 +从 `references/themes.md` 里选一套——**不允许随手写 hex 值**,保护美学比给自由更重要。所有主题的文字色、线条色和强调色小字都按同一套对比度规则(WCAG + APCA)算出来。 ### Style A 电子杂志主题 @@ -340,11 +340,13 @@ guizang-ppt-skill/ | 牛皮纸主题预览 | 🍂 **牛皮纸** | `#2a1e13` / `#eedfc7`。怀旧、人文、阅读、历史、文学分享。 | | 沙丘主题预览 | 🌙 **沙丘** | `#1f1a14` / `#f0e6d2`。艺术、设计、创意、时尚和画廊感内容。 | -切换主题只需替换 `template.html` 开头 `:root{}` 里的 6 行变量,其他 CSS 全走 `var(--...)`。 +切换主题只需把模板第一行 `` 改成主题 id,例如 `data-theme="indigo-porcelain"`,全部主题都已内置在模板里。 + +用户给了品牌色或 logo 主色时,运行 `node scripts/gz-theme.mjs brand "#4D6BFE" --family magazine`(瑞士风用 `--family swiss`),把输出的主题贴进 deck。脚本会把品牌色收进这套风格允许的明度和彩度范围,达不到可读性要求就拒绝,这时回到预设。 ### Style B 瑞士主题 -瑞士风从 `references/themes-swiss.md` 里选一套,同样**不允许自定义 hex 值**。 +瑞士风从 `references/themes-swiss.md` 里选一套,同样**不允许随手写 hex 值**,品牌色走同一个脚本。 | 预览 | 主题 | 锚点色与适合场景 | |------|------|------------------| @@ -380,7 +382,7 @@ guizang-ppt-skill/ - 增加更多瑞士风版式校验规则 - 优化截图再设计和信息图生成工作流 - 整理 WorkBuddy 等平台上架版本 -- 增加更多主题包,但继续限制自定义颜色 +- 增加更多主题包,品牌色继续走受约束生成 ## FAQ @@ -388,7 +390,7 @@ guizang-ppt-skill/ 当前核心交付是 HTML。你可以用浏览器演示、截图或录屏。如果需要 PPTX,建议把 HTML 页面作为视觉稿再转换,但这不是当前主流程。 **为什么不允许自定义颜色?** -这个 Skill 的重点是稳定产出。自由选色很容易破坏整体风格,所以只允许从预设主题里选。 +这个 Skill 的重点是稳定产出。自由选色很容易破坏整体风格,所以只允许从预设主题里选。需要品牌色时用 `scripts/gz-theme.mjs` 生成,它会按风格约束明度和彩度,并检查每个文字角色的对比度。 **我能加自己的版式吗?** 可以。Style A 可以在 `references/layouts.md` 里扩展;Style B 更严格,需要同步更新 `template-swiss.html`、`layouts-swiss.md`、`swiss-layout-lock.md` 和校验器。 @@ -415,7 +417,7 @@ Bug、排版问题、新布局需求——欢迎开 Issue 或 PR。改动请优 - 演讲者运行时必须同时更新两套模板,并运行 `scripts/check-presenter-runtime-sync.mjs`;CI 会拦截两份模板的 CSS / JavaScript 漂移 - 演讲备注或现场行为变化时,同步更新 `references/presenter-mode.md`、`references/checklist.md` 和 `scripts/validate-presenter-mode.mjs` - 把踩过的坑写到 `checklist.md` 对应的 P0 / P1 / P2 / P3 级别 -- 新主题色进 `themes.md` 并给出适合的场景 +- 主题、字号、字体和背景特效来自共享设计系统,模板里 `GZ:FONTS` / `GZ:TOKENS` / `GZ:EFFECTS` 区块和 `themes*.md` 的 `GZ:THEMES` 区块是生成的,不要手改;新主题色或字号调整请提 Issue ## License diff --git a/plugins/codex/plugins/guizang-ppt-skill/skills/guizang-ppt-skill/SKILL.md b/plugins/codex/plugins/guizang-ppt-skill/skills/guizang-ppt-skill/SKILL.md index 60f85145..4a80d653 100644 --- a/plugins/codex/plugins/guizang-ppt-skill/skills/guizang-ppt-skill/SKILL.md +++ b/plugins/codex/plugins/guizang-ppt-skill/skills/guizang-ppt-skill/SKILL.md @@ -202,27 +202,30 @@ cp "/assets/template-swiss.html" "项目/XXX/ppt/index.html" 每次拷贝完 template.html 第一件事:grep 一下"[必填]" 确认全部替换完。 -#### 2.2 · 选定主题色(5 套预设 · 不允许自定义) +#### 2.2 · 选定主题色(预设优先 · 品牌色受约束生成) -本 skill **只允许从 5 套精心调配的预设里选一套**,不接受用户自定义 hex 值——颜色搭配错了画面瞬间变丑,保护美学比给自由更重要。 +颜色搭配错了画面瞬间变丑,所以**不直接使用用户给的任何颜色值**。默认从精调预设里选一套;用户明确有品牌色或 logo 主色时,用脚本生成一套受约束的品牌主题。 -| # | 主题 | 适合 | +| # | 杂志风主题 (`themes.md`) | 适合 | |---|------|------| -| 1 | 🖋 墨水经典 | 通用 / 商业发布 / 不知道选啥的默认 | -| 2 | 🌊 靛蓝瓷 | 科技 / 研究 / 数据 / 技术发布会 | -| 3 | 🌿 森林墨 | 自然 / 可持续 / 文化 / 非虚构 | -| 4 | 🍂 牛皮纸 | 怀旧 / 人文 / 文学 / 独立杂志 | -| 5 | 🌙 沙丘 | 艺术 / 设计 / 创意 / 画廊 | +| 1 | 🖋 墨水经典 `ink-classic` | 通用 / 商业发布 / 不知道选啥的默认 | +| 2 | 🌊 靛蓝瓷 `indigo-porcelain` | 科技 / 研究 / 数据 / 技术发布会 | +| 3 | 🌿 森林墨 `forest-ink` | 自然 / 可持续 / 文化 / 非虚构 | +| 4 | 🍂 牛皮纸 `kraft-paper` | 怀旧 / 人文 / 文学 / 独立杂志 | +| 5 | 🌙 沙丘 `dune` | 艺术 / 设计 / 创意 / 画廊 | + +瑞士风 4 套(`ikb` / `lemon` / `lemon-green` / `safety-orange`)见 `themes-swiss.md`。 **操作**: 1. 基于内容主题推荐一套,或直接问用户选哪一套 -2. 打开 `references/themes.md`,找到对应主题的 `:root` 块 -3. **整体替换** `assets/template.html`(已拷贝版本)开头 `:root{` 块里标有"主题色"注释的那几行(`--ink` / `--ink-rgb` / `--paper` / `--paper-rgb` / `--paper-tint` / `--ink-tint`) -4. 其他 CSS 都走 `var(--...)`,无需任何其他改动 +2. 把拷贝好的模板第一行 `` 的 `data-theme` 改成主题 id,例如 `data-theme="indigo-porcelain"`。全部主题都已内置在模板的 `GZ:TOKENS` 区块里,**不要改那个区块** +3. 用户给了品牌色:运行 `node /scripts/gz-theme.mjs brand "#4D6BFE" --family magazine`(瑞士风用 `--family swiss`),把输出的 `[data-theme="brand"]{…}` 贴到 deck `