Editorial Forest 模板全解:用 Source Serif 4 打造 Penguin 经典质感的 1920×1080 前端幻灯片设计系统

原创2026-09-30 17:53:551,419 阅读
文章标签:AI 技能AI 插件前端

Editorial Forest 模板全解:用 Source Serif 4 打造 Penguin 经典质感的 1920×1080 前端幻灯片设计系统

Editorial Forest 是 frontend-slides 项目 Bold Template Pack 中一套以衬线字体为核心、走"文学期刊 / 艺术画册 / 年度报告"路线的固定画布演示设计系统。本文完整拆解其设计令牌(色彩、字体、间距、组件)、Fixed-Stage 生成策略、CJK 国际化适配与逐条迭代规则,并结合仓库中的 deck-stage.js、viewport-base.css 等源码验证其运行时原理,帮助你在前端幻灯片中真正落地这套"纸上印刷感"的视觉体系。

关联文档:Editorial Forest 设计规范 位于 Bold Template Pack 中,作为模板被选中后才被 Agent 读取的完整设计配方。

模板定位:什么时候用 Editorial Forest

根据 selection-index.json 中该模板的元数据,Editorial Forest 的 tagline 是"森林绿、灰玫瑰粉与暖奶油色,以 Source Serif 4 呈现的安静季度回顾式幻灯片"。它的 Mood 是 editorial / quiet / considered / warm / intentional,Tone 是 literary / thoughtful / warm / low-pressure,Formality 为 medium,Density 为 medium,Scheme 为 mixed(深浅面混用)。

  • Best for:季度回顾、内部汇报、工作室动态、创意代理商演示,以及研究总结、图书 / 项目公告、团队回顾等希望"温暖而不急促"的场景。
  • Avoid for:需要紧迫感、冲击感或强销售驱动的场景——该系统的调色与节奏是刻意安静的。

与之配套的 preview.md 仅供生成标题页预览卡使用,正式生成全套幻灯片时必须阅读完整 design.md。

Frontend Slides Fixed-Stage 策略:本系统最重要的前置约束

design.md 开头即声明了一条优先级最高的策略:当该设计系统被 frontend-slides skill 使用时,最终成品必须是固定 1920×1080 舞台,并整体等比缩放到浏览器视口。这条策略高于文档后文中任何"源模板响应式"描述——即使源模板原本使用 100vw、100vh、vw、vh、clamp() 等流体 CSS,也要把这些值当作"设计比例"换算成 1920×1080 舞台坐标,而不是作为成品中的实时响应式规则。

这一策略与 skill 层的强制约定一致。在 SKILL.md 的 Core Principles 中,第 5 条明确写着 Fixed 16:9 Stage (NON-NEGOTIABLE):所有幻灯片必须保持 16:9,包括手机端,宁可 letterbox / pillarbox,也不允许重排内容。生成时必须读取并完整嵌入 viewport-base.css。

运行时缩放由 deck-stage.js 完成。在 deck-stage.js 的源码中可以看到具体的实现证据:

  • 画布宽高默认为 1920×1080(DESIGN_W_DEFAULT / DESIGN_H_DEFAULT),可通过 <deck-stage width="1920" height="1080"> 属性覆盖;
  • _fit() 方法用 Math.min(window.innerWidth / designWidth, window.innerHeight / designHeight) 计算统一缩放比,并以 transform: scale(s) 作用到整块画布,从而保证 letterbox 而非重排;
  • 非活动幻灯片以 visibility: hidden + opacity: 0 隐藏而非卸载,保留 iframe、表单等状态;
  • 按 R 键回到第 1 页、数字键跳页、←/→/PgUp/PgDn/Space/Home/End 导航、触屏设备左右三等分点击区域翻页;
  • 组件每次切换幻灯片都会派发 slidechange CustomEvent(含 index / previousIndex / total / slide / previousSlide / reason),导航行为统一由运行时接管。

