☰
frontend-slides Mat 模板设计系统深度解析:森林绿画布、木暖辉光与暖橙标点的材质触感演示体系
2026/10/3 12:39:46 网站建设 项目流程
  • AI 技能
  • AI 插件
  • 前端

【免费下载链接】frontend-slides

Create beautiful slides on the web using a coding agent's frontend skills

项目地址:https://gitcode.com/gh_mirrors/fr/frontend-slides
点击查看免费下载

Mat 是frontend-slides技能所附 Bold Template Pack(selection-index.json)中的 34 款高辨识度设计系统之一:一套以深森林绿为主环境、右下角木棕色大气辉光为唯一深度信号、奶油色字体直接浮于画布之上、单一暖橙色作结构标点的"材料触感"(material-tactile)演示体系。读完本文,你将掌握 Mat 的完整设计令牌(色彩/字体/间距/组件)、其与 frontend-slides 固定 1920×1080 舞台模型的落地关系、CJK 中文排印适配策略,以及一套可直接照搬的"Do / Don't"式设计纪律,足以生成既不像"AI 模板味"也不像"科技 demo"的高质感幻灯片。

系统定位与设计理念

Mat 的设计文档位于 templates/mat/design.md,对应的预览卡见 templates/mat/preview.md。预览卡给出的选型元数据定义了它的使用边界:

  • Tagline:Dark sage canvas with bone paper and burnt-orange accent; mid-century modern with wood undertones(深灰绿画布、骨白纸面与焦橙色点缀,带木质底色的中古现代风)。
  • Mood / Tone:warm-modern、considered、tactile、mid-century;warm、design-led、intentional。
  • Formality:medium;Density:medium;Scheme:mixed(暗色为主、偶有奶油浅色变体)。
  • Best for:设计工作室简介、建筑/室内品牌、陶瓷/手工艺/家具、咨询顾问提案;也适合想呈现"考究的模拟质感"而非"数码冷淡感"的科技、研究或商业演示。
  • Avoid for:需要快速科技能量或机构克制感的场合——其低饱和鼠尾草绿与焦橙配色是刻意的"暖而慢"。

Mat 的全部风格围绕一个环境前提展开:深森林绿表面,从右下角被一层低强度的木棕色辉光加热。在内容落地之前,画面已经像午后光线下的工作台。奶油色文字直接浮在绿色画布上——没有卡片、没有面板、没有外框;当系统需要打破绿色时,只用唯一的奶油色内嵌块(info-card),它读起来像一张铺在深色表面上温热的纸。

三声部字体栈是刻意设计:Bricolage Grotesque(700/800 字重)负责展示级排版,厚重、圆润、带一点机械感,适合产品类文案又不显科技初创味;DM Sans(400)负责正文,中性且给展示字体留足呼吸感;DM Mono(400)负责所有标签、眉题(kicker)、元数据和 chrome——一切需要读作"标记"而非"句子"的结构性文字。展示级字体在本系统中永远使用混合大小写,绝不大写;大写的工作只留给等宽标签。

调色板刻意收窄。深森林绿是主导表面,浅一档的绿色备用作分层区域;暖奶油色是深色面上的主文字色、也是浅色页的次级表面色;暖橙色是唯一点缀色,只以小型内联标记出现:眉题文字、列表破折号、统计数字内的<em>、引言起始引号、图表中唯一高亮的柱条。橙色永远不是背景、也永远不是大标题的颜色,它是系统的"结构性强调点"。

深度感极简且氛围化,不做堆叠:没有投影、没有任何结构元素的圆角,唯一的深度信号是每张暗色页::before伪元素上的木棕径向辉光。区域分隔完全依靠低透明度奶油的1px 发丝线——用于 chrome 条、页脚条、统计单元格分隔、对比面板分缝和图表基线。

密度哲学:中等偏疏(medium-sparse)。Mat 在留白充足时才显得优雅:左右各 5.5vw 的慷慨内边距、一个主要的排版焦点、一块辅助说明文字。把三栏要点塞进一页会破坏系统;例外是统计页和对比页,那里用克制的三列或两列单元格排列才是正确的。单标题 + 一段 lead 正文是本系统的正确定价;一页填满 80% 文字就是在与设计作对。

