@taloswork/ose-shared 0.1.10 → 0.1.12
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/package.json +3 -3
- package/skills/document/SKILL.md +143 -215
- package/skills/document/art-directions/base.css +27 -2
- package/skills/document/art-directions/cinematic-depth.css +3 -1
- package/skills/document/art-directions/collage-paper.css +5 -1
- package/skills/document/art-directions/editorial-cut.css +5 -1
- package/skills/document/art-directions/geometric-pop.css +6 -0
- package/skills/document/art-directions/gradient-mesh.css +5 -1
- package/skills/document/art-directions/illustrated-doodle.css +5 -0
- package/skills/document/art-directions/luxury-ornament.css +4 -1
- package/skills/document/art-directions/maximalist-blocks.css +6 -0
- package/skills/document/art-directions/technical-grid.css +4 -0
- package/skills/document/assets/fonts/fonts.json +2 -2
- package/skills/document/assets/pdf-fonts/NotoSansSC-PDF-Bold.ttf +0 -0
- package/skills/document/assets/pdf-fonts/NotoSansSC-PDF-Regular.ttf +0 -0
- package/skills/document/assets/pdf-fonts/OFL.txt +93 -0
- package/skills/document/assets/pdf-fonts/README.md +35 -0
- package/skills/document/assets/tessdata/LICENSE-Apache-2.0.txt +202 -0
- package/skills/document/assets/tessdata/README.md +21 -0
- package/skills/document/assets/tessdata/chi_sim.traineddata.gz +0 -0
- package/skills/document/assets/tessdata/eng.traineddata.gz +0 -0
- package/skills/document/bin/deck-build.cjs +2311 -41
- package/skills/document/bin/deck-chart.cjs +762 -0
- package/skills/document/bin/deck-plan.cjs +802 -0
- package/skills/document/bin/deck-qa.cjs +984 -249
- package/skills/document/bin/deck-scenario.cjs +1346 -0
- package/skills/document/bin/doc-convert.cjs +130 -39
- package/skills/document/bin/doc-fill.cjs +73121 -170
- package/skills/document/bin/doc-gen.cjs +625 -68
- package/skills/document/bin/doc-run.cjs +162 -24
- package/skills/document/bin/doc-scan.cjs +13 -0
- package/skills/document/bin/doc-text.cjs +13 -0
- package/skills/document/bin/doc-validate.cjs +718 -23
- package/skills/document/bin/doc-xml.cjs +9 -5
- package/skills/document/bin/docx-annotate.cjs +95 -19
- package/skills/document/bin/fontkit.cjs +1 -0
- package/skills/document/bin/html2pptx.cjs +1372 -121
- package/skills/document/bin/ocr-worker.cjs +1 -0
- package/skills/document/bin/ocr.cjs +131 -40
- package/skills/document/bin/pdf-form.cjs +674 -177
- package/skills/document/bin/pdf-images.cjs +13 -0
- package/skills/document/bin/pdf-ops.cjs +634 -199
- package/skills/document/bin/pdf-render.cjs +19 -3
- package/skills/document/bin/pdf-tables.cjs +13 -0
- package/skills/document/bin/pptx-clone.cjs +3 -3
- package/skills/document/bin/pptx-slide.cjs +3 -3
- package/skills/document/bin/xlsx-query.cjs +192 -61
- package/skills/document/bin-reference.md +56 -33
- package/skills/document/content-pipeline.md +129 -242
- package/skills/document/deck-design.md +355 -638
- package/skills/document/layouts/README.md +46 -33
- package/skills/document/layouts/capacity.json +1 -0
- package/skills/document/layouts/slots.json +1 -1
- package/skills/document/layouts/toc-panel.tpl +1 -1
- package/skills/document/motion/README.md +3 -2
- package/skills/document/office.md +3 -3
- package/skills/document/packs/board-brief/backdrop.html +2 -0
- package/skills/document/packs/board-brief/pack.css +2 -1
- package/skills/document/packs/mckinsey-photo/backdrop.html +2 -0
- package/skills/document/packs/mckinsey-photo/pack.css +2 -1
- package/skills/document/packs/press-room/backdrop.html +2 -0
- package/skills/document/packs/press-room/pack.css +2 -1
- package/skills/document/packs/prismatic-3d/backdrop.html +2 -0
- package/skills/document/packs/prismatic-3d/pack.css +4 -1
- package/skills/document/pdf.md +53 -49
- package/skills/document/rewrite.md +241 -308
- package/skills/document/scenarios.json +1290 -0
- package/skills/document/scenarios.schema.json +103 -0
- package/skills/document/styles/README.md +15 -25
- package/skills/document/styles/_contract-defaults.css +25 -1
- package/skills/document/styles/anthropic/skin.css +6 -3
- package/skills/document/styles/apple/skin.css +4 -3
- package/skills/document/styles/bistro-warm/backdrop.html +2 -0
- package/skills/document/styles/bistro-warm/skin.css +4 -1
- package/skills/document/styles/black-gold/skin.css +6 -5
- package/skills/document/styles/bold-clash/backdrop.html +2 -0
- package/skills/document/styles/bold-clash/skin.css +2 -1
- package/skills/document/styles/branding/skin.css +4 -4
- package/skills/document/styles/campus-teal/backdrop.html +2 -0
- package/skills/document/styles/campus-teal/skin.css +2 -1
- package/skills/document/styles/cinereel/skin.css +7 -3
- package/skills/document/styles/clinic-care/backdrop.html +2 -0
- package/skills/document/styles/clinic-care/skin.css +2 -1
- package/skills/document/styles/cool/skin.css +6 -5
- package/skills/document/styles/dark-glass/backdrop.html +2 -0
- package/skills/document/styles/dark-glass/skin.css +2 -1
- package/skills/document/styles/gov-brief/backdrop.html +2 -0
- package/skills/document/styles/gov-brief/skin.css +2 -1
- package/skills/document/styles/grid-tech/backdrop.html +2 -0
- package/skills/document/styles/grid-tech/skin.css +2 -1
- package/skills/document/styles/hand-drawn/skin.css +3 -3
- package/skills/document/styles/ivory-gold/skin.css +7 -6
- package/skills/document/styles/legal-slate/backdrop.html +2 -0
- package/skills/document/styles/legal-slate/skin.css +2 -1
- package/skills/document/styles/magazine-ink/skin.css +4 -3
- package/skills/document/styles/mckinsey/skin.css +2 -1
- package/skills/document/styles/memphis/backdrop.html +2 -0
- package/skills/document/styles/memphis/skin.css +2 -1
- package/skills/document/styles/mono/skin.css +6 -2
- package/skills/document/styles/neon-cyber/backdrop.html +2 -0
- package/skills/document/styles/neon-cyber/skin.css +2 -1
- package/skills/document/styles/olive-gold/skin.css +7 -6
- package/skills/document/styles/organic-earth/backdrop.html +2 -0
- package/skills/document/styles/organic-earth/skin.css +2 -1
- package/skills/document/styles/pastel-saas/backdrop.html +2 -0
- package/skills/document/styles/pastel-saas/skin.css +2 -1
- package/skills/document/styles/portfolio-noir/backdrop.html +2 -0
- package/skills/document/styles/portfolio-noir/skin.css +2 -1
- package/skills/document/styles/retro-press/backdrop.html +2 -0
- package/skills/document/styles/retro-press/skin.css +2 -1
- package/skills/document/styles/sport-arena/backdrop.html +2 -0
- package/skills/document/styles/sport-arena/skin.css +4 -1
- package/skills/document/styles/swiss-grid/skin.css +10 -5
- package/skills/document/styles/wedding-blush/backdrop.html +2 -0
- package/skills/document/styles/wedding-blush/skin.css +4 -1
- package/skills/document/theme-system.md +85 -77
- package/skills/document/themes/README.md +7 -5
- package/skills/document/vision.md +8 -5
- package/skills/document/xlsx.md +15 -25
- package/skills/cozy-static-svg/SKILL.md +0 -76
- package/skills/cozy-static-svg/references/approved-preview.png +0 -0
- package/skills/cozy-static-svg/references/cross-platform.md +0 -73
- package/skills/cozy-static-svg/references/moon_keeps_watch.svg +0 -229
- package/skills/cozy-static-svg/references/style-anchor.md +0 -271
- package/skills/cozy-static-svg/scripts/artkit.py +0 -321
- package/skills/cozy-static-svg/scripts/to_png.py +0 -333
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
/* 排版节奏 — layouts 的字号与页边距都写成 calc(N * var(--…-scale,1)),
|
|
6
6
|
所以皮肤可以在不碰任何 layout 的前提下定义自己的疏密。奢华极简:靠留白撑场。 */
|
|
7
7
|
--space-scale:1.16; --type-scale:1.0;
|
|
8
|
-
--accent:#A97C3F; --c1:#A97C3F; --c2:#C9A467; --c3:#8A6530; --c4:#DCC08C; --chart-1:#B58A4A;
|
|
8
|
+
--accent:#A97C3F; --c1:#A97C3F; --c2:#C9A467; --c3:#8A6530; --c4:#DCC08C; --chart-1:#B58A4A; --series-1:#A97C3F; --series-2:#74520E; --series-3:#422A04; --series-4:#846B39;
|
|
9
9
|
--title:#A97C3F; --body:#2B2823; --muted:#6B6558; --foot:#8A8374;
|
|
10
10
|
--hair:rgba(169,124,63,.22); --card-radius:6px;
|
|
11
11
|
--font-head:'Anton','PingFang SC','Noto Sans SC',sans-serif;
|
|
@@ -38,7 +38,7 @@
|
|
|
38
38
|
.card{border-radius:var(--card-radius);background:rgba(169,124,63,.05);border:1px solid var(--hair);box-shadow:0 6px 20px rgba(0,0,0,.05);overflow:hidden}
|
|
39
39
|
.card-idx{color:var(--foot)} .card-body{color:var(--body)}
|
|
40
40
|
.card-grid .card:nth-child(4n+1) .card-rail,.card-grid .card:nth-child(4n+1) .card-dot{background:var(--c1)} .card-grid .card:nth-child(4n+1) .card-title{color:var(--c1)}
|
|
41
|
-
.card-grid .card:nth-child(4n+2) .card-rail,.card-grid .card:nth-child(4n+2) .card-dot{background:var(--c2)} .card-grid .card:nth-child(4n+2) .card-title{color
|
|
41
|
+
.card-grid .card:nth-child(4n+2) .card-rail,.card-grid .card:nth-child(4n+2) .card-dot{background:var(--c2)} .card-grid .card:nth-child(4n+2) .card-title{color:#946F35}
|
|
42
42
|
.card-grid .card:nth-child(4n+3) .card-rail,.card-grid .card:nth-child(4n+3) .card-dot{background:var(--c3)} .card-grid .card:nth-child(4n+3) .card-title{color:var(--c3)}
|
|
43
43
|
.card-grid .card:nth-child(4n+4) .card-rail,.card-grid .card:nth-child(4n+4) .card-dot{background:var(--c4)} .card-grid .card:nth-child(4n+4) .card-title{color:var(--title)}
|
|
44
44
|
.card .card-rail{background:var(--accent)} .card .card-title{color:var(--accent)}
|
|
@@ -104,17 +104,18 @@
|
|
|
104
104
|
.ring-num{color:var(--title)}
|
|
105
105
|
|
|
106
106
|
/* toc-panel: 浅色 skin → 深色对比面板(既有反色机制,复用不新增) */
|
|
107
|
-
|
|
107
|
+
/* 面板自己的底:SVG 图表的墨色/网格/描边环/系列色跟着容器走,不用页面级 token(deck-chart-svg.ts) */
|
|
108
|
+
.panel{background:#0A0A0A;box-shadow:0 24px 60px rgba(0,0,0,.4);--chart-surface:#0A0A0A;--chart-ink:#E8E3D3;--chart-muted:#9A9488;--chart-title:#F2F2F2;--chart-grid:rgba(232,227,211,.16);--chart-1:#B58A4A;--chart-accent:#B58A4A;--series-1:#D0A164;--series-2:#FEE0B0;--series-3:#98733E;--series-4:#E3C792}
|
|
108
109
|
.panel-item-title{color:var(--accent);font-family:var(--font-head)}
|
|
109
110
|
.panel-item-desc{color:rgba(232,227,211,.82)}
|
|
110
111
|
.toc-brand{color:var(--title)}
|
|
111
112
|
|
|
112
113
|
/* numbered-brief layout: 实心编号盘 + 左条引用(全部走变量,每皮肤自动上色) */
|
|
113
|
-
.num-disc{background
|
|
114
|
+
.num-disc{background:#8A6530;color:#fff} .num-item-title{color:var(--title)}
|
|
114
115
|
.brief-quote{border-left:3px solid var(--accent)} .brief-quote-txt{color:var(--muted)} .brief-quote-attr{color:var(--muted)}
|
|
115
116
|
|
|
116
117
|
/* banner-columns layout: 通栏标题带 + 3 栏项目符号(变量驱动,每皮肤自动上色) */
|
|
117
|
-
.banner{background
|
|
118
|
+
.banner{background:#8A6530} .banner-title{color:#fff}
|
|
118
119
|
.col-title{color:var(--title)} .col-body{color:var(--body)} .col-bullet{background:var(--accent)}
|
|
119
120
|
|
|
120
121
|
/* color-palette layout: 色板填色走 ramp 变量(每皮肤用自身配色) */
|
|
@@ -142,6 +143,6 @@
|
|
|
142
143
|
交替出现奶油底/纯黑底两种实例;不是新皮肤极性,是同一皮肤内每张幻灯片
|
|
143
144
|
自行选择的一个修饰类,由拼装 deck.html 时逐页决定要不要加,skin 只负责
|
|
144
145
|
定义它翻成什么颜色。--title/--accent 恒为金色不随之翻转)。 */
|
|
145
|
-
.slide.slide-inverse{--slide-bg:#0A0A0A;--body:#E8E3D3;--muted:#9A9488;--foot:#746E60;--hair:rgba(232,227,211,.16)}
|
|
146
|
+
.slide.slide-inverse{--slide-bg:#0A0A0A;--body:#E8E3D3;--body-color:#E8E3D3;--muted:#9A9488;--foot:#746E60;--hair:rgba(232,227,211,.16);--series-1:#A97C3F;--series-2:#D4AF72;--series-3:#FEE3C0;--series-4:#B49966}
|
|
146
147
|
.slide.slide-inverse .card,.slide.slide-inverse .cmp-col,.slide.slide-inverse .step-circle,.slide.slide-inverse .surface{background:rgba(232,227,211,.05)}
|
|
147
148
|
.slide.slide-inverse .card-body{color:var(--body)}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
<!-- generated by scripts/ppt-tpl/gen-skin.mjs — signature: crop-marks -->
|
|
2
2
|
<div style="position:absolute;inset:0;background:#EEF5EF"></div>
|
|
3
|
+
<div class="sig-layer" data-signature="crop-marks" style="position:absolute;inset:0;pointer-events:none">
|
|
3
4
|
<div style="position:absolute;left:44px;top:44px;border-left:1px solid var(--hair);border-top:1px solid var(--hair);width:26px;height:26px;pointer-events:none"></div>
|
|
4
5
|
<div style="position:absolute;right:44px;top:44px;border-right:1px solid var(--hair);border-top:1px solid var(--hair);width:26px;height:26px;pointer-events:none"></div>
|
|
5
6
|
<div style="position:absolute;left:44px;bottom:44px;border-left:1px solid var(--hair);border-bottom:1px solid var(--hair);width:26px;height:26px;pointer-events:none"></div>
|
|
6
7
|
<div style="position:absolute;right:44px;bottom:44px;border-right:1px solid var(--hair);border-bottom:1px solid var(--hair);width:26px;height:26px;pointer-events:none"></div>
|
|
8
|
+
</div>
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
手改会在下次生成时丢失:要改就改 family.json。 */
|
|
3
3
|
:root{
|
|
4
4
|
--space-scale:1.02; --type-scale:0.98;
|
|
5
|
-
--accent:#0B5C3B; --c1:#0B5C3B; --c2:#0A595B; --c3:#0F5670; --c4:#374F84; --chart-1:#0B5C3B;
|
|
5
|
+
--accent:#0B5C3B; --c1:#0B5C3B; --c2:#0A595B; --c3:#0F5670; --c4:#374F84; --chart-1:#0B5C3B; --series-1:#0B5C3B; --series-2:#3D8183; --series-3:#022E3E; --series-4:#334B80;
|
|
6
6
|
--title:#242C25; --body:#4E544F; --muted:#777E78; --foot:#777E78;
|
|
7
7
|
--hair:#CCD7CE; --card-radius:4px;
|
|
8
8
|
--font-head:'Lora','Songti SC',sans-serif;
|
|
@@ -14,6 +14,7 @@
|
|
|
14
14
|
.deck-header,.deck-footer,.deck-pageno{color:var(--muted)}
|
|
15
15
|
.rule,.rule-foot{background:var(--hair)}
|
|
16
16
|
.eyebrow{color:var(--accent);letter-spacing:.22em;font-weight:700}
|
|
17
|
+
.slide:is([data-layout="cover-image"],[data-layout="image-full"],[data-layout="section-fullbleed"]) .eyebrow{color:#B6CEC4}
|
|
17
18
|
.accent-bar{background:var(--accent)}
|
|
18
19
|
.deck-title,.cover-title,.section-title,.ending-title{color:var(--title);font-family:var(--font-head);font-weight:700;--talos-bake:1}
|
|
19
20
|
.cover-sub,.ending-sub,.section-desc{color:var(--muted)}
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
--space-scale:1.08; --type-scale:1.03;
|
|
12
12
|
--ink:#0A1F3D; --paper:#F1F3F5; --paper-tint:#E4E8EC; --ink-tint:#152A4A;
|
|
13
13
|
--accent:#0A1F3D; --c1:#0A1F3D; --c2:#384962; --c3:#697688; --c4:#9CA5B1; --chart-1:#697688;
|
|
14
|
-
--title:#0A1F3D; --body:#384962; --muted:#697688; --foot:#
|
|
14
|
+
--title:#0A1F3D; --body:#384962; --muted:#697688; --foot:#818C9C;
|
|
15
15
|
--hair:rgba(10,31,61,.14); --card-radius:4px;
|
|
16
16
|
--font-head:'Noto Serif SC','Songti SC',serif;
|
|
17
17
|
--font-body:'Noto Sans SC','PingFang SC','Microsoft YaHei',sans-serif;
|
|
@@ -78,7 +78,8 @@
|
|
|
78
78
|
.ring-fill{stroke:var(--accent)}
|
|
79
79
|
.ring-num{color:var(--title);font-family:var(--font-head);font-weight:800}
|
|
80
80
|
/* toc-panel — 唯一允许的实色块:纯墨色面板 + 纸色字,呼应 guizang callout 底色小面积用法 */
|
|
81
|
-
.
|
|
81
|
+
/* 面板自己的底:SVG 图表的墨色/网格/描边环/系列色跟着容器走,不用页面级 token(deck-chart-svg.ts) */
|
|
82
|
+
.panel{background:var(--ink);box-shadow:none;--chart-surface:#0A1F3D;--chart-ink:#CBD0D7;--chart-muted:#8D97A5;--chart-title:#F1F3F5;--chart-grid:rgba(241,243,245,.14);--chart-1:#F1F3F5;--chart-accent:#F1F3F5;--series-1:#92ADD3;--series-2:#D6E6FE;--series-3:#6E7B8E;--series-4:#C2CBD8}
|
|
82
83
|
.panel-item-title{color:var(--paper);font-family:var(--font-head);font-weight:700}
|
|
83
84
|
.panel-item-desc{color:rgba(241,243,245,.72)}
|
|
84
85
|
.toc-brand{color:var(--title);font-family:var(--font-mono);letter-spacing:.1em}
|
|
@@ -110,7 +111,7 @@
|
|
|
110
111
|
.slide.slide-inverse .card,.slide.slide-inverse .cmp-col{border-top-color:rgba(241,243,245,.2)}
|
|
111
112
|
.slide.slide-inverse .cmp-col--rec{border-top-color:var(--title)}
|
|
112
113
|
.slide.slide-inverse .surface{background:rgba(241,243,245,.06)}
|
|
113
|
-
.slide.slide-inverse .panel{background:var(--paper)}
|
|
114
|
+
.slide.slide-inverse .panel{background:var(--paper);--chart-surface:#F1F3F5;--chart-ink:#384962;--chart-muted:#697688;--chart-title:#0A1F3D;--chart-grid:rgba(10,31,61,.14);--chart-1:#697688;--chart-accent:#697688;--series-1:#0A1F3D;--series-2:#384962;--series-3:#697688;--series-4:#9CA5B1}
|
|
114
115
|
.slide.slide-inverse .panel-item-title{color:var(--ink)} .slide.slide-inverse .panel-item-desc{color:rgba(10,31,61,.72)}
|
|
115
116
|
.slide.slide-inverse .num-disc{background:var(--paper);color:var(--ink)}
|
|
116
117
|
.slide.slide-inverse .banner{background:var(--paper)} .slide.slide-inverse .banner-title{color:var(--ink)}
|
|
@@ -4,8 +4,9 @@
|
|
|
4
4
|
/* 排版节奏 — layouts 的字号与页边距都写成 calc(N * var(--…-scale,1)),
|
|
5
5
|
所以皮肤可以在不碰任何 layout 的前提下定义自己的疏密。咨询/董事会:信息密度优先。 */
|
|
6
6
|
--space-scale:0.86; --type-scale:0.95;
|
|
7
|
+
--slide-bg:#ffffff;
|
|
7
8
|
--accent:#2251ff; --c1:#2251ff; --c2:#3E8C8C; --c3:#B07A2E; --c4:#5B6B84; --chart-1:#3A5CE0;
|
|
8
|
-
--title:#0F2340; --body:#354A63; --muted:#6B7A90; --foot:#
|
|
9
|
+
--title:#0F2340; --body:#354A63; --muted:#6B7A90; --foot:#8993A3;
|
|
9
10
|
--hair:#E3E8F0; --card-radius:6px;
|
|
10
11
|
--font-head:'IBM Plex Sans','PingFang SC','Noto Sans SC','Hiragino Sans GB',sans-serif; --font-heading:var(--font-head);
|
|
11
12
|
--font-body:'IBM Plex Sans','PingFang SC','Noto Sans SC','Hiragino Sans GB',sans-serif;
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
<!-- generated by scripts/ppt-tpl/gen-skin.mjs — signature: step-marks -->
|
|
2
2
|
<div style="position:absolute;inset:0;background:#FBF2E8"></div>
|
|
3
|
+
<div class="sig-layer" data-signature="step-marks" style="position:absolute;inset:0;pointer-events:none">
|
|
3
4
|
<div style="position:absolute;right:0;top:132px;width:52px;height:44px;background:var(--accent);opacity:0.90;pointer-events:none"></div>
|
|
4
5
|
<div style="position:absolute;right:0;top:216px;width:38px;height:44px;background:var(--accent);opacity:0.62;pointer-events:none"></div>
|
|
5
6
|
<div style="position:absolute;right:0;top:300px;width:24px;height:44px;background:var(--accent);opacity:0.34;pointer-events:none"></div>
|
|
7
|
+
</div>
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
手改会在下次生成时丢失:要改就改 family.json。 */
|
|
3
3
|
:root{
|
|
4
4
|
--space-scale:0.98; --type-scale:1.06;
|
|
5
|
-
--accent:#F04A50; --c1:#F04A50; --c2:#898B0C; --c3:#189785; --c4:#238EC7; --chart-1:#F04A50;
|
|
5
|
+
--accent:#F04A50; --c1:#F04A50; --c2:#898B0C; --c3:#189785; --c4:#238EC7; --chart-1:#F04A50; --series-1:#F04A50; --series-2:#8F911A; --series-3:#0E7D6E; --series-4:#2C94CE;
|
|
6
6
|
--title:#2D271F; --body:#59544D; --muted:#847E76; --foot:#847E76;
|
|
7
7
|
--hair:#E0D6C8; --card-radius:4px;
|
|
8
8
|
--font-head:'Syne','Noto Sans SC',sans-serif;
|
|
@@ -14,6 +14,7 @@
|
|
|
14
14
|
.deck-header,.deck-footer,.deck-pageno{color:var(--muted)}
|
|
15
15
|
.rule,.rule-foot{background:var(--hair)}
|
|
16
16
|
.eyebrow{color:var(--accent);letter-spacing:.22em;font-weight:700}
|
|
17
|
+
.slide:is([data-layout="cover-image"],[data-layout="image-full"],[data-layout="section-fullbleed"]) .eyebrow{color:#FBC9CB}
|
|
17
18
|
.accent-bar{background:var(--accent)}
|
|
18
19
|
.deck-title,.cover-title,.section-title,.ending-title{color:var(--title);font-family:var(--font-head);font-weight:700;--talos-bake:1}
|
|
19
20
|
.cover-sub,.ending-sub,.section-desc{color:var(--muted)}
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
所以皮肤可以在不碰任何 layout 的前提下定义自己的疏密。极简报告:留白大、字号收敛。 */
|
|
6
6
|
--space-scale:1.18; --type-scale:0.97;
|
|
7
7
|
--accent:#0A0A0A; --c1:#0A0A0A; --c2:#555555; --c3:#8A8A8A; --c4:#BFBFBF; --chart-1:#3F3F3F;
|
|
8
|
-
--title:#0A0A0A; --body:#555555; --muted:#919191; --foot:#
|
|
8
|
+
--title:#0A0A0A; --body:#555555; --muted:#919191; --foot:#929292;
|
|
9
9
|
--hair:#E8E8E8; --card-radius:2px;
|
|
10
10
|
--font-head:'Archivo','PingFang SC','Noto Sans SC','Hiragino Sans GB',sans-serif;
|
|
11
11
|
--font-body:'Archivo','PingFang SC','Noto Sans SC','Hiragino Sans GB',sans-serif;
|
|
@@ -41,7 +41,7 @@
|
|
|
41
41
|
/* steps */
|
|
42
42
|
.step-line{background:var(--hair)}
|
|
43
43
|
.step-circle{background:#FAFAFA;border:1px solid var(--hair);box-shadow:0 6px 18px rgba(0,0,0,.04);font-family:var(--font-head)}
|
|
44
|
-
.steps .step:nth-child(4n+1) .step-circle{color:var(--c1)} .steps .step:nth-child(4n+2) .step-circle{color:var(--c2)} .steps .step:nth-child(4n+3) .step-circle{color:var(--c3)} .steps .step:nth-child(4n+4) .step-circle{color
|
|
44
|
+
.steps .step:nth-child(4n+1) .step-circle{color:var(--c1)} .steps .step:nth-child(4n+2) .step-circle{color:var(--c2)} .steps .step:nth-child(4n+3) .step-circle{color:var(--c3)} .steps .step:nth-child(4n+4) .step-circle{color:#767676}
|
|
45
45
|
.step-tag,.step-body{color:var(--muted)} .step-title{color:var(--title)}
|
|
46
46
|
/* toc */
|
|
47
47
|
.toc-item{border-top:1px solid var(--hair)} .toc-grid .toc-item:nth-child(1){border-top-color:var(--title)} .toc-grid .toc-item:nth-child(2){border-top-color:var(--c2)}
|
|
@@ -55,6 +55,10 @@
|
|
|
55
55
|
/* full-bleed image overlay — 始终浅色(压在图/scrim 上,与皮肤明暗无关)*/
|
|
56
56
|
.overlay-title{color:#fff}
|
|
57
57
|
.overlay-sub{color:rgba(255,255,255,.82)}
|
|
58
|
+
/* 满版图版式的眉题压在照片上:mono 的眉题是 --title 黑(#0A0A0A),压在满版照片的暗渐变上 1.3:1,看不见。图上文字按图上规则提亮。 */
|
|
59
|
+
.slide:is([data-layout="cover-image"],[data-layout="image-full"],[data-layout="section-fullbleed"]) .eyebrow{color:#FFFFFF}
|
|
60
|
+
/* 同三个版式的空占位:浅色占位框被 scrim 压成中灰(≈#C8C8C8),--muted #919191 的占位说明在上面只有 1.9:1;换成同族的 #767676。 */
|
|
61
|
+
.slide:is([data-layout="cover-image"],[data-layout="image-full"],[data-layout="section-fullbleed"]) .surface-label{color:#767676}
|
|
58
62
|
/* batch-5 layouts: timeline / concept-hub / cover-image */
|
|
59
63
|
.tl-dot{background:var(--title);border-radius:50%}
|
|
60
64
|
.tl-date{color:var(--title);font-family:var(--font-head)}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
<!-- generated by scripts/ppt-tpl/gen-skin.mjs — signature: grid-glow -->
|
|
2
2
|
<div style="position:absolute;inset:0;background:#1C192C"></div>
|
|
3
|
+
<div class="sig-layer" data-signature="grid-glow" style="position:absolute;inset:0;pointer-events:none">
|
|
3
4
|
<div style="position:absolute;inset:0;background-image:linear-gradient(var(--hair) 1px,transparent 1px),linear-gradient(90deg,var(--hair) 1px,transparent 1px);background-size:64px 64px;opacity:.5;pointer-events:none"></div>
|
|
4
5
|
<div style="position:absolute;right:-120px;top:-120px;width:520px;height:520px;border-radius:50%;background:radial-gradient(circle,var(--accent),transparent 70%);opacity:.22;pointer-events:none"></div>
|
|
6
|
+
</div>
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
手改会在下次生成时丢失:要改就改 family.json。 */
|
|
3
3
|
:root{
|
|
4
4
|
--space-scale:0.96; --type-scale:1.04;
|
|
5
|
-
--accent:#E076F5; --c1:#E076F5; --c2:#779EFC; --c3:#1AACE3; --c4:#13B1BE; --chart-1:#E076F5;
|
|
5
|
+
--accent:#E076F5; --c1:#E076F5; --c2:#779EFC; --c3:#1AACE3; --c4:#13B1BE; --chart-1:#E076F5; --series-1:#E076F5; --series-2:#678DE9; --series-3:#6BCDFC; --series-4:#15A4B0;
|
|
6
6
|
--title:#F7F5FD; --body:#C2BFCA; --muted:#87858F; --foot:#87858F;
|
|
7
7
|
--hair:#3F3B4D; --card-radius:4px;
|
|
8
8
|
--font-head:'Jost','Noto Sans SC',sans-serif;
|
|
@@ -14,6 +14,7 @@
|
|
|
14
14
|
.deck-header,.deck-footer,.deck-pageno{color:var(--muted)}
|
|
15
15
|
.rule,.rule-foot{background:var(--hair)}
|
|
16
16
|
.eyebrow{color:var(--accent);letter-spacing:.22em;font-weight:700}
|
|
17
|
+
.slide:is([data-layout="cover-image"],[data-layout="image-full"],[data-layout="section-fullbleed"]) .eyebrow{color:#F6D6FC}
|
|
17
18
|
.accent-bar{background:var(--accent)}
|
|
18
19
|
.deck-title,.cover-title,.section-title,.ending-title{color:var(--title);font-family:var(--font-head);font-weight:700}
|
|
19
20
|
.cover-sub,.ending-sub,.section-desc{color:var(--muted)}
|
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
/* 排版节奏 — layouts 的字号与页边距都写成 calc(N * var(--…-scale,1)),
|
|
5
5
|
所以皮肤可以在不碰任何 layout 的前提下定义自己的疏密。证书/招商:仪式感留白。 */
|
|
6
6
|
--space-scale:1.1; --type-scale:1.0;
|
|
7
|
-
--accent:#CDB85C; --c1:#CDB85C; --c2:#E3D394; --c3:#B49C42; --c4:#F0E4B0; --chart-1:#B49C42;
|
|
8
|
-
--title:#F8F3E2; --body:#D6CB9E; --muted:#A6996A; --foot:#
|
|
7
|
+
--accent:#CDB85C; --c1:#CDB85C; --c2:#E3D394; --c3:#B49C42; --c4:#F0E4B0; --chart-1:#B49C42; --series-1:#CDB85C; --series-2:#E1F7DC; --series-3:#EC7626; --series-4:#B4E5DF;
|
|
8
|
+
--title:#F8F3E2; --body:#D6CB9E; --muted:#A6996A; --foot:#A3997A;
|
|
9
9
|
--hair:rgba(205,184,92,.18); --card-radius:14px;
|
|
10
10
|
--font-head:'Marcellus','Songti SC','Noto Serif SC',serif;
|
|
11
11
|
--font-body:'Karla','PingFang SC','Noto Sans SC','Hiragino Sans GB',sans-serif;
|
|
@@ -70,17 +70,18 @@
|
|
|
70
70
|
.ring-track{stroke:var(--hair)} .ring-fill{stroke:var(--accent)} .ring-num{color:var(--title)}
|
|
71
71
|
|
|
72
72
|
/* toc-panel: 深色 skin → 浅色对比面板 */
|
|
73
|
-
|
|
74
|
-
.panel
|
|
73
|
+
/* 面板自己的底:SVG 图表的墨色/网格/描边环/系列色跟着容器走,不用页面级 token(deck-chart-svg.ts) */
|
|
74
|
+
.panel{background:#F4EFDD;box-shadow:0 24px 60px rgba(0,0,0,.4);--chart-surface:#F4EFDD;--chart-ink:#403D31;--chart-muted:#676357;--chart-title:#1E1B10;--chart-grid:#D5D1C3;--chart-1:#A0882B;--chart-accent:#A0882B;--series-1:#675702;--series-2:#372D01;--series-3:#9C8527;--series-4:#4D4210}
|
|
75
|
+
.panel-item-title{color:#766A35;font-family:var(--font-head)}
|
|
75
76
|
.panel-item-desc{color:#4A4636}
|
|
76
77
|
.toc-brand{color:var(--title)}
|
|
77
78
|
|
|
78
79
|
/* numbered-brief layout: 实心编号盘 + 左条引用(全部走变量,每皮肤自动上色) */
|
|
79
|
-
.num-disc{background:var(--accent);color:#
|
|
80
|
+
.num-disc{background:var(--accent);color:#4A3F0C} .num-item-title{color:var(--title)}
|
|
80
81
|
.brief-quote{border-left:3px solid var(--accent)} .brief-quote-txt{color:var(--muted)} .brief-quote-attr{color:var(--muted)}
|
|
81
82
|
|
|
82
83
|
/* banner-columns layout: 通栏标题带 + 3 栏项目符号(变量驱动,每皮肤自动上色) */
|
|
83
|
-
.banner{background:var(--accent)} .banner-title{color:#
|
|
84
|
+
.banner{background:var(--accent)} .banner-title{color:#4A3F0C}
|
|
84
85
|
.col-title{color:var(--title)} .col-body{color:var(--body)} .col-bullet{background:var(--accent)}
|
|
85
86
|
|
|
86
87
|
/* backdrop 弧线(.bd-arc)作用域:仅结构页 + 单焦点页显示,内容/数据/图片页保持干净 */
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
<!-- generated by scripts/ppt-tpl/gen-skin.mjs — signature: horizon -->
|
|
2
2
|
<div style="position:absolute;inset:0;background:#F2F2DE"></div>
|
|
3
|
+
<div class="sig-layer" data-signature="horizon" style="position:absolute;inset:0;pointer-events:none">
|
|
3
4
|
<div style="position:absolute;left:0;right:0;top:62%;height:1px;background:var(--hair);pointer-events:none"></div>
|
|
4
5
|
<div style="position:absolute;left:0;right:0;top:62%;bottom:0;background:linear-gradient(to bottom,var(--accent),transparent);opacity:.10;pointer-events:none"></div>
|
|
6
|
+
</div>
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
手改会在下次生成时丢失:要改就改 family.json。 */
|
|
3
3
|
:root{
|
|
4
4
|
--space-scale:1.08; --type-scale:1;
|
|
5
|
-
--accent:#3C6F35; --c1:#3C6F35; --c2:#106E6E; --c3:#106A94; --c4:#765594; --chart-1:#3C6F35;
|
|
5
|
+
--accent:#3C6F35; --c1:#3C6F35; --c2:#106E6E; --c3:#106A94; --c4:#765594; --chart-1:#3C6F35; --series-1:#3C6F35; --series-2:#459797; --series-3:#045579; --series-4:#7B5999;
|
|
6
6
|
--title:#262F1F; --body:#50574B; --muted:#777E71; --foot:#777E71;
|
|
7
7
|
--hair:#CAD5C0; --card-radius:4px;
|
|
8
8
|
--font-head:'Fraunces','Songti SC',sans-serif;
|
|
@@ -14,6 +14,7 @@
|
|
|
14
14
|
.deck-header,.deck-footer,.deck-pageno{color:var(--muted)}
|
|
15
15
|
.rule,.rule-foot{background:var(--hair)}
|
|
16
16
|
.eyebrow{color:var(--accent);letter-spacing:.22em;font-weight:700}
|
|
17
|
+
.slide:is([data-layout="cover-image"],[data-layout="image-full"],[data-layout="section-fullbleed"]) .eyebrow{color:#C5D4C2}
|
|
17
18
|
.accent-bar{background:var(--accent)}
|
|
18
19
|
.deck-title,.cover-title,.section-title,.ending-title{color:var(--title);font-family:var(--font-head);font-weight:700;--talos-bake:1}
|
|
19
20
|
.cover-sub,.ending-sub,.section-desc{color:var(--muted)}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
<!-- generated by scripts/ppt-tpl/gen-skin.mjs — signature: horizon -->
|
|
2
2
|
<div style="position:absolute;inset:0;background:#F6F6FF"></div>
|
|
3
|
+
<div class="sig-layer" data-signature="horizon" style="position:absolute;inset:0;pointer-events:none">
|
|
3
4
|
<div style="position:absolute;left:0;right:0;top:62%;height:1px;background:var(--hair);pointer-events:none"></div>
|
|
4
5
|
<div style="position:absolute;left:0;right:0;top:62%;bottom:0;background:linear-gradient(to bottom,var(--accent),transparent);opacity:.10;pointer-events:none"></div>
|
|
6
|
+
</div>
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
手改会在下次生成时丢失:要改就改 family.json。 */
|
|
3
3
|
:root{
|
|
4
4
|
--space-scale:1.1; --type-scale:1.02;
|
|
5
|
-
--accent:#6F76BF; --c1:#6F76BF; --c2:#AA649E; --c3:#BF5D6F; --c4:#B36944; --chart-1:#6F76BF;
|
|
5
|
+
--accent:#6F76BF; --c1:#6F76BF; --c2:#AA649E; --c3:#BF5D6F; --c4:#B36944; --chart-1:#6F76BF; --series-1:#6F76BF; --series-2:#834078; --series-3:#D57182; --series-4:#9C542F;
|
|
6
6
|
--title:#2F2F3B; --body:#585962; --muted:#80808B; --foot:#80808B;
|
|
7
7
|
--hair:#DBDCEB; --card-radius:4px;
|
|
8
8
|
--font-head:'Quicksand','Noto Sans SC',sans-serif;
|
|
@@ -14,6 +14,7 @@
|
|
|
14
14
|
.deck-header,.deck-footer,.deck-pageno{color:var(--muted)}
|
|
15
15
|
.rule,.rule-foot{background:var(--hair)}
|
|
16
16
|
.eyebrow{color:var(--accent);letter-spacing:.22em;font-weight:700}
|
|
17
|
+
.slide:is([data-layout="cover-image"],[data-layout="image-full"],[data-layout="section-fullbleed"]) .eyebrow{color:#D4D6EC}
|
|
17
18
|
.accent-bar{background:var(--accent)}
|
|
18
19
|
.deck-title,.cover-title,.section-title,.ending-title{color:var(--title);font-family:var(--font-head);font-weight:700}
|
|
19
20
|
.cover-sub,.ending-sub,.section-desc{color:var(--muted)}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
<!-- generated by scripts/ppt-tpl/gen-skin.mjs — signature: footer-slab -->
|
|
2
2
|
<div style="position:absolute;inset:0;background:#1F1F1F"></div>
|
|
3
|
+
<div class="sig-layer" data-signature="footer-slab" style="position:absolute;inset:0;pointer-events:none">
|
|
3
4
|
<div style="position:absolute;left:0;right:0;bottom:0;height:14px;background:var(--accent);opacity:.9;pointer-events:none"></div>
|
|
4
5
|
<div style="position:absolute;left:0;right:0;bottom:14px;height:2px;background:var(--hair);pointer-events:none"></div>
|
|
6
|
+
</div>
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
手改会在下次生成时丢失:要改就改 family.json。 */
|
|
3
3
|
:root{
|
|
4
4
|
--space-scale:1.12; --type-scale:1;
|
|
5
|
-
--accent:#FC8B79; --c1:#FC8B79; --c2:#BFAB4D; --c3:#51BF83; --c4:#24BCD0; --chart-1:#FC8B79;
|
|
5
|
+
--accent:#FC8B79; --c1:#FC8B79; --c2:#BFAB4D; --c3:#51BF83; --c4:#24BCD0; --chart-1:#FC8B79; --series-1:#FC8B79; --series-2:#B39F40; --series-3:#6FDB9D; --series-4:#09B2C6;
|
|
6
6
|
--title:#F6F6F6; --body:#BBBBBB; --muted:#868686; --foot:#868686;
|
|
7
7
|
--hair:#424242; --card-radius:4px;
|
|
8
8
|
--font-head:'Archivo','Noto Sans SC',sans-serif;
|
|
@@ -14,6 +14,7 @@
|
|
|
14
14
|
.deck-header,.deck-footer,.deck-pageno{color:var(--muted)}
|
|
15
15
|
.rule,.rule-foot{background:var(--hair)}
|
|
16
16
|
.eyebrow{color:var(--accent);letter-spacing:.22em;font-weight:700}
|
|
17
|
+
.slide:is([data-layout="cover-image"],[data-layout="image-full"],[data-layout="section-fullbleed"]) .eyebrow{color:#FEDCD7}
|
|
17
18
|
.accent-bar{background:var(--accent)}
|
|
18
19
|
.deck-title,.cover-title,.section-title,.ending-title{color:var(--title);font-family:var(--font-head);font-weight:700}
|
|
19
20
|
.cover-sub,.ending-sub,.section-desc{color:var(--muted)}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
<!-- generated by scripts/ppt-tpl/gen-skin.mjs — signature: crop-marks -->
|
|
2
2
|
<div style="position:absolute;inset:0;background:#FDEBD8"></div>
|
|
3
|
+
<div class="sig-layer" data-signature="crop-marks" style="position:absolute;inset:0;pointer-events:none">
|
|
3
4
|
<div style="position:absolute;left:44px;top:44px;border-left:1px solid var(--hair);border-top:1px solid var(--hair);width:26px;height:26px;pointer-events:none"></div>
|
|
4
5
|
<div style="position:absolute;right:44px;top:44px;border-right:1px solid var(--hair);border-top:1px solid var(--hair);width:26px;height:26px;pointer-events:none"></div>
|
|
5
6
|
<div style="position:absolute;left:44px;bottom:44px;border-left:1px solid var(--hair);border-bottom:1px solid var(--hair);width:26px;height:26px;pointer-events:none"></div>
|
|
6
7
|
<div style="position:absolute;right:44px;bottom:44px;border-right:1px solid var(--hair);border-bottom:1px solid var(--hair);width:26px;height:26px;pointer-events:none"></div>
|
|
8
|
+
</div>
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
手改会在下次生成时丢失:要改就改 family.json。 */
|
|
3
3
|
:root{
|
|
4
4
|
--space-scale:1.04; --type-scale:1.04;
|
|
5
|
-
--accent:#BE433C; --c1:#BE433C; --c2:#926400; --c3:#4B790C; --c4:#107B62; --chart-1:#BE433C;
|
|
5
|
+
--accent:#BE433C; --c1:#BE433C; --c2:#926400; --c3:#4B790C; --c4:#107B62; --chart-1:#BE433C; --series-1:#BE433C; --series-2:#745006; --series-3:#669634; --series-4:#13735C;
|
|
6
6
|
--title:#3C2721; --body:#62514D; --muted:#8A7873; --foot:#8A7873;
|
|
7
7
|
--hair:#E3C6BE; --card-radius:4px;
|
|
8
8
|
--font-head:'DM Serif Display','Songti SC',sans-serif;
|
|
@@ -14,6 +14,7 @@
|
|
|
14
14
|
.deck-header,.deck-footer,.deck-pageno{color:var(--muted)}
|
|
15
15
|
.rule,.rule-foot{background:var(--hair)}
|
|
16
16
|
.eyebrow{color:var(--accent);letter-spacing:.22em;font-weight:700}
|
|
17
|
+
.slide:is([data-layout="cover-image"],[data-layout="image-full"],[data-layout="section-fullbleed"]) .eyebrow{color:#ECC7C5}
|
|
17
18
|
.accent-bar{background:var(--accent)}
|
|
18
19
|
.deck-title,.cover-title,.section-title,.ending-title{color:var(--title);font-family:var(--font-head);font-weight:700;--talos-bake:1}
|
|
19
20
|
.cover-sub,.ending-sub,.section-desc{color:var(--muted)}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
<!-- generated by scripts/ppt-tpl/gen-skin.mjs — signature: diagonal-band -->
|
|
2
2
|
<div style="position:absolute;inset:0;background:#12242E"></div>
|
|
3
|
+
<div class="sig-layer" data-signature="diagonal-band" style="position:absolute;inset:0;pointer-events:none">
|
|
3
4
|
<div style="position:absolute;right:-60px;top:-40px;width:260px;height:820px;background:var(--accent);opacity:.14;transform:rotate(18deg);pointer-events:none"></div>
|
|
4
5
|
<div style="position:absolute;right:96px;top:-40px;width:2px;height:820px;background:var(--accent);opacity:.5;transform:rotate(18deg);pointer-events:none"></div>
|
|
6
|
+
</div>
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
手改会在下次生成时丢失:要改就改 family.json。 */
|
|
3
3
|
:root{
|
|
4
4
|
--space-scale:0.92; --type-scale:1.08;
|
|
5
|
-
--accent:#FB845C; --c1:#FB845C; --c2:#AFAA01; --c3:#1ABD7A; --c4:#1FB6C8; --chart-1:#FB845C;
|
|
5
|
+
--accent:#FB845C; --c1:#FB845C; --c2:#AFAA01; --c3:#1ABD7A; --c4:#1FB6C8; --chart-1:#FB845C; --series-1:#FB845C; --series-2:#A6A213; --series-3:#44D792; --series-4:#0FB0C2;
|
|
6
6
|
--title:#F2F7FC; --body:#B5BCC2; --muted:#7E858A; --foot:#7E858A;
|
|
7
7
|
--hair:#37444D; --card-radius:4px;
|
|
8
8
|
--font-head:'Big Shoulders Display','Noto Sans SC',sans-serif;
|
|
@@ -14,6 +14,7 @@
|
|
|
14
14
|
.deck-header,.deck-footer,.deck-pageno{color:var(--muted)}
|
|
15
15
|
.rule,.rule-foot{background:var(--hair)}
|
|
16
16
|
.eyebrow{color:var(--accent);letter-spacing:.22em;font-weight:700}
|
|
17
|
+
.slide:is([data-layout="cover-image"],[data-layout="image-full"],[data-layout="section-fullbleed"]) .eyebrow{color:#FEDACE}
|
|
17
18
|
.accent-bar{background:var(--accent)}
|
|
18
19
|
.deck-title,.cover-title,.section-title,.ending-title{color:var(--title);font-family:var(--font-head);font-weight:700;--talos-bake:1}
|
|
19
20
|
.cover-sub,.ending-sub,.section-desc{color:var(--muted)}
|
|
@@ -25,3 +26,5 @@
|
|
|
25
26
|
.card-grid .card:nth-child(4n+4) .card-rail,.card-grid .card:nth-child(4n+4) .card-dot{background:var(--c4)}
|
|
26
27
|
.kpi-num,.stat-num{color:var(--title);font-family:var(--font-head);--talos-bake:1}
|
|
27
28
|
.kpi-label,.stat-unit{color:var(--muted)} .stat-lead{color:var(--title)} .stat-note{color:var(--body)}
|
|
29
|
+
.slide[data-layout]:not([data-layout^="cover"],[data-layout^="section"],[data-layout^="title"],[data-layout^="ending"],[data-layout="hero"],[data-layout="transition"]) .slide-backdrop:has(> .theme-art-layer) > .sig-layer > *{translate:230px 0}
|
|
30
|
+
.slide[data-layout]:not([data-layout^="cover"],[data-layout^="section"],[data-layout^="title"],[data-layout^="ending"],[data-layout="hero"],[data-layout="transition"]) .slide-backdrop:has(> .theme-art-layer) > .sig-layer{-webkit-mask-image:var(--decor-safe-mask);mask-image:var(--decor-safe-mask)}
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
--paper:#FAFAF8; --ink:#0A0A0A; --grey-1:#F0F0EE; --grey-2:#D4D4D2; --grey-3:#737373;
|
|
11
11
|
--accent:#002FA7; --accent-on:#FFFFFF;
|
|
12
12
|
--c1:#002FA7; --c2:#5B7BFF; --c3:#0A0A0A; --c4:#737373; --chart-1:#4A6FD1;
|
|
13
|
-
--title:#0A0A0A; --body:#3D3D3B; --muted:#737373; --foot:#
|
|
13
|
+
--title:#0A0A0A; --body:#3D3D3B; --muted:#737373; --foot:#8F8F8E;
|
|
14
14
|
--hair:#D4D4D2; --card-radius:0px;
|
|
15
15
|
--font-head:'Inter','Noto Sans SC','PingFang SC',sans-serif;
|
|
16
16
|
--font-body:'Inter','Noto Sans SC','PingFang SC',sans-serif;
|
|
@@ -38,7 +38,7 @@
|
|
|
38
38
|
.cmp-col{background:var(--grey-1);border:none;box-shadow:none}
|
|
39
39
|
.cmp-col--rec{background:var(--accent);color:var(--accent-on);box-shadow:none}
|
|
40
40
|
.cmp-title{color:var(--title);font-weight:600} .cmp-k{color:var(--muted);font-family:var(--font-mono)} .cmp-v{color:var(--title);font-weight:700}
|
|
41
|
-
.cmp-col--rec .cmp-title,.cmp-col--rec .cmp-k,.cmp-col--rec .cmp-v{color:var(--accent-on)}
|
|
41
|
+
.cmp-col--rec .cmp-title,.cmp-col--rec .cmp-k,.cmp-col--rec .cmp-v,.cmp-col--rec .card-title,.cmp-col--rec .card-body,.cmp-col--rec .kpi-num{color:var(--accent-on)}
|
|
42
42
|
.cmp-badge{background:var(--ink);color:#fff;border-radius:0}
|
|
43
43
|
/* kpi / big-stat — 唯一允许粗体的大字:KPI 数字必须 800,不跟随标题的 200 */
|
|
44
44
|
.kpi-num,.stat-num{color:var(--title);font-family:var(--font-head);font-weight:800;letter-spacing:-.03em;font-feature-settings:"tnum"} .kpi-label{color:var(--muted);font-family:var(--font-mono);letter-spacing:.16em;text-transform:uppercase;font-weight:600}
|
|
@@ -59,6 +59,10 @@
|
|
|
59
59
|
/* full-bleed image overlay */
|
|
60
60
|
.overlay-title{color:#fff;font-family:var(--font-head);font-weight:200}
|
|
61
61
|
.overlay-sub{color:rgba(255,255,255,.85);font-weight:300}
|
|
62
|
+
/* 满版图版式的眉题压在照片上:克莱因蓝 #002FA7 压在满版照片的暗渐变上 1.1–1.4:1,看不见。图上文字按图上规则提亮:
|
|
63
|
+
取 accent 混 70% 白(与生成族同一公式)。反色页那个提亮蓝 #5B7BFF 不够 —— 眉题下面是 _contract-defaults.css
|
|
64
|
+
的"可读底线"暗层(~.55),亮图/空占位上它只有 1.5:1。 */
|
|
65
|
+
.slide:is([data-layout="cover-image"],[data-layout="image-full"],[data-layout="section-fullbleed"]) .eyebrow{color:#B3C1E5}
|
|
62
66
|
.tl-dot{background:var(--accent);border-radius:0}
|
|
63
67
|
.tl-date{color:var(--accent);font-family:var(--font-head);font-weight:800;font-feature-settings:"tnum"}
|
|
64
68
|
.tl-title{color:var(--title);font-weight:600} .tl-desc{color:var(--muted);font-family:var(--font-mono)}
|
|
@@ -78,7 +82,8 @@
|
|
|
78
82
|
.ring-fill{stroke:var(--accent)}
|
|
79
83
|
.ring-num{color:var(--title);font-family:var(--font-head);font-weight:800}
|
|
80
84
|
/* toc-panel — 唯一实色反差:纯墨面板(非 accent,避免蓝色滥用) */
|
|
81
|
-
|
|
85
|
+
/* 面板自己的底:SVG 图表的墨色/网格/描边环/系列色跟着容器走,不用页面级 token(deck-chart-svg.ts) */
|
|
86
|
+
.panel{background:var(--ink);box-shadow:none;border-radius:0;--chart-surface:#0A0A0A;--chart-ink:#C7C7C5;--chart-muted:#8A8A88;--chart-title:#FAFAF8;--chart-grid:rgba(250,250,248,.16);--chart-1:#5B7BFF;--chart-accent:#5B7BFF;--series-1:#7FA9FD;--series-2:#DBE4FE;--series-3:#7A7A7A;--series-4:#CACACA}
|
|
82
87
|
.panel-item-title{color:#fff;font-weight:600}
|
|
83
88
|
.panel-item-desc{color:rgba(255,255,255,.7);font-family:var(--font-mono)}
|
|
84
89
|
.toc-brand{color:var(--title);font-family:var(--font-mono);font-weight:600}
|
|
@@ -106,10 +111,10 @@
|
|
|
106
111
|
(accent-bright #5B7BFF),避免深蓝在纯黑上糊掉;标题反色为纸白。 */
|
|
107
112
|
/* Klein blue at #002FA7 is too dark to read on black, and --c3 (#0A0A0A) IS the black.
|
|
108
113
|
Keep the hue, raise the lightness; the near-black step becomes the near-white one. */
|
|
109
|
-
.slide.slide-inverse{--slide-bg:#0A0A0A;--body:#C7C7C5;--muted:#8A8A88;--foot:#5c5c5a;--hair:rgba(250,250,248,.16);--title:#FAFAF8;--grey-1:rgba(250,250,248,.06);--c1:#5B7BFF;--c2:#93A9FF;--c3:#FAFAF8;--c4:#8A8A88}
|
|
114
|
+
.slide.slide-inverse{--slide-bg:#0A0A0A;--body:#C7C7C5;--muted:#8A8A88;--foot:#5c5c5a;--hair:rgba(250,250,248,.16);--title:#FAFAF8;--title-color:#FAFAF8;--body-color:#C7C7C5;--accent:#5B7BFF;--grey-1:rgba(250,250,248,.06);--c1:#5B7BFF;--c2:#93A9FF;--c3:#FAFAF8;--c4:#8A8A88}
|
|
110
115
|
.slide.slide-inverse .eyebrow,.slide.slide-inverse .kpi-num,.slide.slide-inverse .stat-num,.slide.slide-inverse .tl-date{color:#5B7BFF}
|
|
111
116
|
.slide.slide-inverse .card,.slide.slide-inverse .cmp-col,.slide.slide-inverse .step-circle,.slide.slide-inverse .surface{background:rgba(250,250,248,.06)}
|
|
112
|
-
.slide.slide-inverse .panel{background:var(--paper)} .slide.slide-inverse .panel-item-title{color:var(--ink)} .slide.slide-inverse .panel-item-desc{color:rgba(10,10,10,.7)}
|
|
117
|
+
.slide.slide-inverse .panel{background:var(--paper);--chart-surface:#FAFAF8;--chart-ink:#3D3D3B;--chart-muted:#737373;--chart-title:#0A0A0A;--chart-grid:#D4D4D2;--chart-1:#4A6FD1;--chart-accent:#4A6FD1;--series-1:#002FA7;--series-2:#5B7BFF;--series-3:#0A0A0A;--series-4:#737373} .slide.slide-inverse .panel-item-title{color:var(--ink)} .slide.slide-inverse .panel-item-desc{color:rgba(10,10,10,.7)}
|
|
113
118
|
.slide.slide-inverse .cmp-badge{background:var(--paper);color:var(--ink)}
|
|
114
119
|
|
|
115
120
|
/* 点阵矩阵 + 条纹色块装饰仅在封面/hero 页透出(guizang 原则:正文页保持纯净底色) */
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
<!-- generated by scripts/ppt-tpl/gen-skin.mjs — signature: arc-rise -->
|
|
2
2
|
<div style="position:absolute;inset:0;background:#FFF0EF"></div>
|
|
3
|
+
<div class="sig-layer" data-signature="arc-rise" style="position:absolute;inset:0;pointer-events:none">
|
|
3
4
|
<svg style="position:absolute;inset:0;pointer-events:none" width="1280" height="720" viewBox="0 0 1280 720" fill="none" preserveAspectRatio="none">
|
|
4
5
|
<path d="M-40 660 C 420 706, 900 560, 1320 150" stroke="var(--accent)" stroke-opacity=".55" stroke-width="2" fill="none"/>
|
|
5
6
|
<path d="M-40 660 C 420 706, 900 560, 1320 150 L1320 720 L-40 720 Z" fill="var(--accent)" fill-opacity=".08"/>
|
|
6
7
|
</svg>
|
|
8
|
+
</div>
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
手改会在下次生成时丢失:要改就改 family.json。 */
|
|
3
3
|
:root{
|
|
4
4
|
--space-scale:1.1; --type-scale:1.06;
|
|
5
|
-
--accent:#A55B78; --c1:#A55B78; --c2:#A2614B; --c3:#7F7237; --c4:#497E50; --chart-1:#A55B78;
|
|
5
|
+
--accent:#A55B78; --c1:#A55B78; --c2:#A2614B; --c3:#7F7237; --c4:#497E50; --chart-1:#A55B78; --series-1:#A55B78; --series-2:#783B26; --series-3:#988B50; --series-4:#3B7043;
|
|
6
6
|
--title:#3C2C2C; --body:#625453; --muted:#8D7E7D; --foot:#8D7E7D;
|
|
7
7
|
--hair:#EFD4D2; --card-radius:4px;
|
|
8
8
|
--font-head:'Playfair Display','Songti SC',sans-serif;
|
|
@@ -14,6 +14,7 @@
|
|
|
14
14
|
.deck-header,.deck-footer,.deck-pageno{color:var(--muted)}
|
|
15
15
|
.rule,.rule-foot{background:var(--hair)}
|
|
16
16
|
.eyebrow{color:var(--accent);letter-spacing:.22em;font-weight:700}
|
|
17
|
+
.slide:is([data-layout="cover-image"],[data-layout="image-full"],[data-layout="section-fullbleed"]) .eyebrow{color:#E4CED7}
|
|
17
18
|
.accent-bar{background:var(--accent)}
|
|
18
19
|
.deck-title,.cover-title,.section-title,.ending-title{color:var(--title);font-family:var(--font-head);font-weight:700;--talos-bake:1}
|
|
19
20
|
.cover-sub,.ending-sub,.section-desc{color:var(--muted)}
|
|
@@ -25,3 +26,5 @@
|
|
|
25
26
|
.card-grid .card:nth-child(4n+4) .card-rail,.card-grid .card:nth-child(4n+4) .card-dot{background:var(--c4)}
|
|
26
27
|
.kpi-num,.stat-num{color:var(--title);font-family:var(--font-head);--talos-bake:1}
|
|
27
28
|
.kpi-label,.stat-unit{color:var(--muted)} .stat-lead{color:var(--title)} .stat-note{color:var(--body)}
|
|
29
|
+
.slide[data-layout]:not([data-layout^="cover"],[data-layout^="section"],[data-layout^="title"],[data-layout^="ending"],[data-layout="hero"],[data-layout="transition"]) .slide-backdrop:has(> .theme-art-layer) > .sig-layer > *{transform-origin:100% 100%;scale:.22}
|
|
30
|
+
.slide[data-layout]:not([data-layout^="cover"],[data-layout^="section"],[data-layout^="title"],[data-layout^="ending"],[data-layout="hero"],[data-layout="transition"]) .slide-backdrop:has(> .theme-art-layer) > .sig-layer{-webkit-mask-image:var(--decor-safe-mask);mask-image:var(--decor-safe-mask)}
|