deck-stage.js 还支持 noscale 属性(PPTX 导出器用它让 DOM 捕获到未缩放的真实几何尺寸)以及 @media print 一页一稿的打印规则,这与 design.md 中"画布是纸,不是视口"的设计定位互相印证。

设计哲学:单一衬线声部 + 严格双字体分工

Editorial Forest 的根基是一条单一、自信的衬线声部——Source Serif 4——以极限字号(最高 220px)承担标题与统计数字,JetBrains Mono 则扮演编辑金属件(label、caption、坐标刻度、页脚)的配角。

三个最具辨识度的排版决策:

  1. 几乎一切衬线时刻都用 weight 500,而不是更常见的 400 或 700。500 是这套系统最独特的选择:足够重显得"有作者感",又足够轻让页面保持安静。weight 400 只用于正文段落,weight 600 只用于声明页的人名归属,weight 700 完全不用。
  2. 光学尺寸轴(opsz 8..60)全程开启。同一个 Source Serif 4 字面,在 26px 的 caption 与 220px 的 display 下渲染出细微不同的字形——小字号自动获得更多对比与细节。
  3. JetBrains Mono 以 500 字重大写、0.14em–0.18em 字距运行,用于所有标签、注释、坐标刻度与页脚行。系统永不混入第三种字体。

密度哲学是"宽敞且坚定":每页只承载一个强主题(标题、引文、图表、统计行、卡片网格),周围是大片留白。幻灯片内边距 96–140px 非常慷慨;宁可"更少的元素、更大的尺寸",也不要"更多的元素、更小的尺寸"。

色彩系统:绿色 / 粉色 / 奶油三色编辑色盘

调色板

令牌 色值 用途
green #2e4a2a 深森林绿主色:幻灯片表面、瓦片填充、卡片描边、meta-dl 分隔线、奶油面上的主文字色
green-deep #243a21 更深的绿,几乎只用作粉色面上的文字色(纯绿在粉面上对比不足)
green-lite #3a5a36 较浅的绿,用作"两个绿并列"时的次级瓦片填充(同网格中主绿瓦片旁)
pink #e89cb1 灰玫瑰粉:幻灯片表面、瓦片填充、绿面上的文字色、条形图系列色、花押圆圈描边
pink-deep #d27e96 略深的玫瑰,只用作粉色填充瓦片的同色描边
cream #efe7d4 燕麦纸表面:非封面幻灯片默认背景、绿面正文色、奶油条形图系列色
cream-2 #e6dcc4 略深的奶油,用作奶油面上的瓦片填充(配 2px 绿描边与纸面区分)
ink #1a1a17 奶油面上的正文色,暖近黑,永不使用纯 #000

默认规则

  • 默认幻灯片背景:内容重的幻灯片用 cream;封面、statement-data、summary 等需要"重量感"的时刻用 green。
  • cream 面上的默认标题色:green。
  • green 面上的默认标题色:主标题 cream,hero / 封面级标题 pink。
  • pink 面上的默认标题色:green-deep。
  • 正文色:cream 面 ink;green 面 cream;pink 面 green-deep。
  • label / caption 默认色:跟随所在区域的强调色(绿面上粉、奶油面上绿、粉面上 green-deep)。
  • cream 面上的默认瓦片填充:从四种中轮换——实心绿(粉字)、实心粉(green-deep 字)、green-lite(粉字)、cream-2 配 2px 绿描边(绿字)。一个网格典型混用 3 种。
  • 默认分隔线颜色:cream 面绿、green 面粉、pink 面 green-deep——2px 细线永远跟随区域强调色。

设计文档明确警告:色盘是刻意收紧的,引入第四种色相家族(黄、蓝、额外的玫瑰)会破坏编辑纪律。变化工作交给"填充瓦片 vs 描边瓦片"的对比,而非增加颜色。

排版系统:字阶阶梯与签名式处理