关键特征(Key Characteristics):

  • 深森林绿画布({colors.bg-dark})+ 锚定在每张暗色页右下角的暖木棕径向辉光({components.atmospheric-glow})。
  • 奶油色文字({colors.ink-cream})直接浮在绿场上,周围无卡片、无面板、无外框。
  • Bricolage Grotesque 展示字体永远混合大小写;大写只属于 DM Mono 标签。
  • 单一点缀色暖橙({colors.accent-orange}),只用于小型内联强调(眉题、列表标记、内联<em>、引号字形、一根图柱)。
  • 奶油色info-card({components.info-card})是标志性的材质对比组件——嵌在深场上的暖纸矩形。
  • 列表使用暖橙色 DM Mono 的破折号前缀——绝不用圆点或对勾。
  • 1px 低透明度奶油发丝线是唯一的分隔语言;无粗边框、无阴影。
  • 系统只有一个浅色变体(奶油背景 + 深绿文字),用作整套演示中的"调性反转",永不作默认。

与 frontend-slides 固定舞台模型的落地约定

design.md 开篇的Frontend Slides Fixed-Stage Policy是比文件后文所有"viewport-fluid"描述更高优先级的约束:当该设计系统被frontend-slides技能使用时,最终演示必须生成为固定 1920×1080 舞台,并整体等比缩放到浏览器视口。这在手机上保持 16:9 画布,可加黑边(letterbox / pillarbox),但不得为移动端重排幻灯片内容。

即使源模板原本使用100vw、100vh、vw、vh或clamp()实现视口流式布局,也一律把这些值视为设计比例,翻译成 1920×1080 舞台坐标,而不是在生成物里保留实时响应式规则。这与 SKILL.md 中"Fixed 16:9 Stage (NON-NEGOTIABLE)"的五条核心原则一致:幻灯片隐藏切换必须使用visibility/opacity/pointer-events(而非display:none),并必须把 viewport-base.css 全文内联进每个演示。

落地时使用 deck-stage.js 或等效的内联舞台缩放器:以 1920×1080 渲染每页幻灯片,用一次transform: scale()缩放整个舞台。从源码看,其核心逻辑在_fit()(deck-stage.js):s = Math.min(vw / 1920, vh / 1080),将缩放系数套到.canvas上;noscale属性可让 PPTX 导出器捕获未缩放的真实几何。此外,脚本内置键盘导航(←/→、PgUp/PgDn、Space、Home/End、数字键跳页、R 复位)、移动端三分区点击热区、以及@media print下每页一张、无多余 chrome 的打印规则——注意,这些通用交互能力会覆盖 Mat 设计文档中描述的"浏览器自带按键行为"细节(详见下文"响应式行为")。

生成后必须用真实渲染截图同时检查文字溢出与面板重叠,因为scrollHeight检查无法发现网格面板彼此遮罩的问题。设计文档被当作"风格配方"而非"可直接复制的成品":要保留所选模板的字体、调色、装饰词汇、间距节奏与组件语法,但用户的实际内容永远是主角(见 bold-template-pack/README.md 的 Implementation Contract)。

色彩系统:10 个令牌与默认值

Mat 的全部颜色集中在 YAML 前置区的colors与color-aliases两节,共 10 个令牌:

