news 2026/9/19 23:39:07

OfficeCLI Morph-PPT 实战:Duotone Split 双色调分割风格的设计逻辑与构建实现

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
OfficeCLI Morph-PPT 实战:Duotone Split 双色调分割风格的设计逻辑与构建实现
  • 人工智能
  • AI 应用
  • AI 技能
  • CLI
  • MCP 服务

【免费下载链接】OfficeCLI

OfficeCLI 是首款也是最佳的专为 AI 代理设计的命令行工具,可用于读取、编辑和自动化处理 Word、Excel 和 PowerPoint 文件。它免费、开源,仅包含一个二进制文件,无需安装 Office 套件。

项目地址:https://gitcode.com/iOfficeAI/OfficeCLI
点击查看免费下载

导读

本文深度拆解 OfficeCLI 的 morph-ppt 技能库中mixed--duotone-split(Duotone Split,双色调分割)这一视觉风格:它以炭黑与赤陶土两种纯色面板在不同比例下分割画布,配合 PowerPoint Morph 过渡产生"画布流动"(shifting canvas)的连续动画效果。读者将掌握该风格完整的配色体系、字体层级、场景元素命名规范、五页式页面结构与可复现的officecli构建命令,并理解其背后的 Morph 形状同名配对机制,从而能够将该设计逻辑迁移到自己的品牌发布会、建筑设计与高端演示场景中。

一、风格定位:什么是 Duotone Split

在 INDEX.md 的 52 种视觉风格索引中,mixed--duotone-split属于Mixed Palette(混合调色板)类别,风格编号为 12,名称为Duotone Split。其核心视觉特征:

  • 炭黑与赤陶土双色面板以不同比例分割画布,Morph 过渡产生"shifting canvas"(画布流动)效果;
  • 适用场景:品牌发布会、建筑设计、高端演示;
  • 情绪基调:大胆(Bold)、建筑感(Architectural)、高端(High-end)、极简(Minimalist);
  • 语气手法:双色对比(深暗色 + 暖色)、白色分隔线。

从代码层面看,该风格的本质是:用两个覆盖整个画布的大矩形(rect)+ 一条 0.3cm 宽的白色细矩形作为精确分隔线,通过在不同幻灯片上改变面板的尺寸、位置甚至旋转角度,让 Morph 引擎在两页之间插值出"面板生长、移动、旋转"的连续画面。INDEX.md中记录其主色三元组为#FFFFFF / #2D3436 / #E17055(背景/前景/强调色),与 style.md 中的配色表完全一致。

二、配色体系:三色驱动的双面板结构

该风格整份演示只依赖三个颜色,极简到极致:

名称Hex用途
Pure White 纯白#FFFFFF页面背景、分隔线
Charcoal Gray 炭灰#2D3436深色面板
Terracotta 赤陶土#E17055暖色面板

在 pptx-design.md 的配色原则中,舞台级(morph-stage)演示对对比度有比基础 pptx 更严格的要求:深色背景(亮度 < 128)上正文文字亮度必须 ≥ 80%。#2D3436的亮度约为 62,属于深色背景,因此本风格所有文字均使用纯白#FFFFFF;而#E17055赤陶土亮度约为 88,虽然在直觉上偏"亮",但仍归类为深色背景,同样需要白色文字——这解释了为什么暖色面板上的三栏标题(pillars)也全部使用白色字体。

构建脚本中,三个颜色通过fill属性直接落在形状上:

{"name":"!!panel-dark","preset":"rect","fill":"2D3436", ...}, {"name":"!!panel-warm","preset":"rect","fill":"E17055", ...}, {"name":"!!divider","preset":"rect","fill":"FFFFFF", ...}

三、字体层级:Segoe UI Black 与 Light 的二元对比

Duotone Split 的字体体系同样保持极简的二元结构——一个黑体承载标题与数据,一个细体承载正文:

元素字体字号
主标题 Main TitleSegoe UI Black40–64pt
数据数字 Data NumbersSegoe UI Black48–64pt
栏目标题 Column TitleSegoe UI Black28pt
正文/副标题 Body/SubtitleSegoe UI Light16–24pt

在 build.sh 中可以看到具体应用:Slide 1 的 hero 主标题!!hero-title使用Segoe UI Blacksize=54bold=true,副标题!!hero-subtitle使用Segoe UI Lightsize=24;Slide 4 的数据数字(!!stat-*-num)为Segoe UI Blacksize=64,数据标签(!!stat-*-label)为Segoe UI Lightsize=18;Slide 3 的三栏标题(!!pillar-*)为Segoe UI Blacksize=28

这符合 pptx-design.md 中"舞台级字号整体比基础 pptx 大一档"的规则(hero 标题 54–72pt、正文 18–24pt)——Morph 演示通常在大屏/投影仪环境观看,字重比字体选择更重要。

四、设计技法:面板分割与 Morph 编排

style.md 归纳了该风格的六项核心设计技法,它们共同构成"shifting canvas"的视觉机理:

  1. 双面板分割(Dual-panel split):两个大矩形!!panel-dark!!panel-warm覆盖整个画布(33.87 × 19.05cm),以不同比例分割;
  2. 白色分隔线(White divider line):0.3cm 宽的白色矩形作为两块面板之间的精确分隔线;
  3. 分割比例变化(Split proportion changes):S1 左右 50/50 → S2 上下 70/30 → S3 左右 30/70 → S4 对角旋转 → S5 上下 80/20;
  4. Morph 编排(Morph choreography):面板尺寸与位置的大幅变化产生"画布流动"效果,分隔线跟随面板移动;
  5. 旋转变化(Rotation variation):S4 面板旋转 -8 度,打破正交布局以增加动感;
  6. 克制装饰(Restrained decoration):全片仅 2 个半透明圆点 + 1 条超细线,维持极简主义。

4.1 面板几何与坐标计算

从 build.sh 可以精确复现每一页的分割几何(画布为 33.87 × 19.05cm,INDEX.md也提醒该坐标针对 demo 内容手工调校,复用时应按自己的网格数学重新计算):

幻灯片分割方向深色面板分隔线暖色面板
S1左右 50/500,0 → 16.63×19.0516.63,0 → 0.3×19.0516.93,0 → 16.94×19.05
S2上下 70/300,0 → 33.87×13.040,13.04 → 33.87×0.30,13.34 → 33.87×5.71
S3左右 30/700,0 → 10.16×19.0510.16,0 → 0.3×19.0510.46,0 → 23.41×19.05
S4对角旋转0,0 → 28×19.05, rotation=-88,3 → 0.3×22, rotation=-810,6 → 28×18, rotation=-8
S5上下 80/200,0 → 33.87×15.24, rotation=00,15.24 → 33.87×0.3, rotation=00,15.54 → 33.87×3.51, rotation=0

注意细节:S1 中深色面板宽度 16.63cm + 分隔线 0.3cm + 暖色面板宽度 16.94cm = 33.87cm,精确铺满整张画布;S2 中深色 13.04 + 分隔线 0.3 + 暖色 5.71 = 19.05cm,纵向同样铺满。S5 的rotation=0明确将面板从 S4 的 -8° 旋转复位回正交状态,Morph 会沿最短弧线插值旋转角度。

4.2 Morph 编排的本质:同名配对

根据 SKILL.md 的说明,PowerPoint 的 Morph 过渡通过相邻幻灯片之间完全一致的形状name=来配对,并插值两者的位置/尺寸/旋转/填充/透明度——没有匹配的名字就没有动画,只会静默淡入淡出。Duotone Split 正是这一机制的教科书式应用:!!panel-dark等场景演员(Scene Actors)在 S1–S5 每页都存在且名字完全一致,只是几何属性不同,因此 Morph 能"看到"面板从左右分割流动到上下分割。