系统只加载两个 Web 字体:Source Serif 4(完整光学尺寸轴 8..60,字重 300–800)与 JetBrains Mono(字重 400/500/700)。serif 与 mono 的角色分工是系统的排印身份:mono 永远不会当标题,serif 永远不会当坐标刻度——这与常见的"sans 做金属件、serif 做正文"是反转的。

字号阶梯全表

令牌 字号 字族 字重 用途
display-hero 220px Source Serif 4 500 封面 / 收尾级标题
display 140px Source Serif 4 500 拉引文 / 大观点陈述
headline-xl 96px Source Serif 4 500 奶油面主章节标题
headline 84px Source Serif 4 500 绿面主章节标题
headline-sm 80px Source Serif 4 500 统计行引导标题
title-card-lg 84px Source Serif 4 500 网格中最大瓦片内的标题
title-card 68px Source Serif 4 500 step tile 内标题
title-card-sm 56px Source Serif 4 500 标准 topic tile 内标题
figure-caption-serif 56px Source Serif 4 500 居中图注
stat-figure 220px Source Serif 4 500 KPI 数字
stat-figure-unit 110px Source Serif 4 500 KPI 数字的单位后缀(如 "%")
name 44px Source Serif 4 600 署名行中的姓名
meta-value 32px Source Serif 4 500 meta 行定义列表值
body-lg 32px Source Serif 4 400 摘要 / 统计描述中的主正文
body 30px Source Serif 4 400 标准正文
body-card 26px Source Serif 4 400 卡片 / 瓦片内正文
label 26px JetBrains Mono 500 / 0.18em topbar 中的眉题 / 章节标签
label-tight 26px JetBrains Mono 500 / 0.14em 注释行、页脚、署名行、瓦片序号
caption-mono 24px JetBrains Mono 500 / 0.12–0.16em 瓦片脚注、瓦片标记、KPI 标签、meta-dl 词条
axis-mono 26px JetBrains Mono 500 / 0.08em 图表坐标刻度与标签

签名式处理(不可省略)

  • 每个 JetBrains Mono 元素必须大写,且字距 ≥ 0.08em。句首大写或未加字距的 mono 看起来是代码,而不是编辑金属件。
  • 每个 Source Serif 4 display 元素使用负字距(-0.01em 至 -0.03em)。收紧的 track 把 96–220px 的大号衬线字形收拢成一个整体。
  • display 标题行高介于 0.92–1.02。220px 用最紧的 0.92,84–96px 用 0.96–1.0。
  • 正文一律 serif 400,不是 500。从标题到正文的字重落差就是系统的阅读节奏。
  • 每页必带 topbar(mono label + 对侧花押或计数器),这是系统的脊柱。
  • 区间分隔细线一律 2px 实线。1px 像 Web 应用,3px+ 像海报。

默认选择建议

普通内容页主标题默认用 headline-xl(96px),而不是更大的 display 层级;140–220px 档位只留给陈述、统计数字、hero / 收尾时刻。meta dt 标签或瓦片序号默认 caption-mono(24px)大写 JetBrains Mono;topbar label 默认 label(26px,0.18em 字距)。

排版原则方面,系统不使用斜体、不使用下划线,强调通过尺寸与颜色对比完成,而不是字体变体。

布局:固定画布、内边距标尺与版式骨架

Canvas 系统

系统目标是固定 1920×1080 画布。每页 <section> 精确等于该宽高,渲染依赖 deck-stage.js 将画布缩放适配视口。画布是"纸",不是"视口"——为投影仪、打印机或 PDF 导出而设计。

内边距标尺

令牌 值 用途
slide-pad-default 96px 120px 标准幻灯片内边距
slide-pad-narrow 100px 120px 数据 / 框架 / 统计页——略高的顶部内边距
slide-pad-wide 100px 140px 封面 / 摘要页——hero 标题需要更宽的侧边距
slide-pad-statement 130px 160px 陈述页——为 display 引文时刻预留最慷慨的内边距