令牌值角色与使用规则
{colors.bg-dark}#232E26深森林绿:主导环境,每页默认背景。绿调足够哑光,奶油字在上不产生视觉震动
{colors.bg-dark-alt}#2E3D30略浅一档的绿:为暗页内分层/内凹表面预留的调性台阶,有但少用
{colors.bg-cream}#EDE6D0暖奶油:浅色页背景 + info-card 填充色。是"暖纸"而非纯白,暖度是材质身份的关键
{colors.bg-cream-alt}#E4DAC4更深一档奶油:浅色页上图占位的次级奶油调
{colors.ink-cream}#F0E8D2奶油墨:一切深色表面上的主文字色。比背景奶油略暖,让标题像"刻进"绿面而非"印上去"
{colors.ink-cream-2}rgba(240,232,210,0.58)深面上的次级文字(muted lead copy)
{colors.ink-cream-3}rgba(240,232,210,0.3)深面上的三级文字(几乎不可见的元数据)
{colors.ink-dark}#1E2820深墨:奶油表面上的主文字色(info-card 正文、浅色页)。极深的森林绿,永不是纯黑
{colors.ink-dark-2}rgba(30,40,32,0.6)奶油面上的 muted 次级文字
{colors.ink-dark-3}rgba(30,40,32,0.3)奶油面上的三级文字
{colors.accent-orange}#C07030暖橙:唯一点缀色。焦铜橙,呼应木、皮革、氧化金属;永不做背景、永不做大标题
{colors.wood-glow}#7A4E24木辉色:只以 0.28 / 0.14 透明度出现在右下角径向渐变中,永不作平铺填充
{colors.border-on-dark}rgba(240,232,210,0.12)深面上的发丝线/分隔色
{colors.border-on-cream}rgba(30,40,32,0.14)奶油面上的发丝线/分隔色

默认值(Defaults)

  • 默认表面背景:{colors.bg-dark}(森林绿)。系统暗色优先;奶油页是有意的调性断裂而非例行选择。
  • 深面上的默认标题色:{colors.ink-cream}。标题永远不用橙色。
  • 奶油面上的默认标题色:{colors.ink-dark}。
  • 深面上的默认正文色:{colors.ink-cream-2}(58% 奶油,即.muted辅助类)。
  • 奶油面上的默认正文色:{colors.ink-dark-2}。
  • 默认边框/分隔色:深面用{colors.border-on-dark},奶油面用{colors.border-on-cream},一律 1px、永不加粗。
  • 默认眉题色:{colors.accent-orange}。眉题是系统的"眉线标签",也是橙色最稳定出现的位点。
  • 默认内联强调色:{colors.accent-orange}。统计值、引言署名或图表标签内的<em>一律解析为橙色。
  • 暗页默认氛围处理:木棕径向辉光始终开启——它是暗色表面本身的一部分。

橙色 = 标点色:它告诉视线"结构性强调在哪里",却从不争夺面积。如果同一页上有两个橙色元素相邻,其中一个就是错的。

字体排印:三声部字体栈与完整字阶

系统运行在三款 Google Fonts + CJK 回退上:Bricolage Grotesque承担全部 display、h1、h2、h3、统计数字和引言文字(700–800 字重是其定义性声部);DM Sans(400)承担全部段落、lead、说明和列表项;DM Mono(400)承担标签、眉题、chrome 标记、页脚、列表破折号和图表标签。Noto Sans SC是所有无衬线角色的 CJK 回退;Noto Serif SC 在拉丁版本中不使用。

两条虽细微但承重强的规则:

  • 列表项前的破折号渲染为暖橙色的 DM Mono,而非正文字体——等宽造型让破折号像"刻意标记"而不是游离的标点残骸。
  • 斜体在本系统不做排版装饰。<em>被重新定义为橙色内联强调:统计值或引言署名里的<em>切换到{colors.accent-orange}并保持直立(font-style: normal)。全系统不存在任何斜体字形。

字阶表(Type Scale)

令牌字号字体字重用途
{typography.display}12vwBricolage Grotesque800封面/开场英雄展示——巨大,每行断成 1–2 个词
{typography.h1}7vwBricolage Grotesque800章节开篇或收尾标题
{typography.h2}4vwBricolage Grotesque700内容页主标题
{typography.stat-value}5.5vwBricolage Grotesque800统计单元格内的大号数值
{typography.quote-mark}8vwBricolage Grotesque800装饰性起始引号字形(暖橙)
{typography.quote-text}3.4vwBricolage Grotesque600摘引正文
{typography.h3}2.4vwBricolage Grotesque600小标题或区域标题
{typography.lead}1.5vwDM Sans400引导段或大号列表项
{typography.body}1.05vwDM Sans400正文段与 info-card 正文
{typography.caption}0.82vwDM Sans400图注、标语、小字
{typography.label}0.7vwDM Mono400眉题、chrome 标记、页脚标签、元数据、图表标签