空间变化规则同样在起作用:SKILL.md 要求相邻幻灯片之间至少 3 个配对形状位移 ≥ 5cm 或旋转 ≥ 15°,否则 Morph 无物可插值、退化为淡入淡出。本风格中!!panel-dark从 S1 的 16.63cm 宽扩张到 S2 的 33.87cm 宽(尺寸变化远大于 30%),S3 再收缩到 10.16cm,S4 旋转 -8°,S5 复位并扩大到 33.87×15.24cm——每一对相邻页面的面板都有肉眼可辨的巨大几何变化。

五、场景元素:六个!!命名演员的职责分工

style.md 将全部装饰/结构形状定义为六个场景演员(Scene Actor),它们全部使用!!前缀命名,遵循 SKILL.md 的三前缀命名体系(!!scene-*全片持久、!!actor-*跨节演进、#sN-*单页内容):

名称类型描述
!!panel-darkrect炭黑主面板
!!panel-warmrect赤陶土暖色面板
!!dividerrect (0.3cm)白色面板分隔线
!!accent-dot-1ellipse白色半透明装饰圆点
!!accent-dot-2ellipse赤陶土半透明装饰圆点
!!accent-linerect (超细)白色半透明装饰线

从 build.sh 的 Slide 1 定义可以看到每个演员的初始属性(也印证了"克制装饰"原则——装饰元素极少且透明度刻意压低,避免与内容争抢视觉焦点):

{"name":"!!accent-dot-1","preset":"ellipse","fill":"FFFFFF", "x":"2cm","y":"13cm","width":"3cm","height":"3cm","opacity":"0.15"}, {"name":"!!accent-dot-2","preset":"ellipse","fill":"E17055", "x":"12cm","y":"1cm","width":"2cm","height":"2cm","opacity":"0.3"}, {"name":"!!accent-line","preset":"rect","fill":"FFFFFF", "x":"1.2cm","y":"11cm","width":"8cm","height":"0.08cm","opacity":"0.4"}

透明度数值符合 pptx-design.md 的分层规则:≤ 0.12为整片装饰(本风格未用到)、0.3–0.6为数据/证据背景块、0.8–1.0保留给承载内容的演员。这里两个圆点分别为 0.15/0.3,装饰线 0.4,面板本体 1.0——即"面板是舞台,圆点是氛围"。

此外,Slide 1 还预先定义了大量占位演员!!hero-title!!hero-subtitle!!body-text!!stat-1-num~!!stat-3-label!!pillar-1~!!pillar-3!!cta-text。这些形状在 Slide 1 上初始位于画布之外(x=36cm或更远,这是 SKILL.md 规定的 ghost 位置),当后续页面需要它们时,通过set命令将它们移回画布并填充文字——这是 morph 技能中"克隆幻灯片 + 按需显隐"的标准做法,也保证了同名演员在每页持续存在、Morph 配对不断裂。

六、五页页面结构:一条完整的叙事动线

style.md 定义的五页结构遵循hero → statement → pillars → evidence → cta的标准叙事弧线(对应 decision-rules.md 中problem_solution叙事结构,也是品牌发布会常用的动线):

幻灯片类型元素与布局描述
S1hero封面 — 左右 50/50 分割,标题在深色面板上开场建立双面板结构
S2statement宣言 — 上下 70/30 分割(深色占上方 70%),居中大标题承上启下
S3pillars三栏 — 左右 30/70(窄深色左栏 + 宽暖色右栏),三栏内容在暖色面板上结构展开
S4evidence数据 — 面板旋转 -8° 形成对角分割,数据散布在双面板上数据论证
S5cta收尾 — 上下 80/20(深色占上方 80%),居中行动号召收束全片

6.1 S1 hero:建立全部 6 个场景演员

build.sh 首先创建空白背景(background=FFFFFF)的画布,然后通过一次officecli batch批量添加 6 个场景演员与占位文本演员,主标题落在深色面板上(x=1.2cm, y=3cm, width=14cm),副标题紧随其后。style.md 建议读者重点阅读 S1,因为它呈现了 6 个场景演员的初始布局,是理解"面板 + 分隔线结构"的关键。

6.2 S2 statement:分割方向翻转

克隆后的 S2 通过set命令将 shape[1](深色面板)改为上方全宽、shape[2](暖色面板)改为下方窄条、shape[3](分隔线)改为横向 0.3cm 细条,分割从"左右"翻转为"上下"。标题!!hero-title原地放大到size=64并居中,字号跨页从 54pt 到 64pt 的变化本身也构成 Morph 插值的一部分。

6.3 S3 pillars:深色收缩、暖色扩张

S3 中深色面板收缩到左侧 30%(10.16cm 宽),暖色面板扩张到右侧 70%(23.41cm 宽),形成"窄深色左栏 + 宽暖色右栏"。左栏承载栏目标题"Our Pillars"与副标题,右栏通过 shape[16]–shape[18] 布置三栏内容(Concept / Build / Live,size=28)。这里注意:三栏文本形状在 S1 中已作为!!pillar-*占位预置,S3 通过索引路径shape[16]等直接 set 文本与位置——这正是 SKILL.md 中"先规划所有!!名称、再开始构建"的规划纪律。

6.4 S4 evidence:对角分割与旋转

S4 是 style.md 建议重点阅读的第二页,也是全片视觉高潮:三个面板形状统一rotation=-8,深色面板覆盖左上约 60%、暖色面板覆盖右下约 40%、分隔线跟随旋转成为一条斜向白色细线,正交布局被彻底打破。数据以"大数字 + 小标签"的对(85 Projects / 12 Countries / 3 Pritzker Nominations)散布在两块面板上。!rotation属性由 morph 引擎沿最短弧线插值,-8° 的旋转让页面从"理性分割"切换为"动态切割",同时因 S5 复位为 0°,S4→S5 又是一次可见的旋转动画。

6.5 S5 cta:深色 80% 收束

最终页深色面板扩张为全宽 80%(15.24cm 高),暖色收缩为底部 3.51cm 的强调条,S4 遗留的数据/占位形状(shape[10]–shape[18])全部移回x=36cm以外的画布外区域(即 ghost 操作),避免 5b-morph-4 检查中的#sN-*残留问题。行动号召"See Our Work"以size=64居中呈现,副标题为邮箱联系方式,完成从结构到呼吁的收束。

七、构建实现:从克隆到交付的完整命令链

build.sh 展示了完整的可复现构建流程,核心分四步:

7.1 创建画布与批量添加场景演员

officecli create "$DECK" officecli add "$DECK" '/' --type slide --prop layout=blank --prop background=FFFFFF echo '[ ... 6 个场景演员 + 占位文本演员的 JSON ... ]' | officecli batch "$DECK"

使用officecli batch以 JSON 数组批量提交add命令,比逐条命令更高效,且 heredoc 传 JSON 可规避 shell 对!!#$的展开问题(SKILL.md 明确规定!!必须单引号包裹或走 batch heredoc)。

7.2 克隆幻灯片并设置 Morph 过渡

officecli add "$DECK" '/' --from '/slide[1]' && # 重复 4 次,得到 S2–S5 ... echo '[ {"command":"set","path":"/slide[2]","props":{"transition":"morph"}}, ... ]' | officecli batch "$DECK"

这是本风格最优雅的实现手法:S2–S5 全部由 S1 克隆而来,因此 6 个场景演员的名字天然一致、索引顺序完全对齐,后续只需用set修改几何属性即可驱动 Morph。transition=morph只设置在 S2–S5 上(S1 不需要,因为它是动画的起点)。注意 SKILL.md 的说明:CLI 会在应用transition=morph后给该页所有形状名自动加!!前缀,但@name=路径选择器仍能正常解析(M-1 已知问题)。

7.3 逐页调整几何与文本

每页通过一次set批处理完成:先是 shape[1]/[2]/[3](三块面板与分隔线)的新几何,再是 shape[4]/[5]/[6](装饰圆点与装饰线)的新位置与透明度,最后是内容形状的文本与位置。这种"先结构、后装饰、再内容"的 set 顺序,保证了 Morph 配对形状的属性变更完整且可控。

7.4 验证与交付

python3 "$(dirname "$0")/../../morph-helpers.py" final-check "$DECK"

final-check是 morph-helpers.py 提供的结构校验工具,会统计所有x ≥ 34cm的 ghost 形状数量——若超过 50 个会判定为 M-2 幽灵积累(ghost accumulation)并 REJECT。SKILL.md 同时强调,final-check无法发现"!!形状残留在可见区域"的问题,必须配合 Gate 5b-morph-1..4 的四个officecli get --json+ jq 循环做最终审核;而 Morph 动画本身只能在 PowerPoint 365 / Keynote / WPS 中运行时验证,LibreOffice 与网页查看器只会呈现静态或淡入淡出(属于[RENDERER-BUG],并非技能缺陷)。

八、迁移到自有项目:学习设计逻辑而非照抄坐标

INDEX.md与 SKILL.md 反复强调:52 种风格的build.sh设计技巧参考(配色、标志性形状、Morph 编排),坐标是为 demo 内容手工调校的,直接照搬到自己不同长度的内容中会造成重叠与错位。正确姿势是"四步查找法":

  1. 浏览 INDEX:INDEX.md 的 Quick Lookup 表按使用场景归类样式——品牌发布会 / 建筑设计 / 艺术类可直接定位到mixed--duotone-split,其主色三元组#FFFFFF / #2D3436 / #E17055也可用于快速匹配用户指定的品牌色;
  2. 读取设计哲学:打开 style.md 理解配色逻辑、字体配对与标志性元素;
  3. 参考实现技巧:仅在需要时查看 build.sh 学习面板几何、克隆手法与 Morph 编排思路;
  4. 在自己的画布上重建:用 SKILL.md 的网格数学(33.87 × 19.05cm、边距 ≥ 1.27cm、块间距 ≥ 0.76cm)重新计算坐标,只借用调色板与标志性手势。

若需复刻"面板流动"的 Morph 效果,最低要求是:S2+ 每页设置transition=morph、场景演员跨页使用完全相同的!!名称、每页至少 3 个配对形状的几何差异达到位移 ≥ 5cm / 旋转 ≥ 15° / 尺寸变化 ≥ 30%、上一页的单页内容(#sN-*)在下一页 ghost 到x=36cm。参考成品文件 mixed__duotone_split.pptx 可直接在 PowerPoint 365 / Keynote / WPS 中观察完整的动画效果。

九、总结

Duotone Split 是 morph 技能库中"极简双色 + 大幅几何运动"的典型代表:三色配色、Segoe UI Black/Light 二元字体、6 个!!场景演员、五页渐进式分割比例,共同构成一套克制而高端的舞台级演示语言。它的构建脚本同时演示了 OfficeCLI 的三个核心工作流——batch 批量命令、--from幻灯片克隆、transition=morph跨页动画——是学习"以 Morph 为叙事引擎"的形态最佳入门样本之一。

  • 人工智能
  • AI 应用
  • AI 技能
  • CLI
  • MCP 服务

【免费下载链接】OfficeCLI

OfficeCLI 是首款也是最佳的专为 AI 代理设计的命令行工具,可用于读取、编辑和自动化处理 Word、Excel 和 PowerPoint 文件。它免费、开源,仅包含一个二进制文件,无需安装 Office 套件。

项目地址:https://gitcode.com/iOfficeAI/OfficeCLI
点击查看免费下载

相关推荐

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/19 23:29:25

光伏电站智能预警系统:Web平台+LSTM+多源融合实战

简介&#xff1a;本资源是一份面向Web开发工程师、能源信息化系统设计人员及高校电力/自动化专业师生的技术分析文档&#xff0c;聚焦离网光伏电站集中监控痛点&#xff0c;提出一套基于Web平台的预警监控系统完整设计方案。文档深入剖析系统架构、数据采集逻辑、远程监控机制与…

作者头像 李华