内边距要与内容"重力"匹配:陈述级时刻用最宽,日常内容页用默认 96×120。

版式骨架(Chrome Anatomy)

每页至少带一条 topbar:flex 行,一端是 JetBrains Mono label,另一端是 monogram-circle 花押圆圈或 mono 计数器 / 位置字符串。较重的页面(封面、数据、摘要)还会带一条绝对定位于 bottom: 60–80px 的 footline,是一行横跨页面内边距的 mono 注释行(如左侧章节名、右侧页码)。

卡片圆角

值 用途
2px 仅限图例色块(系统内最小圆角)
3px 3px 0 0 条形图柱体顶部两角
6px topic tile(议程式网格)
8px step tile(框架式网格)
50% 花押圆圈

卡片是"微妙圆角"——既不尖锐也不重度圆角。6–8px 半径给了系统"纸而非塑料"的触感。

深度与层次:无阴影的扁平纸面

系统没有任何阴影——卡片、瓦片、文字、花押圆圈都没有。层次完全由三种手段表达:

  1. 色块对比——奶油面上的绿色瓦片因深色块与纸面分离而显得有浮起感;
  2. 2px 细线规则——kpi 行、摘要网格、meta dl 上方的区间分隔线;
  3. 描边 vs 填充——带 2px 绿描边的 cream-2 瓦片与旁边的实心瓦片呈现不同层次。

"没有阴影"本身就是层次语言。加上 box-shadow: 0 4px 12px rgba(0,0,0,0.1) 会直接击碎编辑质感。纸面规则要求每个表面都读作"纸"而非"数字面板",cream / cream-2 承载了字面意义上的纸感,green 与 pink 表面以全饱和度、四周奶油 chrome 包围、绝无阴影或辉光的方式继承这种质感。

形状与组件词汇

描边重量与样式

  • 2px 实线——通用细线:kpi 行 / 摘要网格 / meta dl / 图表轴上方的区间分隔线;cream-2 瓦片描边;花押圆圈描边。
  • 2.5px 实线——step tile 描边,略重以区别于细线规则。

描边颜色跟随区域强调色(cream 面绿、green 面粉、pink 面 green-deep 或 pink-deep)。

组件清单

  • 花押圆圈(Monogram Circle):130px 描边圆,2px 粉色边框,内含 2–3 字符 28px JetBrains Mono 花押。位于封面与摘要页右上角,是系统的身份印章。唯一全圆形状。
  • Topbar:贯穿每页顶部的 flex 行。mono label 在一边,花押 / 计数器 / 位置字符串在另一边。label 颜色即表面家族。
  • Footline:bottom: 60–80px 绝对定位 flex 行,两条 mono 注释字符串(左章节名、右页码)。用于封面、数据、摘要及任何想有印刷页感的页面。
  • Topic Tile:6px 圆角矩形区,含 mono 序号、serif 标题、可选正文与 mono 脚串。背景在 green / green-lite / pink / cream-2-带绿描边间轮换。议程 / 目录模式。
  • Step Tile:8px 圆角竖向卡片,2.5px 描边,含 mono 序号、serif 标题(68px)、正文段与由顶部细线分隔的 mono 标记行。背景为 cream-带绿描边、实心绿或实心粉。3–4 个一行的框架 / 流程模式。
  • KPI Block:竖向堆叠——顶部 mono 标签(24px)、超大 serif 数字(220px,可带 110px 单位)、下方 serif 描述段(30px)。绿面上以 2px 粉色细线与其上方行分隔。
  • Bar(图表柱):56px 宽矩形,顶部两角 3px 圆角,填充粉 / 奶油 / 绿。值标签为 24px mono,绝对定位在柱体上方 38px。
  • Meta 定义列表(Meta-dl):三列 dt/dd 网格,2px 顶边。dt 为 24px mono 大写加字距,dd 为 32px serif 500。用于两栏幻灯片底部的 credits / specs / details 行。
  • 图例行:mono 大写项目横向 flex,每项前有 26×26px 实心色块(2px 圆角)。用于图表与数据语境。

