feat: 新增 page3 演职员表并拆分多页资源

- 新增 page3.html:无「天」背景的演职员表与火山场景
- 重构为页面专属 CSS/JS 与共用的 text-scene 渲染引擎
- PDF 导出支持 --page 参数
This commit is contained in:
rogerwang2008 committed 2026-11-11 00:13:14 +08:00
1 parent b9ed01d91b
commit 319ba1890a
11 files changed
+539 -258

No files matched your search

+69
View File
@@ -0,0 +1,69 @@
/* 三页共用:字体、页面骨架、文字网格与标题框 */
@font-face {
font-family: "Zpix";
src: url("../fonts/zpix.ttf") format("truetype");
font-display: swap;
}
* { box-sizing: border-box; }
html, body {
margin: 0;
padding: 0;
background: #000;
}
body {
min-height: 100dvh;
display: flex;
align-items: center;
justify-content: center;
overflow: hidden;
font-family: "Zpix", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei",
"Noto Sans SC", "Source Han Sans SC", sans-serif;
-webkit-text-size-adjust: 100%;
}
/* 28 列 × 44 行文字网格,1em = 1 个汉字;
字号统一在此控制,所有元素(含天线)字号一致 */
.scene {
position: relative;
font-size: min(3.4vw, calc(100dvh / 44));
line-height: 1em;
width: 28em;
height: 44em;
user-select: none;
font-kerning: none;
}
.line {
display: block;
height: 1em;
line-height: 1em;
white-space: pre;
/* Zpix 单字步进为 13/12 em,补偿回 1em,保证 28 列正好落在 28em 内 */
letter-spacing: -0.083333em;
}
/* 标题框:按整格扣出的黑色矩形,位置与尺寸由页面数据决定 */
.title-panel {
position: absolute;
z-index: 1;
display: flex;
align-items: center;
justify-content: center;
background: #000;
}
.title-panel .title {
margin: 0;
color: #e6e6e6;
font-size: 1.8em;
font-weight: 400;
line-height: 1;
letter-spacing: 0;
white-space: nowrap;
}
.title-panel .title-em { color: #fff; }
+1 -67
View File
@@ -1,70 +1,4 @@
@font-face {
font-family: "Zpix";
src: url("../fonts/zpix.ttf") format("truetype");
font-display: swap;
}
* { box-sizing: border-box; }
html, body {
margin: 0;
padding: 0;
background: #000;
}
body {
min-height: 100dvh;
display: flex;
align-items: center;
justify-content: center;
overflow: hidden;
font-family: "Zpix", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei",
"Noto Sans SC", "Source Han Sans SC", sans-serif;
-webkit-text-size-adjust: 100%;
}
/* 28 列 × 44 行文字网格,1em = 1 个汉字;
字号在这里统一控制,所有元素(含天线)字号完全一致 */
.scene {
position: relative;
font-size: min(3.4vw, calc(100dvh / 44));
line-height: 1em;
width: 28em;
height: 44em;
user-select: none;
font-kerning: none;
}
.line {
display: block;
height: 1em;
line-height: 1em;
white-space: pre;
/* Zpix 单字步进为 13/12 em,补偿回 1em,保证 28 列正好落在 28em 内 */
letter-spacing: -0.083333em;
}
/* —— 标题区:按整格扣出的黑色矩形,左右各留 3 格 —— */
.title-panel {
position: absolute;
z-index: 1;
display: flex;
align-items: center;
justify-content: center;
background: #000;
}
.title-panel .title {
margin: 0;
color: #e6e6e6;
font-size: 1.8em;
font-weight: 400;
line-height: 1;
letter-spacing: 0;
white-space: nowrap;
}
.title-panel .title-em { color: #fff; }
/* 第 1 页:天空、云、落日、飞鸟、天线与楼群配色 */
/* —— 背景:空白格里的淡色「天」 —— */
.sky { color: rgba(190, 200, 240, 0.15); }
+28
View File
@@ -0,0 +1,28 @@
/* 第 3 页:无「天」背景;只保留电线、麻雀、枪、草与前景标题 */
.wire { color: #8794a5; }
.sparrow { color: #ff7a3f; }
.gun { color: #8b6f55; }
.grass { color: #4fc353; }
.hydrant { color: #a93b43; }
/* 火山岩 / 熔岩参考色,按暗度 70% 压暗(保留 30% 明度) */
.rock { color: color-mix(in srgb, #d07a38 30%, #000); }
.lava-a { color: color-mix(in srgb, #ff8f3f 30%, #000); }
.lava-b { color: color-mix(in srgb, #ff5a2a 30%, #000); }
/* 前景标题:不参与网格,字号与位置自由;
top 的 em 相对自身 1.6em 字号,3.125em = 距顶部 5 个背景格 */
.credits {
position: absolute;
top: 3.125em;
left: 50%;
transform: translateX(-50%);
margin: 0;
color: #f2f2f2;
font-size: 1.6em;
font-weight: 400;
line-height: 1;
letter-spacing: 0;
white-space: nowrap;
z-index: 1;
}