排版默认值

  • 默认主标题:{typography.h2}(4vw)。
  • 默认开场/封面展示:封面用{typography.display}(12vw),章节或收尾时刻用{typography.h1}(7vw)。
  • 默认正文字号:{typography.body}(1.05vw);当段落是大标题下唯一的支撑块时,升格为{typography.lead}(1.5vw)。
  • 默认标签/眉题字号:{typography.label}(0.7vw)。
  • 展示元素默认字重:700(h2)或 800(display、h1、stat-value)。
  • 正文默认字重:400。
  • 默认标题字距为负:display -0.03em、h1 -0.025em、h2 -0.02em。负字距是必需品。

拿不准时,默认组合是"{typography.h2}主文字时刻 + 一段{typography.lead}支撑文案"——这是系统最可靠的节奏。

签名处理(Signature Treatments,不可省略)

只要对应元素类型被使用,以下处理强制生效:

  • 所有 display、h1、h2、h3 文字混合大小写,绝不全部大写。本系统不存在大写展示字。
  • 所有标签、眉题、chrome 文字、页脚、元数据使用DM Mono 大写 + 0.12em 正字距。本系统不存在句子式的 Mono。
  • 眉题永远是暖橙色,与所在表面无关。
  • 列表永远使用暖橙 DM Mono 破折号前缀,绝不用圆点、对勾或数字。
  • 统计数字内的<em>渲染为暖橙并保持直立——它是高亮单位后缀或关键数字的机制。
  • 深面标题为奶油、奶油面标题为深墨;标题永不为橙色。
  • 所有 Bricolage 展示字体使用负字距——默认字距读起来像"未处理过",负字距才是压缩、高端产品感的来源。

排版原则

系统节奏是"重型混排展示字 + 轻型混排正文 + 小型大写等宽标签"。三者的任何互换(如把展示字大写、或让正文与展示字同字重)都会打破编辑级位差。Bricolage 700–800 紧邻 DM Sans 400,字重差是刻意且宽阔的——不要用中间字重(400/500)做展示时刻,那读起来像"犹豫未决"。不适用斜体、不使用下划线;正文里唯一的强调机制是橙色<em>内联,唯一的结构性强调是眉题和列表破折号。

布局:画布、间距刻度与 chrome 框架

画布系统

源模板中 Mat 是按视口流式(viewport-fluid)设计的:所有尺寸用vw/vh单位,容器为100vw × 100vh,整副 deck 是一条约等于视口宽的横向 flex 带,按满视口宽度左右平移。没有固定画布尺寸。但依 Fixed-Stage Policy,这些比例要翻译成 1920×1080 舞台坐标再应用(见 SKILL.md 的 Phase 3 说明)。

间距刻度表

令牌值用途
{spacing.pad-x}5.5vw水平内边距;左右边缘的呼吸空间
{spacing.pad-y}5.5vh垂直内边距
{spacing.gap-lg}4.5vh主要内容区块之间
{spacing.gap-md}2.8vh相关元素之间(标题→lead、数值→标签)
{spacing.gap-sm}1.4vh紧密相关元素之间(chrome 条内的标签对)

水平内边距很慷慨——内容大致占据视口中间 89%。把内容推近边缘会破坏系统的编辑式开阔感。

Chrome 框架

大多数页型在顶部带一条chrome 条、底部带一条foot 条:各自是一个flex space-between行,包含两个 DM Mono 标签(左侧通常是章节名、右侧是页码或章节序号),与正文之间用 1px 发丝线隔开。封面页、引言页和结束页完全抑制这两条带——这些时刻按惯例"无 chrome"。

导航 chrome

底部居中固定一行导航圆点(5px 圆、低透明度白),右下角是页码计数器(10px DM Mono、rgba(255,255,255,0.25),格式01 / 09)。这些属于演示器 chrome,不是设计语言本身——在模板库的所有模板家族中保持一致。注意 design.md 的"Known Gaps"提到:这些硬编码白色值不随奶油浅色页自适应,浅色页上白点会显得发虚。

深度与层次:大气辉光、发丝线与零阴影

大气辉光(唯一深度机制)