Do's and Don'ts 快速手册

Do:

  • 所有 display 标题用 Source Serif 4 500 字重 + 负字距(-0.01em 至 -0.03em)+ 紧行高(0.92–1.0);
  • 所有 label / caption / tag / 坐标刻度 / 页脚用 JetBrains Mono 500 大写 + 0.08em–0.18em 字距;
  • 每页放 topbar;
  • 每页选一个主导表面色(绿 / 粉 / 奶油),两色同页是上限;
  • 网格中轮换瓦片填充(绿 + 粉 + green-lite + cream-2 带绿描边),不要复用同一种;
  • 用 2px 实线细线分隔堆叠区块;
  • 内容允许时大胆放大 display 字号(陈述 / hero / 收尾用 140–220px);
  • 使用慷慨内边距(96–160px);
  • 花押圆圈只留给封面与摘要时刻。

Don't:

  • 不给任何元素加 box-shadow;
  • 不引入第三种字体(不要 Inter,不要系统字体栈);
  • 衬线不做斜体或下划线;
  • mono 不做句首大写或去字距;
  • 不引入第四种色相(黄 / 蓝 / 薰衣草);
  • 不用 4px+ 粗描边或 1px 细线;
  • 不在一页上堆两个互相竞争的内容块;
  • 表面色不用 rgba 透明度——每个表面都是实心油墨压纸;
  • serif 正文不用 500 字重;
  • 不省略 topbar。

响应式与运行时:固定 1920×1080 的非响应系统

design.md 明确:这是一套固定 1920×1080 的演示系统,通过 deck-stage.js 渲染。没有媒体查询、没有断点、没有流体尺寸,一切度量都是固定像素。

缩放行为:deck-stage.js 包装每个 <section>,将 1920×1080 画布统一缩放适配浏览器视口,必要时 letterbox。类型、内边距、间距、细线重量全部随画布等比缩放——1920px 下读作 2px 的边框在 960px 视口宽下会读作 1px,这在系统容差内是可接受的(源码 _fit() 正是用 scale() 统一缩放)。

演讲行为:导航委托给 deck-stage.js 提供的包装器,无内联键盘处理器。每个 <section> 是一页,运行时处理切换。

打印 / 导出:由于所有度量都是 1920×1080 画布内的固定像素,系统可以以相同宽高比(16:9)干净导出 PDF。带光学尺寸轴的 Source Serif 4 在打印分辨率下表现良好。仓库配套的 export-pdf.sh 用 Playwright 以 1920×1080 逐页截图合并 PDF,--compact 模式降为 1280×720 可减小 50–70% 体积;而 deck-stage.js 内置的 @media print 规则则保证浏览器"打印→另存为 PDF"时无需额外配置即可一页一稿。

CJK 与国际化内容:中英混排策略

推荐中文配对

角色 中文字体 字重 理由
Display 标题(220 / 140 / 96 / 84px) 霞鹜文楷 LXGW WenKai(Noto Serif SC 兜底) 400 文学性、手写感的笔意,契合 Source Serif 4 的 Penguin 经典语域
正文(26 / 30 / 32px) 思源宋体 Noto Serif SC 400 文学期刊的印刷正文声部
统计数字(220px) 思源宋体 Noto Serif SC 700 Mincho 700 提供拉丁字中 Source Serif 4 500 所提供的数字重量
Mono label / caption / 页脚(24–26px) 思源等宽 Noto Sans Mono CJK SC 500 JetBrains Mono 无 CJK 字形;该等宽面保留打字机金属质感

混排策略(Strategy C)

