Font related improvements

This commit is contained in:
2026-08-13 12:05:47 -07:00
parent 4eda93cf24
commit acc4c117f7
19 changed files with 317 additions and 41 deletions
+22 -20
View File
@@ -12,28 +12,30 @@
## 设置
| 字段 | 范围/单位 | 行为 |
| ------------------------ | ----------- | -------------------------- |
| `themeId` | 主题 ID | 选择已安装的完整视觉主题 |
| `fontFamily` | 字体 ID | `song`、`fang-song`、`kai` |
| `fontBrightness` | 70–180% | 只调整文字亮度 |
| `viewerColor` | `#RRGGBB` | 可选的用户昵称颜色覆盖 |
| `danmakuColor` | `#RRGGBB` | 可选的弹幕正文颜色覆盖 |
| `fontScale` | 50–300% | 展开与收缩字号的统一比例 |
| `decorationLineWeight` | 50–300% | 边框、分隔线与古风边缘粗细 |
| `maxVisible` | 1–12 | 同时保留的消息卡数量 |
| `collapseAfterSeconds` | 2–120 秒 | 最新卡从展开态切换到紧凑态 |
| `unfoldDurationMs` | 200–5000 ms | 横向卷轴展开动画时间 |
| `motionIntensity` | 0–100% | 卡片、流光与焦点动画强度 |
| `particleCount` | 0–12 | 每卡星花粒子数量 |
| `particleSpeed` | 25–300% | 粒子动画速度 |
| `lowPerformanceMode` | boolean | 关闭高成本动态效果 |
| `highValueThreshold` | 千分之一元 | 高价值礼物起点 |
| `featuredValueThreshold` | 千分之一元 | 焦点礼物起点 |
| `show*` | boolean | 控制各事件类别订阅 |
| 字段 | 范围/单位 | 行为 |
| ------------------------ | ----------- | ------------------------------------------ |
| `themeId` | 主题 ID | 选择已安装的完整视觉主题 |
| `fontFamily` | 字体 ID | `song`、`fang-song`、`kai`、`liyu-shoushu` |
| `fontBrightness` | 70–180% | 只调整文字亮度 |
| `viewerColor` | `#RRGGBB` | 可选的用户昵称颜色覆盖 |
| `danmakuColor` | `#RRGGBB` | 可选的弹幕正文颜色覆盖 |
| `fontScale` | 50–300% | 展开与收缩字号的统一比例 |
| `decorationLineWeight` | 50–300% | 边框、分隔线与古风边缘粗细 |
| `maxVisible` | 1–12 | 同时保留的消息卡数量 |
| `collapseAfterSeconds` | 2–120 秒 | 最新卡从展开态切换到紧凑态 |
| `unfoldDurationMs` | 200–5000 ms | 横向卷轴展开动画时间 |
| `motionIntensity` | 0–100% | 卡片、流光与焦点动画强度 |
| `particleCount` | 0–12 | 每卡星花粒子数量 |
| `particleSpeed` | 25–300% | 粒子动画速度 |
| `lowPerformanceMode` | boolean | 关闭高成本动态效果 |
| `highValueThreshold` | 千分之一元 | 高价值礼物起点 |
| `featuredValueThreshold` | 千分之一元 | 焦点礼物起点 |
| `show*` | boolean | 控制各事件类别订阅 |
后端的 `OverlaySettings::sanitize` 是最终边界。控制台 range
input 只改善交互,不能取代服务端校验。字体 ID 只映射到前端预先注册的安全字体栈,不接受任意 CSS;OBS 设备缺少首选字体时会依次回退到可用衬线字体。颜色覆盖同样只接受六位十六进制颜色;留空时使用主题色,切换主题后会自动采用新主题的配色。
input 只改善交互,不能取代服务端校验。字体 ID 只映射到前端预先注册并由服务同域提供的 WOFF2 字体,不接受任意 CSS,也不依赖 OBS 设备安装的字体;`song`、`fang-song`、`kai`
与 `liyu-shoushu` 分别使用 Noto Serif SC、ZCOOL XiaoWei、LXGW
WenKai 与漓雨手书。颜色覆盖同样只接受六位十六进制颜色;留空时使用主题色,切换主题后会自动采用新主题的配色。
## 主题