系统唯一的深度处理是每张暗色页::before上的右下角木棕径向辉光({components.atmospheric-glow})。伪元素占 55% 宽 × 70% 高,锚定右下角,渐变从rgba(122,78,36,0.28)到rgba(80,50,20,0.14)再到透明。辉光在z-index: 0,全部内容在z-index: 1。这就是全部深度——没有投影、没有浮起卡片、没有文字辉光。辉光的透明度不是可配置令牌,重新定位必须直接改 CSS 规则。

发丝线(结构分隔)

分隔区域只用1px 低透明度奶油发丝线:深面为{colors.border-on-dark}(12% 不透明度),奶油面为{colors.border-on-cream}(14% 不透明度)。它们出现在 chrome 条之下、foot 条之上、统计单元格之间、对比面板之间,并作为图表基线。发丝线永不加粗、永不着色。

零阴影

任何结构元素上都不存在box-shadow。info-card 平放在深场上、无阴影——它的材质对比来自"奶油压绿"的色调跃迁而非抬升。给任何组件加阴影都会破坏系统扁平的"材质摄影"美感。

形状与装饰元素

圆角

值用途
0px所有结构元素——info-card、图占位、统计单元格、对比面板、柱条
50%仅导航圆点

系统对任何组合内容没有圆角:卡片、面板、图片框都是严格矩形。唯一圆形是导航 UI 圆点。

边框粗细

  • 1px 实线发丝——通用结构边框,用于 chrome 条、foot 条、统计单元格分隔、对比面板分缝、图表基线与图占位外框。
  • 不存在其他边框粗细。2px 边框就破坏了系统;3px 边框属于另一套设计家族。

装饰元素类型(共 8 种)

  • Kicker(眉题)——暖橙色、0.12em 正字距的 DM Mono 大写小标签,作为眉线置于标题上方。橙色在系统中出现频率最高的位置,通常 0.7vw。
  • Rule(规则线)——32px 宽 × 1px 高的暖橙水平强调线,用作眉题与标题之间的小型下划线式分隔,或置于章节编号之下。装饰性,非结构性。
  • Bullet em-dash(列表破折号)——每个列表项的标记:用 CSS grid 的标记列(grid-template-columns: 1.4em 1fr)在 DM Mono 中以暖橙色渲染—,前置在列表项前。系统的"列表声部"。
  • Info-card(信息卡)——嵌在暗页上的奶油内嵌矩形({components.info-card}:背景{colors.bg-cream}、文字{colors.ink-dark}、内边距gap-md × pad-x*0.8、最大宽 28vw),承载一个 h3 级标题(深墨)+ 一段 body 级正文(muted 深墨)。全系统最具辨识度的组件——用一块暖纸"戳破"绿场。无边框、无阴影、无圆角,仅靠色调跃迁定义边缘。
  • Stat cell(统计单元格)——纵向分割的单元格:上为{typography.stat-value}大数值,下为一行{typography.body}muted 奶油标签。三个一组排列,1px 右边框分隔(最后一格无右边框)。数值支持橙色<em>高亮单位后缀(如4.7k的k)。
  • Quote mark(引号标记)——{typography.quote-mark}(8vw)尺寸的暖橙色超大起始引号,置于引言文字上方作排印装饰。只用于引言页型。
  • Compare divider(对比分隔)——两侧面板之间的 1px 宽垂直 CSS 列(不是边框)。刻意低调——对比本身由两个面板的差异完成,而非分隔条。
  • Image placeholder(图占位)——1px 发丝边框、6% 奶油背景、居中 DM Mono 标签的虚空矩形,用于真实照片就位前。占位色刻意接近背景——图像区域不该自我宣告。

Do's 与 Don'ts

Do(应当):

  • 用深森林绿({colors.bg-dark})作为默认页背景;系统暗色优先,奶油页是有意断裂。
  • 给每张暗色页加木棕大气辉光——它是表面的一部分,不是可选的装饰。
  • 让 Bricolage Grotesque 展示字混合大小写、DM Mono 标签全大写;两者的"大小写反差"就是系统的排印节奏。
  • 标题在深面用奶油({colors.ink-cream})、在奶油面用深墨({colors.ink-dark});标题永不带橙色。
  • 用暖橙做眉题色、列表破折号色与内联<em>色;橙色是标点,不是表面。
  • 需要一块"铺在绿场上的暖纸"时使用奶油 info-card——这是系统标志性的材质对比动作。
  • 保持页面中等偏疏:一个主标题 + 一段支撑文案 + 可选 3–5 条短列表。
  • 每个结构分隔都用 1px 低透明度奶油或深墨发丝线;边框永不更粗。
  • 每个列表都用 DM Mono 破折号前缀;绝不换成圆点、对勾或数字。
  • 数值内的<em>用暖橙渲染且font-style: normal——这就是本系统单位后缀与强调数字的读法。

