@gitruck/cli 1.1.5 → 1.1.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENT.md +16 -7
- package/CHANGELOG.md +15 -0
- package/README.en.md +723 -711
- package/README.md +16 -5
- package/dist/index.js +212 -172
- package/package.json +3 -2
- package/skills/gtrk-ai-drama/SKILL.md +268 -267
- package/skills/gtrk-cover/SKILL.md +112 -111
- package/skills/gtrk-cover/assets/workbench-template.html +1088 -955
- package/skills/gtrk-cover/references/checklist.md +82 -81
- package/skills/gtrk-cover/references/workbench-guide.md +128 -99
- package/skills/gtrk-food-recap/SKILL.md +122 -104
- package/skills/gtrk-live-slicing/SKILL.md +227 -227
- package/skills/gtrk-matrix/SKILL.md +1 -0
- package/skills/gtrk-mg/SKILL.md +243 -242
- package/skills/gtrk-music-visualizer/SKILL.md +95 -94
- package/skills/gtrk-oralcut/SKILL.md +30 -29
- package/skills/gtrk-splitter/SKILL.md +247 -246
- package/skills/gtrk-style-maker/SKILL.md +6 -0
- package/skills/gtrk-tools/SKILL.md +1 -0
- package/skills/gtrk-transcript/SKILL.md +1 -0
- package/skills/gtrk-travel-recap/SKILL.md +16 -1
|
@@ -1,81 +1,82 @@
|
|
|
1
|
-
# 封面交付自检清单(两阶段 · 9 条硬规)
|
|
2
|
-
|
|
3
|
-
交付前**一条一条对着过**,不合格直接说不合格,不要糊弄。
|
|
4
|
-
按交付阶段分两组:阶段一在**交付 Prompt 时**核,阶段二在**交付排版工作台时**补核。
|
|
5
|
-
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
## 阶段一:交付 Prompt 时核(①~⑤)
|
|
9
|
-
|
|
10
|
-
### ☐ 1. 意象与视频核心概念一致
|
|
11
|
-
封面上的意象是不是**这个视频真正讲的东西**?
|
|
12
|
-
- 意象必须来自视频内容本身的视觉化,不能是随便一张好看的"情绪贴纸"。
|
|
13
|
-
- 栏目如有自己的「概念 → 意象」对照体系,从其封面风格资产读取并按其对照检验。
|
|
14
|
-
- **不合格的典型**:核心概念和画面互不相干,画面只负责好看。
|
|
15
|
-
|
|
16
|
-
### ☐ 2. 情绪与视觉对齐
|
|
17
|
-
当期情绪基调和**色板 + 表情 + 构图**是否对齐?
|
|
18
|
-
- 栏目风格资产如定义了情绪轴 / 情绪-色板绑定,按其轴判;未定义则按常识判。
|
|
19
|
-
- 常识底线:绝望段不要画笑脸;克制段不要画嚎叫;悬念钩子要有"正在降临"的不祥感而不是已经发生的惨状。
|
|
20
|
-
|
|
21
|
-
### ☐ 3. 封面与标题的互文
|
|
22
|
-
封面大字(T1)和视频标题是否**组成完整钩子**?
|
|
23
|
-
- 通过检验:只看标题不看封面,信息不完整;只看封面不看标题,也不完整;两者合起来才完整。
|
|
24
|
-
- 不通过:封面上直接把标题原样写了一遍(重复冗余);或者封面字和标题完全无关(脱节)。
|
|
25
|
-
- T1 通常是用户自己拟的 4~10 字核心句,**本 skill 不擅自改写 T1 内容**,只能建议字体 / 拆分 / 重音处理。
|
|
26
|
-
|
|
27
|
-
### ☐ 4. 材质层已写进 Prompt
|
|
28
|
-
Prompt 里是否至少叠加了 1 层胶片颗粒 / 纸张纹理 / 印刷网点?
|
|
29
|
-
- 没有材质层 = AI 直出光滑感,与目标质感有明显差距。
|
|
30
|
-
|
|
31
|
-
### ☐ 5. 生成图低级错误提示
|
|
32
|
-
是否向用户显式提示了生成图的常见低级错误,提醒挑图时逐项检查?
|
|
33
|
-
- 多出来的手指 / 眼睛 / 发丝等解剖错误。
|
|
34
|
-
- 中文字符乱码。
|
|
35
|
-
- 手部特写、多人交叠等高危题材要**显式提醒**用户多生成几张挑图。
|
|
36
|
-
|
|
37
|
-
---
|
|
38
|
-
|
|
39
|
-
## 阶段二:交付排版工作台时补核(⑥~⑨)
|
|
40
|
-
|
|
41
|
-
### ☐ 6. 字的主视觉重量
|
|
42
|
-
T1 在画面里是否具有**主视觉重量**,手机缩略图上能读清?
|
|
43
|
-
- 4 字 T1:单字高度 ≥ 画面高 15%(整体 T1 区 ≥ 35%)。
|
|
44
|
-
- 6~8 字 T1(含对偶):每半句字号保证手机缩略图上能读清。
|
|
45
|
-
- 长句 T1 必须用"关键词重音法"——关键词字号明显大于副行,否则整句堆成同样大会糊。
|
|
46
|
-
- 铁律:最大化利用可用区域。
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
-
|
|
56
|
-
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
-
|
|
62
|
-
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
1
|
+
# 封面交付自检清单(两阶段 · 9 条硬规)
|
|
2
|
+
|
|
3
|
+
交付前**一条一条对着过**,不合格直接说不合格,不要糊弄。
|
|
4
|
+
按交付阶段分两组:阶段一在**交付 Prompt 时**核,阶段二在**交付排版工作台时**补核。
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## 阶段一:交付 Prompt 时核(①~⑤)
|
|
9
|
+
|
|
10
|
+
### ☐ 1. 意象与视频核心概念一致
|
|
11
|
+
封面上的意象是不是**这个视频真正讲的东西**?
|
|
12
|
+
- 意象必须来自视频内容本身的视觉化,不能是随便一张好看的"情绪贴纸"。
|
|
13
|
+
- 栏目如有自己的「概念 → 意象」对照体系,从其封面风格资产读取并按其对照检验。
|
|
14
|
+
- **不合格的典型**:核心概念和画面互不相干,画面只负责好看。
|
|
15
|
+
|
|
16
|
+
### ☐ 2. 情绪与视觉对齐
|
|
17
|
+
当期情绪基调和**色板 + 表情 + 构图**是否对齐?
|
|
18
|
+
- 栏目风格资产如定义了情绪轴 / 情绪-色板绑定,按其轴判;未定义则按常识判。
|
|
19
|
+
- 常识底线:绝望段不要画笑脸;克制段不要画嚎叫;悬念钩子要有"正在降临"的不祥感而不是已经发生的惨状。
|
|
20
|
+
|
|
21
|
+
### ☐ 3. 封面与标题的互文
|
|
22
|
+
封面大字(T1)和视频标题是否**组成完整钩子**?
|
|
23
|
+
- 通过检验:只看标题不看封面,信息不完整;只看封面不看标题,也不完整;两者合起来才完整。
|
|
24
|
+
- 不通过:封面上直接把标题原样写了一遍(重复冗余);或者封面字和标题完全无关(脱节)。
|
|
25
|
+
- T1 通常是用户自己拟的 4~10 字核心句,**本 skill 不擅自改写 T1 内容**,只能建议字体 / 拆分 / 重音处理。
|
|
26
|
+
|
|
27
|
+
### ☐ 4. 材质层已写进 Prompt
|
|
28
|
+
Prompt 里是否至少叠加了 1 层胶片颗粒 / 纸张纹理 / 印刷网点?
|
|
29
|
+
- 没有材质层 = AI 直出光滑感,与目标质感有明显差距。
|
|
30
|
+
|
|
31
|
+
### ☐ 5. 生成图低级错误提示
|
|
32
|
+
是否向用户显式提示了生成图的常见低级错误,提醒挑图时逐项检查?
|
|
33
|
+
- 多出来的手指 / 眼睛 / 发丝等解剖错误。
|
|
34
|
+
- 中文字符乱码。
|
|
35
|
+
- 手部特写、多人交叠等高危题材要**显式提醒**用户多生成几张挑图。
|
|
36
|
+
|
|
37
|
+
---
|
|
38
|
+
|
|
39
|
+
## 阶段二:交付排版工作台时补核(⑥~⑨)
|
|
40
|
+
|
|
41
|
+
### ☐ 6. 字的主视觉重量
|
|
42
|
+
T1 在画面里是否具有**主视觉重量**,手机缩略图上能读清?
|
|
43
|
+
- 4 字 T1:单字高度 ≥ 画面高 15%(整体 T1 区 ≥ 35%)。
|
|
44
|
+
- 6~8 字 T1(含对偶):每半句字号保证手机缩略图上能读清。
|
|
45
|
+
- 长句 T1 必须用"关键词重音法"——关键词字号明显大于副行,否则整句堆成同样大会糊。
|
|
46
|
+
- 铁律:最大化利用可用区域。
|
|
47
|
+
- 描边为 0 时字形完整无镂空(特黑字体加描边会描出部件内部轮廓);用户在工作台切过字体后,缩略图仍可读——字重档位要跟着字体的可用字面走。
|
|
48
|
+
|
|
49
|
+
### ☐ 7. 留字位落点
|
|
50
|
+
默认文字坐标是否落在画面的**气口**(干净留白区)?
|
|
51
|
+
- 主体没把所有关键区域吃满;文字区背景干净、无高频细节干扰。
|
|
52
|
+
- 栏目风格资产如有留白 / 密度规范,按其规范判。
|
|
53
|
+
|
|
54
|
+
### ☐ 8. 身份锚不编造
|
|
55
|
+
- 用户给了栏目名 → 品牌戳是否合理放置(没压主视觉,没挤出安全区)?
|
|
56
|
+
- 用户没给 → 是否没瞎编,排版稿里老实标注"未提供,可省略"?
|
|
57
|
+
- 期号同上逻辑。
|
|
58
|
+
|
|
59
|
+
### ☐ 9. 分发平台安全区
|
|
60
|
+
按用户的分发平台适配安全区,关键元素(T1 / 主体五官 / 身份锚)不进裁切与遮挡区。
|
|
61
|
+
- B 站参考值:右上 1/8 角标区、底部 1/10 进度条灰化区。
|
|
62
|
+
- 其他平台按各自的裁切 / 遮挡规则判,不作无条件硬规。
|
|
63
|
+
- 主体脸不被 T1 大字压到"看不出表情"(可以压边缘,不可以压到五官中心)。
|
|
64
|
+
|
|
65
|
+
---
|
|
66
|
+
|
|
67
|
+
## 输出时的写法
|
|
68
|
+
|
|
69
|
+
```
|
|
70
|
+
自检结果(阶段一):
|
|
71
|
+
1. 意象与核心概念 ✅ — 核心概念的视觉化贯穿主体
|
|
72
|
+
2. 情绪与视觉对齐 ✅ — 冷峻诊断段,冷色板吻合(依栏目风格资产)
|
|
73
|
+
3. 封面-标题互文 ⚠️ — T1 与标题组成钩子,但建议 T1 拆为单字重音,让标题承担更多
|
|
74
|
+
4. 材质层 ✅ — Prompt 已含胶片颗粒
|
|
75
|
+
5. 低级错误提示 ⚠️ — 含手部特写,已提醒多张挑图并检查手指
|
|
76
|
+
|
|
77
|
+
自检结果(阶段二):
|
|
78
|
+
6. 字够大 ✅
|
|
79
|
+
7. 留字位落点 ✅
|
|
80
|
+
8. 身份锚 ❓ — 尚未提供栏目名,已标注"未提供,可省略"
|
|
81
|
+
9. 平台安全区 ✅ — 按 B 站规则避开右上角标区与底部进度条区
|
|
82
|
+
```
|
|
@@ -1,99 +1,128 @@
|
|
|
1
|
-
# 工作台实例化指南(workbench-guide)
|
|
2
|
-
|
|
3
|
-
`assets/workbench-template.html` 是**中性活范本**:一份完整可运行的排字工作台(拖拽 / 方向键 / 数值 / 滚轮微调、逐尺寸与一键导出),实例化 = 逐替换位换成当期值。本文是替换位总表 + 工程注意 + 合规检查。
|
|
4
|
-
|
|
5
|
-
## 0. 分工提醒
|
|
6
|
-
|
|
7
|
-
模板的 **JS 引擎层不要动**:拖拽 / 方向键 / 滚轮 / 图层选中 / 舞台缩放(负 margin 占位)/ 导出(html2canvas)都是通用基建。要动的只有**数据与样式**:占位符、常量、DEFAULTS、CSS 变量与字体、图层组。
|
|
8
|
-
|
|
9
|
-
## 1. 替换位总表
|
|
10
|
-
|
|
11
|
-
| 替换位 | 位置 | 说明 |
|
|
12
|
-
|---|---|---|
|
|
13
|
-
| `__BG_16_9__` / `__BG_4_3__` / `__BG_3_4__` | 各 `.cover` 的 `<img class="bg">` | 唯一的显式占位符:换成 `data:image/jpeg;base64,<压缩后>` |
|
|
14
|
-
| `<title>` / `<h1>` / `.sub` / 3 个 `.pill` | 头部 | 当期 T1、英文副题、布局名 / 色板名 / 操作提示 |
|
|
15
|
-
| `T1_KEYS` 常量 | script 顶部 | **T1 字数驱动的总开关**,见 §2 |
|
|
16
|
-
| `#t1-text` 的 `value` 与 `maxlength`、`state.t1Text` | 右栏 + script | T1 初值**两处**必须一致 |
|
|
17
|
-
| 各 `.cover` 内的 `char*` div 组 | 三个 cover | 数量与 `T1_KEYS` 一致、initial 文本逐字填 |
|
|
18
|
-
| `t2 / t5 / t4` 初始文案 | cover 内 div **与** DEFAULTS `text` 双处 | 副标题(≤12 字钩子)/ 装饰英文 / 品牌戳(用户没给就 `visible:false` 且不编内容) |
|
|
19
|
-
| `DEFAULTS` 整块 | script | 三尺寸 × 全图层默认坐标:从 layout-recipes 选配方起步,再按实际画面气口微调 |
|
|
20
|
-
| `:root` 色板变量 | CSS | 见 §3 |
|
|
21
|
-
| `.t1` 字体 / 描边 / 发光 | CSS **与** `applyT1Style()` | 发光 rgba **两处**(CSS 初值 + JS
|
|
22
|
-
|
|
|
23
|
-
|
|
|
24
|
-
|
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
| `--
|
|
42
|
-
| `--
|
|
43
|
-
| `--amber
|
|
44
|
-
| `--
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
-
|
|
75
|
-
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
-
|
|
81
|
-
-
|
|
82
|
-
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
-
|
|
88
|
-
-
|
|
89
|
-
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
- [ ]
|
|
96
|
-
- [ ] DEFAULTS
|
|
97
|
-
- [ ]
|
|
98
|
-
- [ ]
|
|
99
|
-
- [ ]
|
|
1
|
+
# 工作台实例化指南(workbench-guide)
|
|
2
|
+
|
|
3
|
+
`assets/workbench-template.html` 是**中性活范本**:一份完整可运行的排字工作台(拖拽 / 方向键 / 数值 / 滚轮微调、逐尺寸与一键导出),实例化 = 逐替换位换成当期值。本文是替换位总表 + 工程注意 + 合规检查。
|
|
4
|
+
|
|
5
|
+
## 0. 分工提醒
|
|
6
|
+
|
|
7
|
+
模板的 **JS 引擎层不要动**:拖拽 / 方向键 / 滚轮 / 图层选中 / 舞台缩放(负 margin 占位)/ 导出(html2canvas)都是通用基建。要动的只有**数据与样式**:占位符、常量、DEFAULTS、CSS 变量与字体、图层组。
|
|
8
|
+
|
|
9
|
+
## 1. 替换位总表
|
|
10
|
+
|
|
11
|
+
| 替换位 | 位置 | 说明 |
|
|
12
|
+
|---|---|---|
|
|
13
|
+
| `__BG_16_9__` / `__BG_4_3__` / `__BG_3_4__` | 各 `.cover` 的 `<img class="bg">` | 唯一的显式占位符:换成 `data:image/jpeg;base64,<压缩后>` |
|
|
14
|
+
| `<title>` / `<h1>` / `.sub` / 3 个 `.pill` | 头部 | 当期 T1、英文副题、布局名 / 色板名 / 操作提示 |
|
|
15
|
+
| `T1_KEYS` 常量 | script 顶部 | **T1 字数驱动的总开关**,见 §2 |
|
|
16
|
+
| `#t1-text` 的 `value` 与 `maxlength`、`state.t1Text` | 右栏 + script | T1 初值**两处**必须一致 |
|
|
17
|
+
| 各 `.cover` 内的 `char*` div 组 | 三个 cover | 数量与 `T1_KEYS` 一致、initial 文本逐字填 |
|
|
18
|
+
| `t2 / t5 / t4` 初始文案 | cover 内 div **与** DEFAULTS `text` 双处 | 副标题(≤12 字钩子)/ 装饰英文 / 品牌戳(用户没给就 `visible:false` 且不编内容) |
|
|
19
|
+
| `DEFAULTS` 整块 | script | 三尺寸 × 全图层默认坐标:从 layout-recipes 选配方起步,再按实际画面气口微调 |
|
|
20
|
+
| `:root` 色板变量 | CSS | 见 §3 |
|
|
21
|
+
| `.t1` 字体 / 描边 / 发光 | CSS **与** `applyT1Style()` | 发光 rgba **两处**(CSS 初值 + JS 滑杆模板串)必须同色;描边缺省 0(见 §8) |
|
|
22
|
+
| `T1_DEFAULT_FONT` 常量 | script 顶部 | **当期默认字**(family / weight / label)= skill 按栏目字体选型或中性默认做的审美决策,是字体下拉的首项;与 CSS `.t1` 的 font-family / font-weight **两处一致**(首帧无闪)。下拉其余项来自用户本机字体,见 §10 |
|
|
23
|
+
| `#t1-color` 选项 / 发光滑杆 label 与默认值 | 右栏 | 按栏目色板给 2~3 档字色;发光名跟色板叫(银辉 / 琥珀 / …) |
|
|
24
|
+
| 装饰件默认开关 | 右栏 checkbox + `applyInner/applyCorner` | 当期装饰件决策的落点 |
|
|
25
|
+
| 尺寸 tab 的 `.desc` | 左栏 | 标注当期布局(如「左人右字」「上下分飞」) |
|
|
26
|
+
|
|
27
|
+
## 2. T1 字数驱动(防「四字机器」回潮)
|
|
28
|
+
|
|
29
|
+
模板 T1 图层数由 `T1_KEYS` 常量驱动。当期 T1 为 N 字时,改四处并保持一致:
|
|
30
|
+
1. `T1_KEYS = ['char1', …, 'charN']`;
|
|
31
|
+
2. 每个 `.cover` 内放 N 个 `char*` div(initial 逐字填);
|
|
32
|
+
3. `#t1-text` 的 `maxlength="N"` 与 `value`;
|
|
33
|
+
4. `DEFAULTS` 三尺寸各含 N 条 `char*` 坐标。
|
|
34
|
+
|
|
35
|
+
`applyT1Text / renderCharBlocks / applyT1SizeAll` 都吃 `T1_KEYS`,不用改。`#t1-size-all` 滑杆的 min/max 按字号量级调(4 字大字 280~800;5 字竖排 150~700)。
|
|
36
|
+
|
|
37
|
+
## 3. 色板 CSS 变量(变量名固定、换值即换装)
|
|
38
|
+
|
|
39
|
+
| 变量 | 语义 | 用途 |
|
|
40
|
+
|---|---|---|
|
|
41
|
+
| `--midnight` | 最深底色 | 画布底、T1 描边、色块 |
|
|
42
|
+
| `--indigo` | 次深色 | 氛围渐变 |
|
|
43
|
+
| `--amber` | **强调色**(语义槽位,不必是琥珀) | UI 强调、选中框、导出钮、T5/装饰可用 |
|
|
44
|
+
| `--amber-soft` | 强调色柔化档 | hover、副文本 |
|
|
45
|
+
| `--bone` | 浅色字底 | T1 默认字色、浅 UI 文本 |
|
|
46
|
+
|
|
47
|
+
值从**栏目封面风格资产的色板表**取;无资产用模板自带中性值。UI chrome 与画布共用这套变量——换值后整个工作台会跟着栏目气质走,这是特性不是 bug。
|
|
48
|
+
|
|
49
|
+
## 4. 附加文字图层(品牌戳 / 拟声词 / 任意)
|
|
50
|
+
|
|
51
|
+
图层机制对非 T1 图层是通用的(`applyLayers` 按 `ls.type !== 't1'` 走 text/visible 同步)。加一个图层四步:
|
|
52
|
+
1. `DEFAULTS` 三尺寸各加条目 `{type:'<自定义>', pos, text, left, top, size, visible}`;
|
|
53
|
+
2. 每个 `.cover` 加 `<div class="layer-text <类名>" data-layer-key="<key>">初值</div>`;
|
|
54
|
+
3. `SUB_KEYS` / `SUB_LABELS` 登记(右栏出微调 block);
|
|
55
|
+
4. CSS 加 `.<类名>` 样式(字体 / 颜色 / z-index;旋转等静态变换写在类里,不影响拖拽)。
|
|
56
|
+
|
|
57
|
+
已验证先例:品牌戳(手写体、可拖)、拟声词(手写体 + 静态旋转 + 强调色,「全画面唯一与强调色同源的字」这类点睛用法)。
|
|
58
|
+
|
|
59
|
+
## 5. 逐尺寸样式覆写(浅底反转墨色技法)
|
|
60
|
+
|
|
61
|
+
某一尺寸的背景局部是浅色(如竖版下段渐变成纸面)时,可把该尺寸的文字整体反转为深色:
|
|
62
|
+
|
|
63
|
+
```css
|
|
64
|
+
/* 覆写 .t1 必须 !important —— applyT1Style() 会写内联样式 */
|
|
65
|
+
.cover[data-size="3_4"] .t1 { color: #16233A !important; -webkit-text-stroke: 0 transparent !important; text-shadow: 0 2px 12px rgba(20,30,50,0.18) !important; }
|
|
66
|
+
/* t2/t5/t4 无内联色,普通级联即可 */
|
|
67
|
+
.cover[data-size="3_4"] .t2 { color: rgba(30,58,95,0.92); text-shadow: none; }
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
交付时必须告知用户:**该尺寸不受全局字色 / 发光滑杆影响**,是当期审美决策。
|
|
71
|
+
|
|
72
|
+
## 6. 装饰件片段
|
|
73
|
+
|
|
74
|
+
- **薄内框**(装裱感):`.inner-frame { position:absolute; inset:50px; border:2px solid <色>; pointer-events:none; z-index:5; }` + 右栏开关 + `applyInner()`(模板已带,默认关)。浅底尺寸配 §5 覆写深色框。
|
|
75
|
+
- **四角断线框**:模板已带(`.corner` ×4 + 开关,默认关)。
|
|
76
|
+
- 胶带 / 撕痕 / REC 取景框等:按当期气质现写(绝对定位 + `pointer-events:none` + `z-index:5`,加进每个 `.cover`);**装饰件是显式决策**——用或不用都要说理由。
|
|
77
|
+
|
|
78
|
+
## 7. 背景图归位与压缩
|
|
79
|
+
|
|
80
|
+
- **归位按宽高比**:`w/h ≥ 1.55 → 16:9`;`≥ 1.15 → 4:3`;否则 `3:4`。同档有多张时显式选择并告知备选(用户可用左栏「上传当前尺寸的背景图」随时换)。归不上任何档就问,别硬塞。
|
|
81
|
+
- **压缩参数**(JPEG、渐进式):16:9 长边 ≤1280 / q82;4:3 ≤1600 / q78;3:4 ≤1400 / q78。纹理极密的图压不动属正常,别为体积牺牲画质到 q70 以下。
|
|
82
|
+
- **体积红线**:整份 HTML **>1MB 必须回头降参**(浏览器打开明显变慢);>600KB 提示一句即可。
|
|
83
|
+
- **纪律**:从**原路径**读用户图,压缩产物直接 base64 进 HTML;压缩脚本落**系统 temp、用完即删**;不留任何中间图片副本。
|
|
84
|
+
|
|
85
|
+
## 8. 工程注意(踩过的坑)
|
|
86
|
+
|
|
87
|
+
- **缩放占位**:画布用 `transform: scale` 只缩视觉不缩布局,模板已用「`transform-origin: top left` + 负 margin」把占位收缩到缩放后尺寸——**别改回直接设小宽高**(会让外框阴影只包住左上角)。
|
|
88
|
+
- **导出**:html2canvas 对发光 text-shadow 的还原略弱于屏显,用户觉得弱就把发光滑杆 +10~15% 再导;一键导出首次会触发浏览器「允许下载多个文件」授权,交付时提示。
|
|
89
|
+
- **布局状态在内存**:刷新页面回默认坐标——交付时提醒「调好就导出,导出前别刷新」。
|
|
90
|
+
- **字体**:模板经字体服务引入(含手写体),首次打开需联网;断网回退系统字体、不阻塞。
|
|
91
|
+
- **描边缺省 0,别再调回 2**:思源黑 / 思源宋这类**重叠轮廓**(overlapping contours)的特黑字体,`-webkit-text-stroke` 会把每个部件的内部轮廓全描出来——字变成镂空积木;缩略预览看不出,导出才炸(2026-09-08 真机)。托底靠 `.t1` 的暗色多层 `text-shadow`;描边滑杆保留给单轮廓字体。
|
|
92
|
+
|
|
93
|
+
## 9. 实例化后合规检查(交付前必过)
|
|
94
|
+
|
|
95
|
+
- [ ] 占位符零残留(全文检索 `__BG_` 无命中);
|
|
96
|
+
- [ ] `T1_KEYS` 长度 = 各 cover 的 char div 数 = `maxlength` = DEFAULTS char 条目数;
|
|
97
|
+
- [ ] T1 初值两处一致(`#t1-text` value 与 `state.t1Text`);
|
|
98
|
+
- [ ] DEFAULTS 三尺寸齐、每尺寸含全部图层条目;
|
|
99
|
+
- [ ] 发光 rgba 在 CSS 与 `applyT1Style()` 两处同色;
|
|
100
|
+
- [ ] 默认坐标避开用户分发平台的安全区(如 B 站横版底部 1/10 进度条灰化区、右上 1/8 角标区);
|
|
101
|
+
- [ ] 能验就在浏览器验一遍:控制台零报错、三尺寸切换正常、图层可拖;
|
|
102
|
+
- [ ] 字体下拉首项 = `T1_DEFAULT_FONT`,打开即列出本机已装字体(候选表探测),Chromium 点「读取本机字体」能拿全量,自由输入回车生效;描边为 0 时字形无镂空。
|
|
103
|
+
|
|
104
|
+
## 10. T1 字体:读用户本机(主理人 2026-09-08 拍板)
|
|
105
|
+
|
|
106
|
+
字体是用户本机能决定的事,模板不再把它当实例化期常量。右栏「字体」下拉三级取数,任一级成功即可用:
|
|
107
|
+
|
|
108
|
+
| 级 | 手段 | 何时 | 说明 |
|
|
109
|
+
|---|---|---|---|
|
|
110
|
+
| ① | Local Font Access API `queryLocalFonts()` | 用户点「读取本机字体」并授权(Chromium 103+,`file://` 与 `localhost` 都算安全上下文) | 全量 family,按 family 去重,中文名排前 |
|
|
111
|
+
| ② | 候选表探测 | 打开即跑,且 ① 不存在 / 被拒时兜底 | 对模板常量 `LOCAL_FONT_CANDIDATES`(常见中文字体,中英文名两写法)逐个用 canvas `measureText` 宽度对比判是否已装。**不用 `document.fonts.check()`**,它对系统字体恒 true |
|
|
112
|
+
| ③ | 自由输入 | ①② 都没列出(刚装的、名字带空格的) | 文本框敲 family 名回车即应用;探测不到会提示核对名字 |
|
|
113
|
+
|
|
114
|
+
三级全失败不阻塞:下拉只剩「当期默认」,其余功能照常。
|
|
115
|
+
|
|
116
|
+
- **默认字仍归 skill**:`T1_DEFAULT_FONT` 是审美决策(栏目封面风格资产的字体选型 / 中性默认),交付时说理由;下拉切换是微调面(SKILL.md 铁律 3)。
|
|
117
|
+
- **字重独立成档**(400 / 700 / 900,写数值):本机字体字重面各异,浏览器按最近字面匹配。
|
|
118
|
+
- **不持久化**:与坐标同口径,刷新回默认。
|
|
119
|
+
- **不嵌字体文件**:一款中文字体 5–20MB,体积红线直接爆。
|
|
120
|
+
- **`LOCAL_FONT_CANDIDATES` 是引擎层常量**,按栏目改的是 `T1_DEFAULT_FONT`,不是候选表;想让某款字体免授权出现在下拉里再往候选表加。
|
|
121
|
+
|
|
122
|
+
### 与 MG 颗粒字体口径的分界(别互相套)
|
|
123
|
+
|
|
124
|
+
| | MG 颗粒 | 封面工作台 |
|
|
125
|
+
|---|---|---|
|
|
126
|
+
| 渲染在哪 | 同合云渲染服务端(gsap-emit v1 铁律 6:字体名 MUST 命中服务端注册表) | 用户本机浏览器 |
|
|
127
|
+
| 导出在哪 | 服务端逐帧 seek | 本机 `html2canvas` |
|
|
128
|
+
| 本机字体 | **不可用** | **完全可用** |
|