- 新增两款自托管字族:font-huiwen(汇文明朝体,文风开源 cn-font-split
339 片切片包,用到页 +535KB、按需拉取实测 19/339 片)|font-kuaile
(站酷快乐体 +163KB)——补齐「宋明气质」与「轻松标题」两个字体缺口
- 首批 6 族全部 OFL-1.1 且允许 web 嵌入;未用字体的页面增量恒 +0.0KB
(按页子集化生效)
- 候补 13 款逐款标注「许可证 + web 嵌入」:HarmonyOS Sans/MiSans/OPPO
Sans/阿里普惠体(免费商用 + 明确允许嵌入,但 npm 无包/整包过大)、
得意黑/更纱/站酷高端黑/花园明朝(OFL 但无可用 npm 分发)、霞鹜文楷
Light(+8605KB 否决)、演示悠然小楷("个人免费"常禁 @font-face,风险)
- docs 写入「加字四步流程」(核双授权 → 装包或放 public/fonts → 加类+
白名单+面板项 → 跑体积账)
- 可视化面板 35 项(10 字族 + 25 颜色);白名单放行 10 字族类
- 资产:public/fonts/hwmc(339 woff2 13MB + fonts.css 162KB)入仓
车道:op-artalk;收编复验:构建 48 页、E2E 37/37、两款新字体 computed
与切片按需加载实测(hwmc/27、52 等 20 个请求)
验证: pnpm astro build 48 页 exit 0;E2E 37/37;playwright 新字体 computed
+ 字体请求观测
Spec: none (字体扩展,车道级交付)
Co-authored-by: GLM-5.3
50 lines
3.4 KiB
JavaScript
50 lines
3.4 KiB
JavaScript
/**
|
||
* 排版类清单 —— 单一事实源(后台编辑器面板与文档共用)。
|
||
* 与 src/styles/global.css 的「受限排版类/语义色板」段、src/lib/rehype-class-whitelist.ts 的白名单三处保持一致:
|
||
* 加类时三处同改,否则构建期白名单会把新类剥掉。
|
||
*
|
||
* swatch / family 仅供**后台面板预览**使用(后台无站点 CSS 变量,故给具体值):
|
||
* swatch 取亮态值(后台是浅色 UI),family 为该类的真实字体栈。
|
||
*/
|
||
window.TYPOGRAPHY_CLASSES = {
|
||
font: [
|
||
{ cls: 'font-serif', label: '思源宋(书评正文)', family: '"Noto Serif SC", Georgia, serif', kind: '自托管' },
|
||
{ cls: 'font-kai', label: '霞鹜文楷(金句)', family: '"LXGW WenKai Screen", "Songti SC", serif', kind: '自托管' },
|
||
{ cls: 'font-sans', label: '思源黑(UI/技术)', family: '"Noto Sans SC", system-ui, sans-serif', kind: '自托管' },
|
||
{ cls: 'font-mono', label: 'JetBrains Mono(等宽)', family: '"JetBrains Mono", ui-monospace, monospace', kind: '自托管' },
|
||
{ cls: 'font-song', label: '宋体族', family: '"Noto Serif SC", "Songti SC", SimSun, serif', kind: '自托管优先' },
|
||
{ cls: 'font-kai-sys', label: '楷体族', family: '"LXGW WenKai Screen", "Kaiti SC", STKaiti, serif', kind: '自托管优先' },
|
||
{ cls: 'font-hei-sys', label: '黑体族', family: '"Noto Sans SC", "PingFang SC", "Microsoft YaHei", sans-serif', kind: '自托管优先' },
|
||
{ cls: 'font-fangsong', label: '仿宋族', family: 'FangSong, STFangsong, serif', kind: '系统回退' },
|
||
{ cls: 'font-huiwen', label: '汇文明朝体', family: '"WF-Hwmc", serif', kind: '自托管' },
|
||
{ cls: 'font-kuaile', label: '站酷快乐体', family: '"ZCOOL KuaiLe", serif', kind: '自托管' },
|
||
],
|
||
color: [
|
||
{ cls: 'ink-1', label: '最重(标题级)', swatch: '#111113' },
|
||
{ cls: 'ink-2', label: '正文', swatch: '#33343a' },
|
||
{ cls: 'ink-3', label: '次要(日期/元信息)', swatch: '#6b6e78' },
|
||
{ cls: 'ink-muted', label: '最淡(注释感)', swatch: '#70747c' },
|
||
{ cls: 'ink-warm', label: '暖调正文', swatch: '#3f362e' },
|
||
{ cls: 'ink-cool', label: '冷调正文', swatch: '#2f3742' },
|
||
{ cls: 'ink-faint', label: '最淡可读档', swatch: '#70747c' },
|
||
{ cls: 'ink-accent', label: '强调(链接色)', swatch: '#3454d1' },
|
||
{ cls: 'ink-accent-soft', label: '弱强调', swatch: '#4f66c2' },
|
||
{ cls: 'c-blue', label: '蓝', swatch: '#2456c9' },
|
||
{ cls: 'c-blue-soft', label: '蓝(soft)', swatch: '#4170dd' },
|
||
{ cls: 'c-teal', label: '青', swatch: '#0d7d74' },
|
||
{ cls: 'c-teal-soft', label: '青(soft)', swatch: '#0e847a' },
|
||
{ cls: 'c-green', label: '绿', swatch: '#1f7a3a' },
|
||
{ cls: 'c-green-soft', label: '绿(soft)', swatch: '#22853f' },
|
||
{ cls: 'c-yellow', label: '黄(已压暗)', swatch: '#7a5900' },
|
||
{ cls: 'c-yellow-soft', label: '黄(soft)', swatch: '#926a00' },
|
||
{ cls: 'c-orange', label: '橙', swatch: '#9a4a00' },
|
||
{ cls: 'c-orange-soft', label: '橙(soft)', swatch: '#ba5900' },
|
||
{ cls: 'c-red', label: '红', swatch: '#b32020' },
|
||
{ cls: 'c-red-soft', label: '红(soft)', swatch: '#db3737' },
|
||
{ cls: 'c-pink', label: '粉', swatch: '#a3246a' },
|
||
{ cls: 'c-pink-soft', label: '粉(soft)', swatch: '#ce3386' },
|
||
{ cls: 'c-purple', label: '紫', swatch: '#6a35b8' },
|
||
{ cls: 'c-purple-soft', label: '紫(soft)', swatch: '#8c5ed1' },
|
||
],
|
||
};
|