Don't(禁止):

  • 不要大写任何 Bricolage 的 display、h1、h2、h3 文字;展示字永远混排。大写专属 DM Mono 标签。
  • 不要引入第二种点缀色;系统只有一个点缀色(暖橙),且不能共享该角色。
  • 不要给任何组件加投影、模糊阴影或浮起效果;深度只有大气辉光。
  • 不要给结构元素加圆角;卡片、面板、图片框、柱条全是严格矩形。只有导航圆点是圆的。
  • 不要用三列要点填满页面,也不要纵向堆五个区域;Mat 拥挤时读起来是坏的。
  • 不要用橙色做背景填充;橙色仅限内联。
  • 任何位置都不要用衬线字体;本系统没有衬线,圆润的无衬线黑体承担一切编辑时刻。
  • 不要给 info-card 加边框;奶油与森林绿的色调跃迁定义了边缘,边框会破坏扁平的材质解读。
  • 不要使用斜体字形;<em>已被重新定义为橙色内联换色并保持直立。
  • 不要把边框加重到 1px 以上;2px 边框就破坏了系统的发丝线语言。

响应式行为与演示交互

源文档记录 Mat 面向流式100vw × 100vh视口,用vw/vh驱动所有字号、内边距与间距,同一构图在 1280×720、1920×1080、2560×1440 上无需断点即可正确渲染,视觉密度恒定。在 frontend-slides 固定舞台模型下,这些比例被翻译为 1920×1080 坐标,缩放行为统一由舞台缩放器接管。

演示者行为(源模板记录)

  • 右/下箭头、Space 前进;左/上箭头后退。
  • Home 跳首页;End 跳末页。
  • 移动端横向触摸滑动前进/后退。
  • 鼠标滚轮带 1000ms 防抖,防止误跳多页。
  • 幻灯片作为单一 flex 条横向平移,0s过渡(--dur-slide令牌为0s,即瞬切导航,无动画过渡)。

实际使用 frontend-slides 技能生成时,以上能力由 deck-stage.js 统一提供并略有增强:它还支持数字键 1–9 直接跳页(0 跳第 10 页)、按 R 复位到首页、点击底部覆盖条的 prev/next/reset 按钮、以及移动端三分区点按热区(左三分之一后退、右三分之一前进)。非活动幻灯片以visibility:hidden + opacity:0隐藏而非卸载,保留视频、iframe、表单状态。

打印行为

源模板未声明@media print规则,产出 PDF 需借助浏览器截图或打印工具,多页 PDF 需手动逐页触发。而 frontend-slides 最终生成物内联的 viewport-base.css 自带@media print规则(每页 1920×1080、break-after: page),deck-stage.js还会向<head>注入@page { size: 1920px 1080px; margin: 0 },因此浏览器"打印 → 另存为 PDF"即可得到一页一张的干净 PDF;也可用 scripts/export-pdf.sh 截图式导出。

CJK 与国际内容:中文排印适配策略

Mat 的设计文档对中文做了系统性的排印规划,核心是:Mat 的身份不依赖拉丁字体三件套,而依赖环境氛围(森林绿 + 木辉)、单点缀色纪律、奶油 info-card 与 1px 发丝线语言——这些在中英文间零修改平移。

推荐中文配对表

