- AI 技能
- AI 插件
- 前端
【免费下载链接】frontend-slides
Create beautiful slides on the web using a coding agent's frontend skills
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} | 12vw | Bricolage Grotesque | 800 | 封面/开场英雄展示——巨大,每行断成 1–2 个词 |
{typography.h1} | 7vw | Bricolage Grotesque | 800 | 章节开篇或收尾标题 |
{typography.h2} | 4vw | Bricolage Grotesque | 700 | 内容页主标题 |
{typography.stat-value} | 5.5vw | Bricolage Grotesque | 800 | 统计单元格内的大号数值 |
{typography.quote-mark} | 8vw | Bricolage Grotesque | 800 | 装饰性起始引号字形(暖橙) |
{typography.quote-text} | 3.4vw | Bricolage Grotesque | 600 | 摘引正文 |
{typography.h3} | 2.4vw | Bricolage Grotesque | 600 | 小标题或区域标题 |
{typography.lead} | 1.5vw | DM Sans | 400 | 引导段或大号列表项 |
{typography.body} | 1.05vw | DM Sans | 400 | 正文段与 info-card 正文 |
{typography.caption} | 0.82vw | DM Sans | 400 | 图注、标语、小字 |
{typography.label} | 0.7vw | DM Mono | 400 | 眉题、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 SC | 700 | Mincho 重字重提供 Bricolage 700–800 的结构质量,同时保留温暖材质层级 |
| Quote text / quote mark(3.4vw / 8vw) | 思源宋体 Noto Serif SC | 600–700 | 编辑时刻沿用同一声部 Mincho |
| Lead / body / caption(DM Sans 角色,0.82–1.5vw) | 思源宋体 Noto Serif SC | 400 | Mincho 正文声部——平静而材质化,与木辉暖度匹配 |
| Info-card 正文 / 标题 | 思源宋体 Noto Serif SC | 400 / 600 | 中文下保持"暖纸压绿"的对比 |
| Label / kicker / chrome / footer(DM Mono 角色,0.7vw) | 思源宋体 Noto Serif SC | 500 + 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,但需克制使用以保留其余部分的文学-材质层级。
迭代指南(新增组件时的九条规则)
- 任何新组件以奶油文字直接落在深色表面上;除非是 info-card 动作(奶油压绿的色调对比),否则不外包卡片、面板或外框。
- 任何新标题用 Bricolage Grotesque 混排、700(h2)或 800(display/h1)字重;展示时刻绝不用 500。
- 任何新结构分隔都是 1px 低透明度奶油或深墨发丝线;绝不用更粗或彩色的边框。
- 任何新标签、眉线、tag 或元数据用 DM Mono 大写 + 0.12em 字距;混排 Mono 不存在于本系统。
- 任何新列表用暖橙 DM Mono 破折号前缀;标记字体与颜色不可协商。
- 任何新强调时刻(高亮数字、强调词、眉题)用暖橙;不要引入第二个点缀色。
- 任何新暗色页都带
::before大气辉光;若自定幻灯片布局,必须复刻该伪元素,否则页面读起来是平的。 - 若页面需要一块暖纸锚点(CTA、总结、署名块),用 info-card;不要发明平行卡片样式。
- 调性断裂页(奶油背景)每套只用于一次强调,不作暗色的例行替代;系统读作暗色默认。
已知缺口(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
相关推荐
frontend-slides 的 Mat 模板设计系统:深林绿底色 × 木褐辉光 × 奶油纸材质的材料触感演示体系
frontend slides 的 Mat 模板设计系统:深林绿底色 × 木褐辉光 × 奶油纸材质的材料触感演示体系 导读 本文深入解析 frontend sl
AI 技能AI 插件前端frontend-slides Mat 模板预览卡解析:材质触感演示设计系统的选择元数据与预览落地规则
frontend slides Mat 模板预览卡解析:材质触感演示设计系统的选择元数据与预览落地规则 Mat 是 frontend slides 项目 Bol
AI 技能AI 插件前端OpenDesign 设计系统解析:Starbucks 风格的暖奶油画布与四层绿色体系实战指南
OpenDesign 设计系统解析:Starbucks 风格的暖奶油画布与四层绿色体系实战指南 导读 本文以 OpenDesign 仓库内 design sys
AI 应用人工智能AI 技能设计系统媒体生成
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考