feat(dev): 主题生成器——选图/拖位置/导出 zip
- dev/theme-builder/index.html:单文件、不联网、图片本地转 WebP - 预览与线上同机制(pattern + 6 槽 deco + page-image),拖拽反解 calc(50% - Npx) - 导出 CSS + 图片 + 安装说明,CSS 通过 TestThemeCSSComplete - 自检:?selftest=1 吐 CSS/zip 字节,?demo=1 载入示例
This commit is contained in:
@@ -59,3 +59,19 @@
|
||||
构图硬约束(左侧 22% 前景必须是空地,否则又回到"站在课桌上")、换图清单与定位公式。
|
||||
- 配色给的是**压白后的显示值** + 反算公式 `原色=(显示值-40.8)/0.84`,并特别标注袜子要用 `#ededed`
|
||||
而不是纯白(纯白会和背景粘连,抠图必然吃穿)。
|
||||
|
||||
## 10:40 主题生成器(dev/theme-builder)
|
||||
|
||||
- 单文件 `dev/theme-builder/index.html`:上传背景/人物/道具 → 拖拽调位置 → 导出 zip,
|
||||
解压到项目根即可新增主题。不联网、不起服务、图片全在浏览器本地转 WebP。
|
||||
- 预览用**和线上同一套机制**渲染(pattern + deco 6 层 + page-image,size/position 对齐),
|
||||
不是另画示意图;拖出来的「左沿像素」反解成 `calc(50% - Npx)`,换视口不跑位。
|
||||
- 导出包:`static/css/themes/<slug>.css` + `static/images/themes/<slug>/*.webp` + `INSTALL-<slug>.txt`。
|
||||
CSS 同时写浅色/深色两块,10 个必需令牌齐全——**实测通过 `TestThemeCSSComplete`**。
|
||||
- zip 自己实现(STORE + CRC32,约 40 行),不引 CDN;`unzip -t` 无错。
|
||||
- 踩坑:① 面板里 `c.text2` 写成 undefined(light 对象里才算出来的派生色,要用 `light.text2`);
|
||||
② `contain` 模式如果不按内容裁画布,会留大片透明边 → 导出宽高比全错;
|
||||
③ 预览容器 `grid-template-columns:340px 1fr` 会被 1512px 的 frame 撑破 → `minmax(0,1fr)`;
|
||||
④ 无头 Chrome 下 `canvas.toBlob` 的回调在 `--dump-dom` 前不触发 → 全部改 `toDataURL` 同步化,
|
||||
自检才能跑(`?selftest=1` 输出 CSS/zip 字节,`?demo=1` 载入示例素材)。
|
||||
- ⚠️ 预览里深色必须走「暗色渐变 + deco none」,否则会拿白天场景图压深底(和导出结果不一致)。
|
||||
|
||||
Reference in New Issue
Block a user