保留 Source Serif 4 作为拉丁字面,CJK 字形回退到 LXGW WenKai(标题 / display)或 Noto Serif SC(正文 / 统计)。理由:Source Serif 4 的光学尺寸轴是系统签名,整体替换成 Mincho 会压平定义这套幻灯片的 Penguin 经典语域。字体栈为拉丁优先、CJK 兜底、通用衬线殿后:

font-family: 'Source Serif 4', 'Source Serif Pro', 'LXGW WenKai TC', 'Noto Serif SC', Georgia, serif;

浏览器按字形逐字回退:拉丁字符以 500 字重 + opsz 渲染在 Source Serif 4,汉字在 LXGW WenKai(display)或 Noto Serif SC(正文)。需要留意的是 display 字号(96–220px)下的基线错位——LXGW WenKai 的光学基线略高于 Source Serif 4,混合行如 "Designed in 北京" 可能有 1–2px 的垂直晃动。幻灯片内容可接受;打印导出建议全中文或全拉丁行。

字体加载

在现有 Google Fonts <link> 中加入(或作为第二个 link 标签):

<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=LXGW+WenKai+TC&family=Noto+Serif+SC:wght@400;500;700&display=swap" rel="stylesheet">

注意:Google Fonts 提供的是 LXGW WenKai TC 版本(简体版 LXGW+WenKai+SC 尚未上线 Google CDN);TC 版本同时含繁简字形,两者皆可使用。

通用 CJK 调整(所有 CJK 区块一律适用)

  • 行高放宽 0.05–0.08:汉字是全宽方块、视觉重量大于拉丁字母;为拉丁调校的行高(display 0.92–1.0、正文 1.32–1.38)在中文下显拥挤。display 调到 1.0–1.1,正文调到 1.5–1.6。
  • CJK 标题去掉负字距:Source Serif 4 的 -0.01em 至 -0.03em 会把汉字撞在一起。CJK 字串设 letter-spacing: 0,若视觉过挤可给极小正值 0.02em。
  • 绝不对 CJK 文本做 text-transform: uppercase:中文无大小写,该属性对汉字无效,但会悄悄破坏任何混合行中本应大写的拉丁部分。
  • 句内使用中文全角标点(,。:;!?「」『』()),不要用拉丁半角标点。
  • CJK 标题行尾不加句号(。):标题式行去掉终结标点;正文段落保留 。
  • 中英边界应用 Pangu 间距(盘古之白):汉字与相邻拉丁词 / 数字之间留空格(或 0.25em margin),如 2026 年 5 月 而非 2026年5月。可手工加空格或用 pangu.js 风格的自动间隔器。
  • 一句话只用一个字体:不要在句内切换 LXGW WenKai 与 Noto Serif SC——按字号层级选定字面(display = LXGW WenKai,正文 = Noto Serif SC)后整段执行。

中文美学注记

Editorial Forest 的整体声部是"Penguin 经典 / 安静年报"——500 字重衬线 + 光学尺寸轴承担尺寸感知。中文对应物:display 时刻用 LXGW WenKai(与 Source Serif 4 500 字重同源的、带手作感的温和暖意),正文用 Noto Serif SC 400(读起来像文学期刊的宁静 Mincho 声部)。避免 Noto Sans SC 做正文——无衬线面会把系统翻成"技术报告"而非"专册跨页"。mono / serif 角色分工同样映射到中文:topbar label、footline 字符串、瓦片序号、坐标刻度用 Noto Sans Mono CJK SC,保持 0.14em–0.18em 的拉丁字距;中文标签不要用 LXGW WenKai 或 Noto Serif SC,否则编辑金属件会失去打字机质感。

已知 CJK 接缝