角色中文字体字重理由
Display / h1 / h2 / h3 / stat-value(Bricolage 角色,2.4–12vw)思源宋体 Noto Serif SC700Mincho 重字重提供 Bricolage 700–800 的结构质量,同时保留温暖材质层级
Quote text / quote mark(3.4vw / 8vw)思源宋体 Noto Serif SC600–700编辑时刻沿用同一声部 Mincho
Lead / body / caption(DM Sans 角色,0.82–1.5vw)思源宋体 Noto Serif SC400Mincho 正文声部——平静而材质化,与木辉暖度匹配
Info-card 正文 / 标题思源宋体 Noto Serif SC400 / 600中文下保持"暖纸压绿"的对比
Label / kicker / chrome / footer(DM Mono 角色,0.7vw)思源宋体 Noto Serif SC500 + 0.05em 字距替代 DM Mono——中文没有可作编辑 chrome 的等宽传统

混合内容策略(Strategy A)

整体切换到全 Mincho:用 Noto Serif SC 覆盖全部角色,替换 Bricolage Grotesque(展示)、DM Sans(正文)和 DM Mono(标签)。全 Mincho 能在视口流式系统上干净地保留全部身份标记,规避 Strategy C 的基线抖动。字体栈写法:

/* Bricolage 角色(display, h1, h2, h3, stat-value, quote) */ font-family: 'Bricolage Grotesque', 'Noto Serif SC', sans-serif; /* DM Sans 角色(lead, body, caption) */ font-family: 'DM Sans', 'Noto Serif SC', sans-serif; /* DM Mono 角色(label, kicker, chrome, footer) */ font-family: 'DM Mono', 'Noto Serif SC', monospace;

设计文档强调:系统源码当前把'Noto Sans SC'列为 CJK 回退,但为了 Mat 的材质触感层级,应换成'Noto Serif SC'——Mincho 字体的暖意字形比几何感、偏"现代临床"的 Noto Sans SC 更贴合木辉 / 森林绿氛围。

字体加载

把现有的 Noto Sans SC 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=Noto+Serif+SC:wght@400;500;600;700&display=swap" rel="stylesheet">

通用 CJK 调整(适用于本系统每一个 CJK 块)

  • 行高放宽 0.05–0.08:CJK 是全宽方块字、视觉重量大于拉丁字,为拉丁调校的行高(展示 0.88–1.1、正文 1.5–1.65)在中文里读起来局促。展示字提到 1.0–1.2,正文提到 1.7–1.85。
  • 去掉 CJK 标题的负字距:Bricolage 的 -0.025em~-0.03em 会让汉字互相碰撞;CJK 串设letter-spacing: 0,若视觉过挤可微调为0.02em。
  • 绝不对 CJK 文字做text-transform: uppercase:中文无大小写,该属性对汉字无效,但会静默破坏混排行中本应大写的 DM Mono 标签部分(本系统所有 DM Mono 标签、眉题、chrome 条、页脚都依赖text-transform: uppercase)。
  • 中文句内使用全角标点(,。:;!?「」『』()),不用拉丁对应符号;一句内混用两套标点读起来是排版错误。
  • CJK 标题句末不加句号(。):与拉丁规则一致,标题式行去终标点;正文段落保留。
  • CJK 与拉丁混排边界加 Pangu 空格(盘古之白):汉字与相邻拉丁词或数字之间应有空格(或 0.25em 边距),如2026 年 5 月而非2026年5月;可手打空格或用pangu.js类自动加空器。
  • 一句一字重:不要在同一个句子内切换 Noto Serif SC 的 400 / 500 / 700;按角色选定字重(标题 700、正文 400、标签 500)并整段坚持。

美学要点(中文翻译后的系统身份)

  • 橙色破折号列表在中文中完全等效:破折号字符(—)在任何文字系统里都是同一个字形,暖橙色 Noto Serif SC 500 字重前置在中文列表项前,与拉丁文一样读作刻意标记。列表标记列用 Noto Serif SC 500(替代 DM Mono)。
  • "Bricolage 永远混排、绝不大写"规则在中文里自动满足(中文无大小写);但"DM Mono 标签 0.12em 正字距大写"规则不直接平移——中文标签应是Noto Serif SC 500 + 0.05em 正字距、不做text-transform,靠字重与字距承担 chrome 质感。
  • <em>橙色内联规则在中文同样可用:统计数字内的汉字单位(如「万」「亿」)放在<em>里会渲染为暖橙并保持直立,如4.7<em>万</em>表示4.7 万 (47k)。

已知中文缺口