LXGW WenKai 的笔意温暖是大字号下的优势,但 26–32px 正文级下同样的笔意略显噪点。系统用更干净的 Noto Serif SC 承担正文以避免此问题,但 96px LXGW WenKai 标题与下方 30px Noto Serif SC 段落之间的视觉交接是系统最大的 CJK 接缝——两种字面的笔画对比曲线不同。若接缝明显:可以两端都用 Noto Serif SC(牺牲暖意换取统一),或两端都用 LXGW WenKai(牺牲正文可读性换取统一)。默认拆分对多数幻灯片是正确的取舍,但封面与陈述页值得手工检查。

迭代指南:10 条可执行规则

  1. 任何新标题 = Source Serif 4 500 + 负字距,从 display 阶梯(220 / 140 / 96 / 84 / 80 / 68 / 56)选尺寸,不发明新字号;
  2. 任何新 label / caption / tag = JetBrains Mono 500 大写 + 0.08em–0.18em 字距,从 mono 阶梯(26 / 24)选;
  3. 任何新页面顶部必带 topbar,mono label 颜色跟随表面(粉-on-绿、绿-on-奶油、green-deep-on-粉);
  4. 任何新卡片用 6px(topic tile)或 8px(step tile)圆角,花押圆圈是唯一全圆形状,不引入第四种半径;
  5. 任何新区块分隔是区域强调色的 2px 细线——没有 1px 规则,没有 3px 规则;
  6. 任何新填充色必须来自现有色盘(green / green-lite / pink / cream / cream-2),不引入黄、蓝或第三种粉;
  7. 任何新正文是 26–32px serif 400,不用 500;
  8. 任何新 KPI 数字是 stat-figure(220px),系统内没有更小的 KPI 字号——布局放不下 220px 就重构页面;
  9. 任何新图表用绿面上的柱形处理(粉 / 奶油 / 绿填充、mono 坐标、2px 轴线),数据构图是系统身份的一部分;
  10. 拿不准时,"更少的元素、更大的尺寸"——系统编辑语域在拥挤时崩塌。

已知边界与限制

design.md 诚实列出的已知缺口,供落地时规避:

  • 运行时依赖:系统依赖 deck-stage.js 完成画布缩放与翻页,脚本本身不在 design.md 内描述,视为运行时依赖。
  • 字体加载:Source Serif 4 与 JetBrains Mono 通过 Google Fonts <link> 加载。离线渲染会回退到 Georgia / Menlo,保留大致气质但失去光学尺寸轴与 JetBrains Mono 身份。离线 / 打印可靠性建议自托管。
  • 光学尺寸轴关键性:opsz 8..60 对系统质量至关重要,用非 opsz 回退字面会压平尺寸感知的字形对比。
  • 柱状图无数据绑定:柱高是手工设置的百分比(相对 520px 的固定绘图区),扩展图表需手工计算柱高。
  • 硬编码文本:花押圆圈、footline 字符串、瓦片计数器在源里带硬编码文本,逐 deck 替换为真实身份是必做项。
  • 无可打印媒体查询:系统没有 @media print 规则也没有响应式断点——固定 1920×1080,任何视口适配都交给 deck-stage.js。
  • 对比度边界:绿-on-粉与粉-on-绿在所用 display 字号(84px+)下足够,但在正文字号下达不到 WCAG AA。不要用 26px 正文字体做粉-on-绿或绿-on-粉——小字保持奶油-on-绿或 ink-on-奶油。

总结:如何在 frontend-slides 中完整落地

完整落地 Editorial Forest 只需遵循三步:在风格发现阶段先用 selection-index.json 与 preview.md 完成候选与标题页预览;用户选定后读取本模板完整 design.md 作为设计配方;生成时保持单一自包含 HTML、完整嵌入 viewport-base.css、以固定 1920×1080 舞台配合 deck-stage.js 统一缩放,并逐条对照本文的调色板、字号阶梯、签名式处理、Do's and Don'ts、CJK 调整与迭代规则。这套"纸上印刷感"的编辑语域,属于季度回顾、工作室更新与一切想显得深思熟虑而非仓促的演示。

登录后查看全文
frontend-slides