Bricolage Grotesque"厚重、圆润、带机械感"是拉丁版最具辨识度的排印动作(工业产品页声部的来源),但中文没有完全对应物:Noto Serif SC 700 提供结构质量,却比 Bricolage 的圆润现代感更传统 / 文学化。中文渲染会损失一部分工业设计气质,由木辉氛围与暖橙点缀补偿更多个性。若工业层级至关重要(如面向硬件或材料设计的产品发布 deck),可考虑在最宏大的展示时刻(封面、hero)用思源黑体 Noto Sans SC 800补充——其几何厚重感比 Noto Serif SC 更接近 Bricolage 800,但需克制使用以保留其余部分的文学-材质层级。

迭代指南(新增组件时的九条规则)

  1. 任何新组件以奶油文字直接落在深色表面上;除非是 info-card 动作(奶油压绿的色调对比),否则不外包卡片、面板或外框。
  2. 任何新标题用 Bricolage Grotesque 混排、700(h2)或 800(display/h1)字重;展示时刻绝不用 500。
  3. 任何新结构分隔都是 1px 低透明度奶油或深墨发丝线;绝不用更粗或彩色的边框。
  4. 任何新标签、眉线、tag 或元数据用 DM Mono 大写 + 0.12em 字距;混排 Mono 不存在于本系统。
  5. 任何新列表用暖橙 DM Mono 破折号前缀;标记字体与颜色不可协商。
  6. 任何新强调时刻(高亮数字、强调词、眉题)用暖橙;不要引入第二个点缀色。
  7. 任何新暗色页都带::before大气辉光;若自定幻灯片布局,必须复刻该伪元素,否则页面读起来是平的。
  8. 若页面需要一块暖纸锚点(CTA、总结、署名块),用 info-card;不要发明平行卡片样式。
  9. 调性断裂页(奶油背景)每套只用于一次强调,不作暗色的例行替代;系统读作暗色默认。

已知缺口(Known Gaps)

从 design.md 与仓库源码交叉核对,Mat 当前存在以下实现边界,二次开发前值得知晓:

  • --c-bg-dark-alt(#2E3D30)变量已定义但未被任何选择器实际使用,预留给未来的分层区域工作。
  • 大气辉光硬编码于右下角::before;重新定位需直接改 CSS,没有辉光位置或强度的令牌。
  • 系统加载四款 Google 字体(Bricolage Grotesque、DM Sans、DM Mono、Noto Sans SC)——渲染一致性依赖这些字体成功加载;CJK 回退栈覆盖中文,但日文、韩文字形会回退到系统衬线/无衬线。
  • 幻灯片过渡时长设为0s(瞬切);--ease-slide与--dur-slide令牌存在但无效,需要动画过渡时须手动提高时长值。
  • 垂直柱状图使用内联style="height: XX%"声明每根柱高;没有数据绑定层,柱高须手工计算。
  • .split-center图片区域固定 52vh 高;高竖幅图片可能需要布局级覆盖。
  • 导航圆点与页码计数器使用硬编码rgba(255,255,255,...),不随奶油浅色页变体自适应——浅色页上白点发虚。

结语:把 Mat 当作"风格配方"而非"成品拷贝"

Mat 的 design.md 是设计系统参考文档,而不是可复制的 demo 内容(见 bold-template-pack/README.md)。正确用法是:在 Phase 2 用 preview.md 生成真实标题页预选,用户选定后再读取完整 design.md,把它的字体、调色、装饰词汇、间距节奏与组件语法翻译到固定 1920×1080 舞台中,配合 viewport-base.css 与 deck-stage.js 落地,并始终以用户真实内容为主角。把握住"深绿 + 木辉 + 奶油字 + 单一橙点 + 1px 发丝线"这五个身份标记,以及"展示字混排、标签大写、橙色只做标点"这三条纪律,Mat 就能在任何语言、任何内容上保持它"工业设计作品集 × 精品产品发布"的独有声部。

  • AI 技能
  • AI 插件
  • 前端

【免费下载链接】frontend-slides

Create beautiful slides on the web using a coding agent's frontend skills

项目地址:https://gitcode.com/gh_mirrors/fr/frontend-slides
点击查看免费下载

相关推荐

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

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询