@taloswork/ose-shared 0.1.2 → 0.1.4
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 +56 -53
- package/skills/document/assets/fonts/Archivo-Regular.woff2 +0 -0
- package/skills/document/assets/fonts/Archivo-SemiBold.woff2 +0 -0
- package/skills/document/assets/fonts/BigShouldersDisplay-Bold.woff2 +0 -0
- package/skills/document/assets/fonts/BodoniModa-SemiBold.woff2 +0 -0
- package/skills/document/assets/fonts/ChakraPetch-600.woff2 +0 -0
- package/skills/document/assets/fonts/CormorantGaramond-SemiBold.woff2 +0 -0
- package/skills/document/assets/fonts/DMSerifDisplay-400.woff2 +0 -0
- package/skills/document/assets/fonts/Fraunces-SemiBold.woff2 +0 -0
- package/skills/document/assets/fonts/GochiHand-Regular.woff2 +0 -0
- package/skills/document/assets/fonts/IBMPlexSans-Regular.woff2 +0 -0
- package/skills/document/assets/fonts/IBMPlexSans-SemiBold.woff2 +0 -0
- package/skills/document/assets/fonts/Inter-Regular.woff2 +0 -0
- package/skills/document/assets/fonts/Jost-Regular.woff2 +0 -0
- package/skills/document/assets/fonts/Jost-SemiBold.woff2 +0 -0
- package/skills/document/assets/fonts/Karla-Regular.woff2 +0 -0
- package/skills/document/assets/fonts/Lexend-500.woff2 +0 -0
- package/skills/document/assets/fonts/Lora-Regular.woff2 +0 -0
- package/skills/document/assets/fonts/Manrope-Bold.woff2 +0 -0
- package/skills/document/assets/fonts/Manrope-Regular.woff2 +0 -0
- package/skills/document/assets/fonts/Marcellus-Regular.woff2 +0 -0
- package/skills/document/assets/fonts/Nunito-700.woff2 +0 -0
- package/skills/document/assets/fonts/PlayfairDisplay-600.woff2 +0 -0
- package/skills/document/assets/fonts/PublicSans-Regular.woff2 +0 -0
- package/skills/document/assets/fonts/Quicksand-600.woff2 +0 -0
- package/skills/document/assets/fonts/Sora-Regular.woff2 +0 -0
- package/skills/document/assets/fonts/Sora-SemiBold.woff2 +0 -0
- package/skills/document/assets/fonts/SpaceGrotesk-500.woff2 +0 -0
- package/skills/document/assets/fonts/Syne-700.woff2 +0 -0
- package/skills/document/assets/fonts/ZillaSlab-600.woff2 +0 -0
- package/skills/document/assets/fonts/fonts.json +316 -0
- package/skills/document/bin/deck-build.cjs +273 -5
- package/skills/document/bin/doc-gen.cjs +108 -23
- package/skills/document/bin/html2pptx.cjs +284 -51
- package/skills/document/catalog.json +43 -0
- package/skills/document/deck-design.md +191 -0
- package/skills/document/layouts/README.md +33 -0
- package/skills/document/layouts/banner-columns.tpl +9 -9
- package/skills/document/layouts/bento.tpl +3 -3
- package/skills/document/layouts/big-stat.tpl +3 -3
- package/skills/document/layouts/blocks-2x2.tpl +12 -12
- package/skills/document/layouts/brand-values.tpl +5 -5
- package/skills/document/layouts/cards-3.tpl +3 -3
- package/skills/document/layouts/cards-grid.tpl +3 -3
- package/skills/document/layouts/chart-full.tpl +3 -3
- package/skills/document/layouts/chart-kpi.tpl +3 -3
- package/skills/document/layouts/color-palette.tpl +5 -5
- package/skills/document/layouts/comparison.tpl +3 -3
- package/skills/document/layouts/concept-hub.tpl +3 -3
- package/skills/document/layouts/cover-centered.tpl +1 -1
- package/skills/document/layouts/cover-image.tpl +1 -1
- package/skills/document/layouts/cover-minimal.tpl +3 -3
- package/skills/document/layouts/cover-statement.tpl +3 -3
- package/skills/document/layouts/cover.tpl +1 -1
- package/skills/document/layouts/data-table.tpl +3 -3
- package/skills/document/layouts/dos-donts.tpl +14 -14
- package/skills/document/layouts/editorial-panel.tpl +11 -11
- package/skills/document/layouts/ending-contact.tpl +1 -1
- package/skills/document/layouts/ending.tpl +1 -1
- package/skills/document/layouts/funnel.tpl +3 -3
- package/skills/document/layouts/gantt.tpl +3 -3
- package/skills/document/layouts/hero.tpl +3 -3
- package/skills/document/layouts/icon-row.tpl +3 -3
- package/skills/document/layouts/image-full.tpl +5 -5
- package/skills/document/layouts/image-grid.tpl +3 -3
- package/skills/document/layouts/image-left.tpl +3 -3
- package/skills/document/layouts/list.tpl +3 -3
- package/skills/document/layouts/logo-guidelines.tpl +8 -8
- package/skills/document/layouts/map-distribution.tpl +3 -3
- package/skills/document/layouts/map-quad.tpl +6 -6
- package/skills/document/layouts/matrix-2x2.tpl +3 -3
- package/skills/document/layouts/numbered-brief.tpl +12 -12
- package/skills/document/layouts/org-tree.tpl +3 -3
- package/skills/document/layouts/problem-solution-banner.tpl +7 -7
- package/skills/document/layouts/problem-solution.tpl +3 -3
- package/skills/document/layouts/pyramid.tpl +3 -3
- package/skills/document/layouts/quote-aside.tpl +11 -0
- package/skills/document/layouts/quote.tpl +1 -1
- package/skills/document/layouts/radar.tpl +3 -3
- package/skills/document/layouts/ring-progress.tpl +3 -3
- package/skills/document/layouts/section-fullbleed.tpl +3 -3
- package/skills/document/layouts/section-image.tpl +1 -1
- package/skills/document/layouts/section-stat.tpl +1 -1
- package/skills/document/layouts/section.tpl +1 -1
- package/skills/document/layouts/slots.json +1 -1
- package/skills/document/layouts/split-two-col.tpl +3 -3
- package/skills/document/layouts/stats-chart.tpl +3 -3
- package/skills/document/layouts/steps-serpentine.tpl +11 -11
- package/skills/document/layouts/steps-vertical.tpl +3 -3
- package/skills/document/layouts/steps.tpl +3 -3
- package/skills/document/layouts/team-row.tpl +4 -4
- package/skills/document/layouts/three-kpi.tpl +3 -3
- package/skills/document/layouts/timeline.tpl +3 -3
- package/skills/document/layouts/title-meta.tpl +5 -5
- package/skills/document/layouts/title.tpl +2 -2
- package/skills/document/layouts/toc-agenda.tpl +3 -3
- package/skills/document/layouts/toc-editorial.tpl +15 -0
- package/skills/document/layouts/toc-panel.tpl +4 -4
- package/skills/document/layouts/toc.tpl +3 -3
- package/skills/document/layouts/transition.tpl +1 -1
- package/skills/document/layouts/two-kpi.tpl +3 -3
- package/skills/document/layouts/type-specimen.tpl +10 -10
- package/skills/document/layouts/versus.tpl +3 -3
- package/skills/document/motion/README.md +29 -0
- package/skills/document/motion/anthropic.json +29 -0
- package/skills/document/motion/apple.json +41 -0
- package/skills/document/motion/bistro-warm.json +16 -0
- package/skills/document/motion/black-gold.json +29 -0
- package/skills/document/motion/board-brief.json +14 -0
- package/skills/document/motion/bold-clash.json +16 -0
- package/skills/document/motion/branding.json +22 -0
- package/skills/document/motion/campus-teal.json +22 -0
- package/skills/document/motion/cinereel.json +23 -0
- package/skills/document/motion/clinic-care.json +22 -0
- package/skills/document/motion/cool.json +41 -0
- package/skills/document/motion/dark-glass.json +22 -0
- package/skills/document/motion/gov-brief.json +14 -0
- package/skills/document/motion/grid-tech.json +16 -0
- package/skills/document/motion/hand-drawn.json +23 -0
- package/skills/document/motion/ivory-gold.json +22 -0
- package/skills/document/motion/legal-slate.json +15 -0
- package/skills/document/motion/magazine-ink.json +29 -0
- package/skills/document/motion/mckinsey.json +28 -0
- package/skills/document/motion/memphis.json +16 -0
- package/skills/document/motion/mono.json +21 -0
- package/skills/document/motion/neon-cyber.json +42 -0
- package/skills/document/motion/olive-gold.json +22 -0
- package/skills/document/motion/organic-earth.json +15 -0
- package/skills/document/motion/pastel-saas.json +15 -0
- package/skills/document/motion/portfolio-noir.json +21 -0
- package/skills/document/motion/press-room.json +14 -0
- package/skills/document/motion/retro-press.json +15 -0
- package/skills/document/motion/sport-arena.json +16 -0
- package/skills/document/motion/swiss-grid.json +34 -0
- package/skills/document/motion/wedding-blush.json +15 -0
- package/skills/document/packs/README.md +28 -0
- package/skills/document/packs/board-brief/backdrop.html +4 -0
- package/skills/document/packs/board-brief/layouts/cover.tpl +12 -0
- package/skills/document/packs/board-brief/layouts/toc-agenda.tpl +20 -0
- package/skills/document/packs/board-brief/pack.css +27 -0
- package/skills/document/packs/press-room/backdrop.html +4 -0
- package/skills/document/packs/press-room/layouts/cover.tpl +12 -0
- package/skills/document/packs/press-room/layouts/section.tpl +13 -0
- package/skills/document/packs/press-room/pack.css +27 -0
- package/skills/document/styles/README.md +65 -16
- package/skills/document/styles/_contract-defaults.css +55 -0
- package/skills/document/styles/_samples/_groups/biz-premium.webp +0 -0
- package/skills/document/styles/_samples/_groups/creative.webp +0 -0
- package/skills/document/styles/_samples/_groups/editorial.webp +0 -0
- package/skills/document/styles/_samples/_groups/minimal.webp +0 -0
- package/skills/document/styles/_samples/_groups/natural.webp +0 -0
- package/skills/document/styles/_samples/_groups/tech-future.webp +0 -0
- package/skills/document/styles/_samples/anthropic.webp +0 -0
- package/skills/document/styles/_samples/apple.webp +0 -0
- package/skills/document/styles/_samples/bistro-warm.webp +0 -0
- package/skills/document/styles/_samples/black-gold.webp +0 -0
- package/skills/document/styles/_samples/board-brief.webp +0 -0
- package/skills/document/styles/_samples/bold-clash.webp +0 -0
- package/skills/document/styles/_samples/branding.webp +0 -0
- package/skills/document/styles/_samples/campus-teal.webp +0 -0
- package/skills/document/styles/_samples/cinereel.webp +0 -0
- package/skills/document/styles/_samples/clinic-care.webp +0 -0
- package/skills/document/styles/_samples/cool.webp +0 -0
- package/skills/document/styles/_samples/dark-glass.webp +0 -0
- package/skills/document/styles/_samples/gov-brief.webp +0 -0
- package/skills/document/styles/_samples/grid-tech.webp +0 -0
- package/skills/document/styles/_samples/hand-drawn.webp +0 -0
- package/skills/document/styles/_samples/ivory-gold.webp +0 -0
- package/skills/document/styles/_samples/legal-slate.webp +0 -0
- package/skills/document/styles/_samples/magazine-ink.webp +0 -0
- package/skills/document/styles/_samples/mckinsey.webp +0 -0
- package/skills/document/styles/_samples/memphis.webp +0 -0
- package/skills/document/styles/_samples/mono.webp +0 -0
- package/skills/document/styles/_samples/neon-cyber.webp +0 -0
- package/skills/document/styles/_samples/olive-gold.webp +0 -0
- package/skills/document/styles/_samples/organic-earth.webp +0 -0
- package/skills/document/styles/_samples/pastel-saas.webp +0 -0
- package/skills/document/styles/_samples/portfolio-noir.webp +0 -0
- package/skills/document/styles/_samples/press-room.webp +0 -0
- package/skills/document/styles/_samples/retro-press.webp +0 -0
- package/skills/document/styles/_samples/sport-arena.webp +0 -0
- package/skills/document/styles/_samples/swiss-grid.webp +0 -0
- package/skills/document/styles/_samples/wedding-blush.webp +0 -0
- package/skills/document/styles/anthropic/backdrop.html +4 -0
- package/skills/document/styles/anthropic/skin.css +15 -8
- package/skills/document/styles/apple/backdrop.html +4 -1
- package/skills/document/styles/apple/skin.css +5 -2
- package/skills/document/styles/bistro-warm/backdrop.html +4 -0
- package/skills/document/styles/bistro-warm/skin.css +27 -0
- package/skills/document/styles/black-gold/backdrop.html +3 -0
- package/skills/document/styles/black-gold/skin.css +15 -8
- package/skills/document/styles/bold-clash/backdrop.html +4 -0
- package/skills/document/styles/bold-clash/skin.css +27 -0
- package/skills/document/styles/branding/backdrop.html +4 -0
- package/skills/document/styles/branding/skin.css +14 -7
- package/skills/document/styles/campus-teal/backdrop.html +3 -0
- package/skills/document/styles/campus-teal/skin.css +27 -0
- package/skills/document/styles/cinereel/skin.css +28 -10
- package/skills/document/styles/clinic-care/backdrop.html +4 -0
- package/skills/document/styles/clinic-care/skin.css +27 -0
- package/skills/document/styles/cool/backdrop.html +3 -0
- package/skills/document/styles/cool/skin.css +5 -2
- package/skills/document/styles/dark-glass/backdrop.html +4 -0
- package/skills/document/styles/dark-glass/skin.css +27 -0
- package/skills/document/styles/gov-brief/backdrop.html +4 -0
- package/skills/document/styles/gov-brief/skin.css +27 -0
- package/skills/document/styles/grid-tech/backdrop.html +37 -0
- package/skills/document/styles/grid-tech/skin.css +27 -0
- package/skills/document/styles/hand-drawn/skin.css +16 -8
- package/skills/document/styles/ivory-gold/skin.css +21 -8
- package/skills/document/styles/legal-slate/backdrop.html +6 -0
- package/skills/document/styles/legal-slate/skin.css +27 -0
- package/skills/document/styles/magazine-ink/skin.css +7 -2
- package/skills/document/styles/mckinsey/backdrop.html +5 -0
- package/skills/document/styles/mckinsey/skin.css +5 -2
- package/skills/document/styles/memphis/backdrop.html +5 -0
- package/skills/document/styles/memphis/skin.css +27 -0
- package/skills/document/styles/mono/backdrop.html +6 -0
- package/skills/document/styles/mono/skin.css +6 -3
- package/skills/document/styles/neon-cyber/backdrop.html +4 -0
- package/skills/document/styles/neon-cyber/skin.css +27 -0
- package/skills/document/styles/olive-gold/backdrop.html +5 -0
- package/skills/document/styles/olive-gold/skin.css +15 -8
- package/skills/document/styles/organic-earth/backdrop.html +4 -0
- package/skills/document/styles/organic-earth/skin.css +27 -0
- package/skills/document/styles/pastel-saas/backdrop.html +4 -0
- package/skills/document/styles/pastel-saas/skin.css +27 -0
- package/skills/document/styles/portfolio-noir/backdrop.html +4 -0
- package/skills/document/styles/portfolio-noir/skin.css +27 -0
- package/skills/document/styles/retro-press/backdrop.html +6 -0
- package/skills/document/styles/retro-press/skin.css +27 -0
- package/skills/document/styles/sport-arena/backdrop.html +4 -0
- package/skills/document/styles/sport-arena/skin.css +27 -0
- package/skills/document/styles/swiss-grid/skin.css +6 -1
- package/skills/document/styles/wedding-blush/backdrop.html +6 -0
- package/skills/document/styles/wedding-blush/skin.css +27 -0
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
/* styles/anthropic — 温暖人文:奶油底 + 赤陶(clay)珊瑚 + Georgia 衬线标题 + 土系 ramp + 软卡。
|
|
2
2
|
皮肤层:定义 layouts/*.tpl 用到的全部语义 class。换 skin 只换这一个文件。 */
|
|
3
3
|
:root{
|
|
4
|
+
/* 排版节奏 — layouts 的字号与页边距都写成 calc(N * var(--…-scale,1)),
|
|
5
|
+
所以皮肤可以在不碰任何 layout 的前提下定义自己的疏密。研究分享:呼吸感。 */
|
|
6
|
+
--space-scale:1.05; --type-scale:1.0;
|
|
4
7
|
--accent:#CC785C; --c1:#CC785C; --c2:#7C9082; --c3:#BD5D3E; --c4:#B7A99A; --chart-1:#C4785C;
|
|
5
8
|
--title:#191919; --body:#514B3F; --muted:#6B6558; --foot:#9A917F;
|
|
6
9
|
--hair:#DDD6C7; --card-radius:12px;
|
|
7
|
-
--font-head:
|
|
8
|
-
--font-body:'
|
|
10
|
+
--font-head:'Fraunces','Songti SC','Noto Serif SC','Source Han Serif SC',serif;
|
|
11
|
+
--font-body:'Public Sans','PingFang SC','Noto Sans SC','Hiragino Sans GB',sans-serif;
|
|
9
12
|
/* theme-compat vars: SKELETON_CSS's section.slide h1/h2/h3 + section.slide out-specify
|
|
10
13
|
the skin's .cover-title/.slide, so titles/body fall back to these — define them so
|
|
11
14
|
--style alone fully colors the deck. */
|
|
@@ -18,7 +21,11 @@
|
|
|
18
21
|
.deck-header,.deck-footer,.deck-pageno{color:var(--muted)}
|
|
19
22
|
.rule{background:var(--hair)} .rule-foot{background:#E7E1D3}
|
|
20
23
|
.eyebrow{color:var(--accent);font-weight:700} .accent-bar{background:var(--accent);border-radius:1px}
|
|
21
|
-
|
|
24
|
+
/* This skin's identity IS this face — a didone/garalde/roman falling back to the
|
|
25
|
+
system serif reads as a different deck entirely. Bake the display classes so the
|
|
26
|
+
audience sees it; body copy stays native (editable/searchable). See
|
|
27
|
+
deck-design.md § Fonts for why bundling alone doesn't reach the native text layer. */
|
|
28
|
+
.deck-title,.cover-title,.section-title,.ending-title{color:var(--title);font-family:var(--font-head);font-weight:700;--talos-bake:1}
|
|
22
29
|
.cover-sub,.ending-sub,.section-desc{color:var(--muted)}
|
|
23
30
|
/* soft warm card + earthy ramp */
|
|
24
31
|
.card{border-radius:var(--card-radius);background:#FAF8F2;border:1px solid var(--hair);box-shadow:0 10px 28px rgba(80,55,30,.07);overflow:hidden}
|
|
@@ -35,19 +42,19 @@
|
|
|
35
42
|
.cmp-col--rec .cmp-v{color:var(--accent)}
|
|
36
43
|
.cmp-badge{background:var(--accent);color:#FBF6EF;font-family:var(--font-body)}
|
|
37
44
|
/* kpi / big-stat */
|
|
38
|
-
.kpi-num,.stat-num{color:var(--title);font-family:var(--font-head)} .kpi-label{color:var(--muted)}
|
|
45
|
+
.kpi-num,.stat-num{color:var(--title);font-family:var(--font-head);--talos-bake:1} .kpi-label{color:var(--muted)}
|
|
39
46
|
.stat-unit{color:var(--accent)} .stat-lead{color:var(--title)} .stat-note{color:var(--body)}
|
|
40
47
|
/* steps */
|
|
41
48
|
.step-line{background:var(--hair)}
|
|
42
|
-
.step-circle{background:#F6F1E7;border:1px solid var(--hair);box-shadow:0 10px 24px rgba(80,55,30,.06);font-family:var(--font-head)}
|
|
49
|
+
.step-circle{background:#F6F1E7;border:1px solid var(--hair);box-shadow:0 10px 24px rgba(80,55,30,.06);font-family:var(--font-head);--talos-bake:1}
|
|
43
50
|
.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:var(--c4)}
|
|
44
51
|
.step-tag,.step-body{color:var(--muted)} .step-title{color:var(--title)}
|
|
45
52
|
/* toc */
|
|
46
53
|
.toc-item{border-top:1px solid var(--hair)} .toc-grid .toc-item:nth-child(1){border-top-color:var(--accent)} .toc-grid .toc-item:nth-child(2){border-top-color:var(--c2)}
|
|
47
|
-
.toc-grid .toc-item:nth-child(1) .toc-num{color:var(--accent)} .toc-grid .toc-item:nth-child(2) .toc-num{color:var(--c2)} .toc-num{color:var(--foot);font-family:var(--font-head)}
|
|
54
|
+
.toc-grid .toc-item:nth-child(1) .toc-num{color:var(--accent)} .toc-grid .toc-item:nth-child(2) .toc-num{color:var(--c2)} .toc-num{color:var(--foot);font-family:var(--font-head);--talos-bake:1}
|
|
48
55
|
.toc-title{color:var(--title)} .toc-desc{color:var(--muted)}
|
|
49
56
|
/* section ghost + surface */
|
|
50
|
-
.section-ghost{color:transparent;-webkit-text-stroke:1px rgba(204,120,92,.20);font-family:var(--font-head)}
|
|
57
|
+
.section-ghost{color:transparent;-webkit-text-stroke:1px rgba(204,120,92,.20);font-family:var(--font-head);--talos-bake:1}
|
|
51
58
|
.surface{background:#F6F1E7;border:1px solid var(--hair);border-radius:12px} .surface-label{color:var(--muted)}
|
|
52
59
|
.ending-contact{color:var(--muted)}
|
|
53
60
|
|
|
@@ -56,7 +63,7 @@
|
|
|
56
63
|
.overlay-sub{color:rgba(255,255,255,.82)}
|
|
57
64
|
/* batch-5 layouts: timeline / concept-hub / cover-image */
|
|
58
65
|
.tl-dot{background:var(--accent);border-radius:50%}
|
|
59
|
-
.tl-date{color:var(--accent);font-family:var(--font-head)}
|
|
66
|
+
.tl-date{color:var(--accent);font-family:var(--font-head);--talos-bake:1}
|
|
60
67
|
.tl-title{color:var(--title)} .tl-desc{color:var(--muted)}
|
|
61
68
|
.hub-center{border-radius:50%;border:2px solid var(--accent)}
|
|
62
69
|
.hub-title{color:var(--accent)}
|
|
@@ -1 +1,4 @@
|
|
|
1
|
-
<div style="position:absolute;inset:0;background:radial-gradient(70% 50% at 50% -12%,rgba(255,255,255,.07),transparent 55%),radial-gradient(130% 90% at 50% 128%,rgba(0,0,0,.42),transparent 48%)"></div><div class="bd-arc" style="position:absolute;left:0;right:0;height:120px;top:var(--bd-arc-y,540px);pointer-events:none"><svg width="100%" height="100%" viewBox="0 0 1280 120" preserveAspectRatio="none"><defs><linearGradient id="arc" x1="0" y1="0" x2="1" y2="0"><stop offset="0" stop-color="__ACCENT__" stop-opacity=".12"/><stop offset=".5" stop-color="__ACCENT__" stop-opacity=".34"/><stop offset="1" stop-color="__ACCENT__" stop-opacity=".12"/></linearGradient><filter id="arcb"><feGaussianBlur stdDeviation="1.4"/></filter></defs><path d="M-40 100 C 360 22,920 22,1320 100" fill="none" stroke="url(#arc)" stroke-width="1.6" filter="url(#arcb)"/><path d="M-40 100 C 360 22,920 22,1320 100" fill="none" stroke="url(#arc)" stroke-width=".7"/></svg></div><svg style="position:absolute;inset:0;width:100%;height:100%;opacity:.02;mix-blend-mode:screen;pointer-events:none"><filter id="bdap"><feTurbulence type="fractalNoise" baseFrequency=".9" numOctaves="2" stitchTiles="stitch"/></filter><rect width="100%" height="100%" filter="url(#bdap)"/></svg>
|
|
1
|
+
<div style="position:absolute;inset:0;background:radial-gradient(70% 50% at 50% -12%,rgba(255,255,255,.07),transparent 55%),radial-gradient(130% 90% at 50% 128%,rgba(0,0,0,.42),transparent 48%)"></div><div class="bd-arc" style="position:absolute;left:0;right:0;height:120px;top:var(--bd-arc-y,540px);pointer-events:none"><svg width="100%" height="100%" viewBox="0 0 1280 120" preserveAspectRatio="none"><defs><linearGradient id="arc" x1="0" y1="0" x2="1" y2="0"><stop offset="0" stop-color="__ACCENT__" stop-opacity=".12"/><stop offset=".5" stop-color="__ACCENT__" stop-opacity=".34"/><stop offset="1" stop-color="__ACCENT__" stop-opacity=".12"/></linearGradient><filter id="arcb"><feGaussianBlur stdDeviation="1.4"/></filter></defs><path d="M-40 100 C 360 22,920 22,1320 100" fill="none" stroke="url(#arc)" stroke-width="1.6" filter="url(#arcb)"/><path d="M-40 100 C 360 22,920 22,1320 100" fill="none" stroke="url(#arc)" stroke-width=".7"/></svg></div><svg style="position:absolute;inset:0;width:100%;height:100%;opacity:.02;mix-blend-mode:screen;pointer-events:none"><filter id="bdap"><feTurbulence type="fractalNoise" baseFrequency=".9" numOctaves="2" stitchTiles="stitch"/></filter><rect width="100%" height="100%" filter="url(#bdap)"/></svg>
|
|
2
|
+
<!-- signature: the keynote stage — one hairline horizon with a faint floor reflection. -->
|
|
3
|
+
<div style="position:absolute;left:0;right:0;bottom:96px;height:112px;pointer-events:none;background:linear-gradient(180deg,transparent,color-mix(in srgb,var(--accent) 14%,transparent))"></div>
|
|
4
|
+
<div style="position:absolute;left:0;right:0;bottom:96px;height:1px;pointer-events:none;background:linear-gradient(90deg,transparent,var(--accent),transparent);opacity:.55"></div>
|
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
/* styles/apple — keynote 舞台:纯黑底 + 超大留白 + 近白单色层级(无彩色 accent,靠字号/明度分层)。
|
|
2
2
|
皮肤层:定义 layouts/*.tpl 用到的全部语义 class。换 skin 只换这一个文件。 */
|
|
3
3
|
:root{
|
|
4
|
+
/* 排版节奏 — layouts 的字号与页边距都写成 calc(N * var(--…-scale,1)),
|
|
5
|
+
所以皮肤可以在不碰任何 layout 的前提下定义自己的疏密。发布会舞台:超大留白,标题略放。 */
|
|
6
|
+
--space-scale:1.22; --type-scale:1.04;
|
|
4
7
|
--accent:#F5F5F7; --c1:#F5F5F7; --c2:#C7C7CC; --c3:#98989D; --c4:#636366; --chart-1:#6E6E73;
|
|
5
8
|
--title:#F5F5F7; --body:#A1A1A6; --muted:#86868B; --foot:#636366;
|
|
6
9
|
--hair:rgba(255,255,255,.09); --card-radius:20px;
|
|
7
|
-
--font-head:'
|
|
8
|
-
--font-body:'
|
|
10
|
+
--font-head:'Manrope','PingFang SC','Noto Sans SC','Hiragino Sans GB',sans-serif;
|
|
11
|
+
--font-body:'Manrope','PingFang SC','Noto Sans SC','Hiragino Sans GB',sans-serif;
|
|
9
12
|
/* theme-compat vars: SKELETON_CSS targets section.slide h1/h2/h3 + section.slide
|
|
10
13
|
(specificity 0,1,2 / 0,1,1) which out-specify the skin's .cover-title/.slide, so
|
|
11
14
|
titles/body fall back to these. Define them so --style alone fully colors the deck. */
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
<!-- generated by scripts/ppt-tpl/gen-skin.mjs — signature: diagonal-band -->
|
|
2
|
+
<div style="position:absolute;inset:0;background:#FEEEE3"></div>
|
|
3
|
+
<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
|
+
<div style="position:absolute;right:96px;top:-40px;width:2px;height:820px;background:var(--accent);opacity:.5;transform:rotate(18deg);pointer-events:none"></div>
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/* styles/bistro-warm — generated by scripts/ppt-tpl/gen-skin.mjs from ppt-tpl/families/bistro-warm/family.json.
|
|
2
|
+
手改会在下次生成时丢失:要改就改 family.json。 */
|
|
3
|
+
:root{
|
|
4
|
+
--space-scale:1; --type-scale:1.04;
|
|
5
|
+
--accent:#C43C3C; --c1:#C43C3C; --c2:#9B5F0B; --c3:#67730E; --c4:#037E3F; --chart-1:#C43C3C;
|
|
6
|
+
--title:#3A2823; --body:#62514D; --muted:#8D7B76; --foot:#8D7B76;
|
|
7
|
+
--hair:#ECCEC6; --card-radius:4px;
|
|
8
|
+
--font-head:'Zilla Slab','Songti SC',sans-serif;
|
|
9
|
+
--font-body:'Karla','Noto Sans SC',sans-serif;
|
|
10
|
+
--title-color:#3A2823; --body-color:#62514D; --slide-bg:#FEEEE3; --font-heading:var(--font-head);
|
|
11
|
+
}
|
|
12
|
+
.slide{background:#FEEEE3;color:var(--body);font-family:var(--font-body)}
|
|
13
|
+
.slide-backdrop{position:absolute;inset:0;background:#FEEEE3}
|
|
14
|
+
.deck-header,.deck-footer,.deck-pageno{color:var(--muted)}
|
|
15
|
+
.rule,.rule-foot{background:var(--hair)}
|
|
16
|
+
.eyebrow{color:var(--accent);letter-spacing:.22em;font-weight:700}
|
|
17
|
+
.accent-bar{background:var(--accent)}
|
|
18
|
+
.deck-title,.cover-title,.section-title,.ending-title{color:var(--title);font-family:var(--font-head);font-weight:700;--talos-bake:1}
|
|
19
|
+
.cover-sub,.ending-sub,.section-desc{color:var(--muted)}
|
|
20
|
+
.card{border-radius:var(--card-radius);background:transparent;border:1px solid var(--hair)}
|
|
21
|
+
.card-idx{color:var(--muted)} .card-body{color:var(--body)} .card-title{color:var(--title)}
|
|
22
|
+
.card-grid .card:nth-child(4n+1) .card-rail,.card-grid .card:nth-child(4n+1) .card-dot{background:var(--c1)}
|
|
23
|
+
.card-grid .card:nth-child(4n+2) .card-rail,.card-grid .card:nth-child(4n+2) .card-dot{background:var(--c2)}
|
|
24
|
+
.card-grid .card:nth-child(4n+3) .card-rail,.card-grid .card:nth-child(4n+3) .card-dot{background:var(--c3)}
|
|
25
|
+
.card-grid .card:nth-child(4n+4) .card-rail,.card-grid .card:nth-child(4n+4) .card-dot{background:var(--c4)}
|
|
26
|
+
.kpi-num,.stat-num{color:var(--title);font-family:var(--font-head);--talos-bake:1}
|
|
27
|
+
.kpi-label,.stat-unit{color:var(--muted)} .stat-lead{color:var(--title)} .stat-note{color:var(--body)}
|
|
@@ -1 +1,4 @@
|
|
|
1
1
|
<div class="bd-arc" style="position:absolute;left:0;right:0;height:120px;top:var(--bd-arc-y,540px);pointer-events:none"><svg width="100%" height="100%" viewBox="0 0 1280 120" preserveAspectRatio="none"><defs><linearGradient id="arc" x1="0" y1="0" x2="1" y2="0"><stop offset="0" stop-color="__ACCENT__" stop-opacity=".12"/><stop offset=".5" stop-color="__ACCENT__" stop-opacity=".34"/><stop offset="1" stop-color="__ACCENT__" stop-opacity=".12"/></linearGradient><filter id="arcb"><feGaussianBlur stdDeviation="1.4"/></filter></defs><path d="M-40 100 C 360 22,920 22,1320 100" fill="none" stroke="url(#arc)" stroke-width="1.6" filter="url(#arcb)"/><path d="M-40 100 C 360 22,920 22,1320 100" fill="none" stroke="url(#arc)" stroke-width=".7"/></svg></div><svg style="position:absolute;inset:0;width:100%;height:100%;opacity:.045;mix-blend-mode:overlay;pointer-events:none"><filter id="bgn"><feTurbulence type="fractalNoise" baseFrequency=".8" numOctaves="2" stitchTiles="stitch"/></filter><rect width="100%" height="100%" filter="url(#bgn)"/></svg>
|
|
2
|
+
<!-- signature: the certificate — a double rule inside the trim, bond-paper convention. -->
|
|
3
|
+
<div style="position:absolute;inset:26px;border:1px solid var(--accent);opacity:.38;pointer-events:none"></div>
|
|
4
|
+
<div style="position:absolute;inset:33px;border:1px solid var(--hair);pointer-events:none"></div>
|
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
/* styles/black-gold — 纯黑 + 金辉光 + 衬线 + 单色金 ramp。复用同一套 layouts。 */
|
|
2
2
|
:root{
|
|
3
|
+
/* 排版节奏 — layouts 的字号与页边距都写成 calc(N * var(--…-scale,1)),
|
|
4
|
+
所以皮肤可以在不碰任何 layout 的前提下定义自己的疏密。年报:庄重的边距。 */
|
|
5
|
+
--space-scale:1.1; --type-scale:1.0;
|
|
3
6
|
--accent:#D4AF37; --c1:#D4AF37; --c2:#E7C08A; --c3:#C9A24B; --c4:#F5D98B; --chart-1:#B8912C;
|
|
4
7
|
--title:#F6E8C2; --body:#b3a887; --muted:#8a7f63; --foot:#6a614a;
|
|
5
8
|
--hair:rgba(212,175,55,.16); --card-radius:16px;
|
|
6
|
-
--font-head:'
|
|
7
|
-
--font-body:'
|
|
9
|
+
--font-head:'Bodoni Moda','Songti SC','Noto Serif SC','Source Han Serif SC',serif;
|
|
10
|
+
--font-body:'Lora','Songti SC','Noto Serif SC','Source Han Serif SC',serif;
|
|
8
11
|
/* theme-compat vars: SKELETON_CSS's section.slide h1/h2/h3 + section.slide out-specify
|
|
9
12
|
the skin's .cover-title/.slide, so titles/body fall back to these — define them so
|
|
10
13
|
--style alone fully colors the deck (else headings render dark on the dark bg). */
|
|
@@ -18,7 +21,11 @@
|
|
|
18
21
|
.deck-header,.deck-footer,.deck-pageno{color:var(--muted)}
|
|
19
22
|
.rule{background:var(--hair)} .rule-foot{background:rgba(212,175,55,.10)}
|
|
20
23
|
.eyebrow{color:var(--accent)} .accent-bar{background:var(--accent);border-radius:1px}
|
|
21
|
-
|
|
24
|
+
/* This skin's identity IS this face — a didone/garalde/roman falling back to the
|
|
25
|
+
system serif reads as a different deck entirely. Bake the display classes so the
|
|
26
|
+
audience sees it; body copy stays native (editable/searchable). See
|
|
27
|
+
deck-design.md § Fonts for why bundling alone doesn't reach the native text layer. */
|
|
28
|
+
.deck-title,.cover-title,.section-title,.ending-title{color:var(--title);font-family:var(--font-head);font-weight:700;--talos-bake:1}
|
|
22
29
|
.cover-sub,.ending-sub,.section-desc{color:var(--body)}
|
|
23
30
|
.card{border-radius:var(--card-radius);background:linear-gradient(180deg,rgba(212,175,55,.06),rgba(212,175,55,.015));border:1px solid rgba(212,175,55,.20);box-shadow:0 24px 60px rgba(0,0,0,.5);overflow:hidden}
|
|
24
31
|
.card-idx{color:var(--muted)} .card-body{color:var(--body)}
|
|
@@ -32,16 +39,16 @@
|
|
|
32
39
|
.cmp-title{color:var(--title)} .cmp-k{color:var(--muted)} .cmp-v{color:var(--title)}
|
|
33
40
|
.cmp-col--rec .cmp-v{color:var(--accent)}
|
|
34
41
|
.cmp-badge{background:var(--accent);color:#241a04}
|
|
35
|
-
.kpi-num,.stat-num{color:var(--title);font-family:var(--font-head)} .kpi-label{color:var(--muted)}
|
|
42
|
+
.kpi-num,.stat-num{color:var(--title);font-family:var(--font-head);--talos-bake:1} .kpi-label{color:var(--muted)}
|
|
36
43
|
.stat-unit{color:var(--accent)} .stat-lead{color:var(--title)} .stat-note{color:var(--body)}
|
|
37
44
|
.step-line{background:linear-gradient(90deg,transparent,var(--accent),transparent);opacity:.5}
|
|
38
|
-
.step-circle{background:linear-gradient(180deg,rgba(212,175,55,.06),rgba(212,175,55,.015));border:1px solid rgba(212,175,55,.22);box-shadow:0 20px 44px rgba(0,0,0,.5);font-family:var(--font-head)}
|
|
45
|
+
.step-circle{background:linear-gradient(180deg,rgba(212,175,55,.06),rgba(212,175,55,.015));border:1px solid rgba(212,175,55,.22);box-shadow:0 20px 44px rgba(0,0,0,.5);font-family:var(--font-head);--talos-bake:1}
|
|
39
46
|
.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:var(--c4)}
|
|
40
47
|
.step-tag,.step-body{color:var(--muted)} .step-title{color:var(--title)}
|
|
41
48
|
.toc-item{border-top:1px solid var(--hair)} .toc-grid .toc-item:nth-child(1){border-top-color:var(--c1)} .toc-grid .toc-item:nth-child(2){border-top-color:var(--c2)}
|
|
42
|
-
.toc-grid .toc-item:nth-child(1) .toc-num{color:var(--c1)} .toc-grid .toc-item:nth-child(2) .toc-num{color:var(--c2)} .toc-num{color:var(--foot);font-family:var(--font-head)}
|
|
49
|
+
.toc-grid .toc-item:nth-child(1) .toc-num{color:var(--c1)} .toc-grid .toc-item:nth-child(2) .toc-num{color:var(--c2)} .toc-num{color:var(--foot);font-family:var(--font-head);--talos-bake:1}
|
|
43
50
|
.toc-title{color:var(--title)} .toc-desc{color:var(--muted)}
|
|
44
|
-
.section-ghost{color:transparent;-webkit-text-stroke:1px rgba(212,175,55,.16);font-family:var(--font-head)}
|
|
51
|
+
.section-ghost{color:transparent;-webkit-text-stroke:1px rgba(212,175,55,.16);font-family:var(--font-head);--talos-bake:1}
|
|
45
52
|
.surface{background:rgba(212,175,55,.04);border:1px solid rgba(212,175,55,.20);border-radius:16px} .surface-label{color:var(--muted)}
|
|
46
53
|
.ending-contact{color:var(--muted)}
|
|
47
54
|
|
|
@@ -50,7 +57,7 @@
|
|
|
50
57
|
.overlay-sub{color:rgba(255,255,255,.82)}
|
|
51
58
|
/* batch-5 layouts: timeline / concept-hub / cover-image (added classes) */
|
|
52
59
|
.tl-dot{background:var(--accent);border-radius:50%}
|
|
53
|
-
.tl-date{color:var(--accent);font-family:var(--font-head)}
|
|
60
|
+
.tl-date{color:var(--accent);font-family:var(--font-head);--talos-bake:1}
|
|
54
61
|
.tl-title{color:var(--title)} .tl-desc{color:var(--muted)}
|
|
55
62
|
.hub-center{border-radius:50%;border:2px solid var(--accent)}
|
|
56
63
|
.hub-title{color:var(--accent)}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
<!-- generated by scripts/ppt-tpl/gen-skin.mjs — signature: spine -->
|
|
2
|
+
<div style="position:absolute;inset:0;background:#FFE87D"></div>
|
|
3
|
+
<div style="position:absolute;left:0;top:0;bottom:0;width:26px;background:var(--hair);opacity:.55;pointer-events:none"></div>
|
|
4
|
+
<div style="position:absolute;left:0;top:96px;height:216px;width:26px;background:var(--accent);pointer-events:none"></div>
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/* styles/bold-clash — generated by scripts/ppt-tpl/gen-skin.mjs from ppt-tpl/families/bold-clash/family.json.
|
|
2
|
+
手改会在下次生成时丢失:要改就改 family.json。 */
|
|
3
|
+
:root{
|
|
4
|
+
--space-scale:0.9; --type-scale:1.12;
|
|
5
|
+
--accent:#BF257D; --c1:#BF257D; --c2:#905E0A; --c3:#02774C; --c4:#047193; --chart-1:#BF257D;
|
|
6
|
+
--title:#221F15; --body:#4A473D; --muted:#716D60; --foot:#716D60;
|
|
7
|
+
--hair:#C2B68A; --card-radius:4px;
|
|
8
|
+
--font-head:'Anton','Noto Sans SC',sans-serif;
|
|
9
|
+
--font-body:'Karla','Noto Sans SC',sans-serif;
|
|
10
|
+
--title-color:#221F15; --body-color:#4A473D; --slide-bg:#FFE87D; --font-heading:var(--font-head);
|
|
11
|
+
}
|
|
12
|
+
.slide{background:#FFE87D;color:var(--body);font-family:var(--font-body)}
|
|
13
|
+
.slide-backdrop{position:absolute;inset:0;background:#FFE87D}
|
|
14
|
+
.deck-header,.deck-footer,.deck-pageno{color:var(--muted)}
|
|
15
|
+
.rule,.rule-foot{background:var(--hair)}
|
|
16
|
+
.eyebrow{color:var(--accent);letter-spacing:.22em;font-weight:700}
|
|
17
|
+
.accent-bar{background:var(--accent)}
|
|
18
|
+
.deck-title,.cover-title,.section-title,.ending-title{color:var(--title);font-family:var(--font-head);font-weight:700;--talos-bake:1}
|
|
19
|
+
.cover-sub,.ending-sub,.section-desc{color:var(--muted)}
|
|
20
|
+
.card{border-radius:var(--card-radius);background:transparent;border:1px solid var(--hair)}
|
|
21
|
+
.card-idx{color:var(--muted)} .card-body{color:var(--body)} .card-title{color:var(--title)}
|
|
22
|
+
.card-grid .card:nth-child(4n+1) .card-rail,.card-grid .card:nth-child(4n+1) .card-dot{background:var(--c1)}
|
|
23
|
+
.card-grid .card:nth-child(4n+2) .card-rail,.card-grid .card:nth-child(4n+2) .card-dot{background:var(--c2)}
|
|
24
|
+
.card-grid .card:nth-child(4n+3) .card-rail,.card-grid .card:nth-child(4n+3) .card-dot{background:var(--c3)}
|
|
25
|
+
.card-grid .card:nth-child(4n+4) .card-rail,.card-grid .card:nth-child(4n+4) .card-dot{background:var(--c4)}
|
|
26
|
+
.kpi-num,.stat-num{color:var(--title);font-family:var(--font-head);--talos-bake:1}
|
|
27
|
+
.kpi-label,.stat-unit{color:var(--muted)} .stat-lead{color:var(--title)} .stat-note{color:var(--body)}
|
|
@@ -1 +1,5 @@
|
|
|
1
1
|
<div style="position:absolute;inset:0;background:radial-gradient(50% 64% at 92% 4%,rgba(122,154,114,.11),transparent 58%),radial-gradient(44% 54% at 4% 98%,rgba(183,156,110,.07),transparent 62%)"></div><svg width="1280" height="720" viewBox="0 0 1280 720" style="position:absolute;inset:0" preserveAspectRatio="none"><defs><linearGradient id="brl" x1="0" y1="0" x2="1" y2="0"><stop offset="0" stop-color="#7A9A72" stop-opacity="0"/><stop offset=".5" stop-color="#7A9A72" stop-opacity=".26"/><stop offset="1" stop-color="#7A9A72" stop-opacity="0"/></linearGradient></defs><path d="M-40 150 C 380 92,880 128,1330 44" fill="none" stroke="url(#brl)" stroke-width=".7"/></svg><svg style="position:absolute;inset:0;width:100%;height:100%;opacity:.04;mix-blend-mode:multiply;pointer-events:none"><filter id="brn"><feTurbulence type="fractalNoise" baseFrequency=".82" numOctaves="2" stitchTiles="stitch"/></filter><rect width="100%" height="100%" filter="url(#brn)"/></svg>
|
|
2
|
+
<!-- signature: the brand-book spine — a bound left edge with its fold rule. -->
|
|
3
|
+
<div style="position:absolute;left:0;top:0;bottom:0;width:30px;background:var(--accent);opacity:.15;pointer-events:none"></div>
|
|
4
|
+
<div style="position:absolute;left:30px;top:0;bottom:0;width:1px;background:var(--hair);pointer-events:none"></div>
|
|
5
|
+
<div style="position:absolute;left:0;top:64px;width:30px;height:44px;background:var(--accent);opacity:.5;pointer-events:none"></div>
|
|
@@ -2,11 +2,14 @@
|
|
|
2
2
|
清爽、留白大、可持续/美妆/零售调性。原创皮肤(风格方向,非复刻任何模版)。
|
|
3
3
|
浅色 skin:复用同一套 layouts。 */
|
|
4
4
|
:root{
|
|
5
|
+
/* 排版节奏 — layouts 的字号与页边距都写成 calc(N * var(--…-scale,1)),
|
|
6
|
+
所以皮肤可以在不碰任何 layout 的前提下定义自己的疏密。品牌手册:书页般的宽边距。 */
|
|
7
|
+
--space-scale:1.12; --type-scale:0.98;
|
|
5
8
|
--accent:#7A9A72; --c1:#7A9A72; --c2:#B79C6E; --c3:#5E7D5A; --c4:#A9A288; --chart-1:#6F9169;
|
|
6
9
|
--title:#26261F; --body:#57574A; --muted:#8A876F; --foot:#A8A48C;
|
|
7
10
|
--hair:#DFD8C5; --card-radius:10px;
|
|
8
|
-
--font-head:
|
|
9
|
-
--font-body:'
|
|
11
|
+
--font-head:'Cormorant Garamond','Songti SC','Noto Serif SC','Source Han Serif SC',serif;
|
|
12
|
+
--font-body:'Karla','PingFang SC','Noto Sans SC','Hiragino Sans GB',sans-serif;
|
|
10
13
|
/* theme-compat */
|
|
11
14
|
--title-color:#26261F; --body-color:#57574A; --slide-bg:#F3EEE2; --font-heading:var(--font-head);
|
|
12
15
|
}
|
|
@@ -21,6 +24,10 @@
|
|
|
21
24
|
/* --talos-bake:1 → titles bake into the backdrop so the serif shows for CJK too
|
|
22
25
|
(pinning a CJK pptx typeface vanishes in hybrid). Trade-off: title is image,
|
|
23
26
|
not editable/searchable — the accepted cost for a serif 品牌 skin. */
|
|
27
|
+
/* This skin's identity IS this face — a didone/garalde/roman falling back to the
|
|
28
|
+
system serif reads as a different deck entirely. Bake the display classes so the
|
|
29
|
+
audience sees it; body copy stays native (editable/searchable). See
|
|
30
|
+
deck-design.md § Fonts for why bundling alone doesn't reach the native text layer. */
|
|
24
31
|
.deck-title,.cover-title,.section-title,.ending-title{color:var(--title);font-family:var(--font-head);font-weight:700;--talos-bake:1}
|
|
25
32
|
.cover-sub,.ending-sub,.section-desc{color:var(--body)}
|
|
26
33
|
.card{border-radius:var(--card-radius);background:#FBF7EC;border:1px solid var(--hair);box-shadow:0 14px 34px rgba(60,58,40,.09);overflow:hidden}
|
|
@@ -35,16 +42,16 @@
|
|
|
35
42
|
.cmp-title{color:var(--title)} .cmp-k{color:var(--muted)} .cmp-v{color:var(--title)}
|
|
36
43
|
.cmp-col--rec .cmp-v{color:var(--accent)}
|
|
37
44
|
.cmp-badge{background:var(--accent);color:#F6F2E8}
|
|
38
|
-
.kpi-num,.stat-num{color:var(--title);font-family:var(--font-head);font-weight:700} .kpi-label{color:var(--muted)}
|
|
45
|
+
.kpi-num,.stat-num{color:var(--title);font-family:var(--font-head);font-weight:700;--talos-bake:1} .kpi-label{color:var(--muted)}
|
|
39
46
|
.stat-unit{color:var(--accent)} .stat-lead{color:var(--title)} .stat-note{color:var(--body)}
|
|
40
47
|
.step-line{background:linear-gradient(90deg,transparent,var(--accent),transparent);opacity:.5}
|
|
41
|
-
.step-circle{background:#FBF7EC;border:1px solid var(--hair);box-shadow:0 12px 28px rgba(60,58,40,.09);font-family:var(--font-head)}
|
|
48
|
+
.step-circle{background:#FBF7EC;border:1px solid var(--hair);box-shadow:0 12px 28px rgba(60,58,40,.09);font-family:var(--font-head);--talos-bake:1}
|
|
42
49
|
.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:var(--c4)}
|
|
43
50
|
.step-tag,.step-body{color:var(--muted)} .step-title{color:var(--title)}
|
|
44
51
|
.toc-item{border-top:1px solid var(--hair)} .toc-grid .toc-item:nth-child(1){border-top-color:var(--c1)} .toc-grid .toc-item:nth-child(2){border-top-color:var(--c2)}
|
|
45
|
-
.toc-grid .toc-item:nth-child(1) .toc-num{color:var(--c1)} .toc-grid .toc-item:nth-child(2) .toc-num{color:var(--c2)} .toc-num{color:var(--foot);font-family:var(--font-head)}
|
|
52
|
+
.toc-grid .toc-item:nth-child(1) .toc-num{color:var(--c1)} .toc-grid .toc-item:nth-child(2) .toc-num{color:var(--c2)} .toc-num{color:var(--foot);font-family:var(--font-head);--talos-bake:1}
|
|
46
53
|
.toc-title{color:var(--title)} .toc-desc{color:var(--muted)}
|
|
47
|
-
.section-ghost{color:transparent;-webkit-text-stroke:1px rgba(122,154,114,.28);font-family:var(--font-head)}
|
|
54
|
+
.section-ghost{color:transparent;-webkit-text-stroke:1px rgba(122,154,114,.28);font-family:var(--font-head);--talos-bake:1}
|
|
48
55
|
.surface{background:#FBF7EC;border:1px solid var(--hair);border-radius:10px} .surface-label{color:var(--muted)}
|
|
49
56
|
.ending-contact{color:var(--muted)}
|
|
50
57
|
/* full-bleed image overlay — 始终浅色 */
|
|
@@ -52,7 +59,7 @@
|
|
|
52
59
|
.scrim{background:linear-gradient(180deg,transparent 26%,rgba(0,0,0,.58))}
|
|
53
60
|
/* timeline / concept-hub */
|
|
54
61
|
.tl-dot{background:var(--accent);border-radius:50%}
|
|
55
|
-
.tl-date{color:var(--accent);font-family:var(--font-head)}
|
|
62
|
+
.tl-date{color:var(--accent);font-family:var(--font-head);--talos-bake:1}
|
|
56
63
|
.tl-title{color:var(--title)} .tl-desc{color:var(--muted)}
|
|
57
64
|
.hub-center{border-radius:50%;border:2px solid var(--accent)} .hub-title{color:var(--accent)} .hub-link{stroke:var(--accent);opacity:.4}
|
|
58
65
|
/* data-table */
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
<!-- generated by scripts/ppt-tpl/gen-skin.mjs — signature: dot-matrix -->
|
|
2
|
+
<div style="position:absolute;inset:0;background:#E1F8F6"></div>
|
|
3
|
+
<div style="position:absolute;inset:0;background-image:radial-gradient(var(--hair) 1.4px,transparent 1.4px);background-size:28px 28px;opacity:.85;pointer-events:none"></div>
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/* styles/campus-teal — generated by scripts/ppt-tpl/gen-skin.mjs from ppt-tpl/families/campus-teal/family.json.
|
|
2
|
+
手改会在下次生成时丢失:要改就改 family.json。 */
|
|
3
|
+
:root{
|
|
4
|
+
--space-scale:1.06; --type-scale:1.02;
|
|
5
|
+
--accent:#0E6A63; --c1:#0E6A63; --c2:#11677E; --c3:#1860A5; --c4:#7F498F; --chart-1:#0E6A63;
|
|
6
|
+
--title:#1D2F2E; --body:#495856; --muted:#728280; --foot:#728280;
|
|
7
|
+
--hair:#C1DDDA; --card-radius:4px;
|
|
8
|
+
--font-head:'Lexend','Noto Sans SC',sans-serif;
|
|
9
|
+
--font-body:'Public Sans','Noto Sans SC',sans-serif;
|
|
10
|
+
--title-color:#1D2F2E; --body-color:#495856; --slide-bg:#E1F8F6; --font-heading:var(--font-head);
|
|
11
|
+
}
|
|
12
|
+
.slide{background:#E1F8F6;color:var(--body);font-family:var(--font-body)}
|
|
13
|
+
.slide-backdrop{position:absolute;inset:0;background:#E1F8F6}
|
|
14
|
+
.deck-header,.deck-footer,.deck-pageno{color:var(--muted)}
|
|
15
|
+
.rule,.rule-foot{background:var(--hair)}
|
|
16
|
+
.eyebrow{color:var(--accent);letter-spacing:.22em;font-weight:700}
|
|
17
|
+
.accent-bar{background:var(--accent)}
|
|
18
|
+
.deck-title,.cover-title,.section-title,.ending-title{color:var(--title);font-family:var(--font-head);font-weight:700}
|
|
19
|
+
.cover-sub,.ending-sub,.section-desc{color:var(--muted)}
|
|
20
|
+
.card{border-radius:var(--card-radius);background:transparent;border:1px solid var(--hair)}
|
|
21
|
+
.card-idx{color:var(--muted)} .card-body{color:var(--body)} .card-title{color:var(--title)}
|
|
22
|
+
.card-grid .card:nth-child(4n+1) .card-rail,.card-grid .card:nth-child(4n+1) .card-dot{background:var(--c1)}
|
|
23
|
+
.card-grid .card:nth-child(4n+2) .card-rail,.card-grid .card:nth-child(4n+2) .card-dot{background:var(--c2)}
|
|
24
|
+
.card-grid .card:nth-child(4n+3) .card-rail,.card-grid .card:nth-child(4n+3) .card-dot{background:var(--c3)}
|
|
25
|
+
.card-grid .card:nth-child(4n+4) .card-rail,.card-grid .card:nth-child(4n+4) .card-dot{background:var(--c4)}
|
|
26
|
+
.kpi-num,.stat-num{color:var(--title);font-family:var(--font-head)}
|
|
27
|
+
.kpi-label,.stat-unit{color:var(--muted)} .stat-lead{color:var(--title)} .stat-note{color:var(--body)}
|
|
@@ -1,13 +1,16 @@
|
|
|
1
|
-
/* styles/cinereel — 胶片感黑白极简:黑底/照片底 +
|
|
1
|
+
/* styles/cinereel — 胶片感黑白极简:黑底/照片底 + 白色超浓缩粗体大写标题(Big Shoulders
|
|
2
|
+
Display,比 Anton 更窄、字腔更开,对齐 slidescarnival 音乐录影带模板;正文 Jost 几何无衬线)(标题=accent,
|
|
2
3
|
无色相)+ 常驻胶片取景框(顶/底黑色遮幅条,每页恒定)+ .slide-inverse 浅灰面板反色(目录/流程页)。
|
|
3
4
|
皮肤层:定义 layouts/*.tpl 用到的全部语义 class。换 skin 只换这一个文件。 */
|
|
4
|
-
@font-face{font-family:'Anton';src:local('Anton'),url(data:font/woff2;base64,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) format('woff2');font-display:swap}
|
|
5
5
|
:root{
|
|
6
|
+
/* 排版节奏 — layouts 的字号与页边距都写成 calc(N * var(--…-scale,1)),
|
|
7
|
+
所以皮肤可以在不碰任何 layout 的前提下定义自己的疏密。遮幅条已经定了节奏,不再叠加。 */
|
|
8
|
+
--space-scale:1.0; --type-scale:1.0;
|
|
6
9
|
--accent:#F5F4F0; --c1:#F5F4F0; --c2:#C7C5BE; --c3:#8A8880; --c4:#5A584F; --chart-1:#8A8880;
|
|
7
10
|
--title:#F5F4F0; --body:#C7C5BE; --muted:#8A8880; --foot:#656358;
|
|
8
11
|
--hair:rgba(245,244,240,.16); --card-radius:0px;
|
|
9
|
-
--font-head:'
|
|
10
|
-
--font-body:'
|
|
12
|
+
--font-head:'Big Shoulders Display','Anton','PingFang SC','Noto Sans SC',sans-serif;
|
|
13
|
+
--font-body:'Jost','PingFang SC','Noto Sans SC',sans-serif;
|
|
11
14
|
/* theme-compat vars: SKELETON_CSS's section.slide h1/h2/h3 + section.slide out-specify
|
|
12
15
|
the skin's .cover-title/.slide, so titles/body fall back to these — define them so
|
|
13
16
|
--style alone fully colors the deck. */
|
|
@@ -50,19 +53,30 @@
|
|
|
50
53
|
.cmp-col--rec .cmp-v{color:var(--accent)}
|
|
51
54
|
.cmp-badge{background:var(--accent);color:#0D0D0C}
|
|
52
55
|
/* kpi / big-stat */
|
|
53
|
-
|
|
56
|
+
/* Anton in the NATIVE text layer is a lottery (the consuming app substitutes a wider
|
|
57
|
+
generic sans — wrong glyphs, and wide enough to wrap). These are decorative display
|
|
58
|
+
numerals/dates that nobody edits, so fidelity beats editability: bake them, same call
|
|
59
|
+
as the titles above. `.panel-item-title` is deliberately NOT baked — it is real
|
|
60
|
+
content a reader may want to change. Baked text is also invisible to data-anim and
|
|
61
|
+
deck-qa; see deck-design.md § Fonts. */
|
|
62
|
+
.kpi-num,.stat-num{color:var(--title);font-family:var(--font-head);--talos-bake:1} .kpi-label{color:var(--muted)}
|
|
54
63
|
.stat-unit{color:var(--accent)} .stat-lead{color:var(--title)} .stat-note{color:var(--body)}
|
|
55
64
|
/* steps */
|
|
56
65
|
.step-line{background:var(--hair)}
|
|
57
|
-
.step-circle{background:rgba(245,244,240,.04);border:1px solid var(--hair);font-family:var(--font-head);position:relative;z-index:1}
|
|
66
|
+
.step-circle{background:rgba(245,244,240,.04);border:1px solid var(--hair);font-family:var(--font-head);position:relative;z-index:1;--talos-bake:1}
|
|
58
67
|
.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:var(--c4)}
|
|
59
68
|
.step-tag,.step-body{color:var(--muted)} .step-title{color:var(--title)}
|
|
60
69
|
/* toc */
|
|
61
70
|
.toc-item{border-top:1px solid var(--hair)} .toc-grid .toc-item:nth-child(1){border-top-color:var(--c1)} .toc-grid .toc-item:nth-child(2){border-top-color:var(--c2)}
|
|
62
|
-
.toc-grid .toc-item:nth-child(1) .toc-num{color:var(--c1)} .toc-grid .toc-item:nth-child(2) .toc-num{color:var(--c2)}
|
|
71
|
+
.toc-grid .toc-item:nth-child(1) .toc-num{color:var(--c1)} .toc-grid .toc-item:nth-child(2) .toc-num{color:var(--c2)} /* Anton is a custom condensed face the consuming app may fail to resolve for the
|
|
72
|
+
NATIVE text layer (same failure the title rule above documents). On a big
|
|
73
|
+
display numeral that substitution is wide enough to wrap the trailing "."
|
|
74
|
+
onto its own line — and the numeral renders in a generic sans instead of
|
|
75
|
+
Anton. Bake it: these numerals are decoration, editability buys nothing. */
|
|
76
|
+
.toc-num{color:var(--foot);font-family:var(--font-head);--talos-bake:1}
|
|
63
77
|
.toc-title{color:var(--title)} .toc-desc{color:var(--muted)}
|
|
64
78
|
/* section ghost + surface */
|
|
65
|
-
.section-ghost{color:transparent;-webkit-text-stroke:1px rgba(245,244,240,.16);font-family:var(--font-head)}
|
|
79
|
+
.section-ghost{color:transparent;-webkit-text-stroke:1px rgba(245,244,240,.16);font-family:var(--font-head);--talos-bake:1}
|
|
66
80
|
.surface{background:rgba(245,244,240,.05);border:1px solid var(--hair);border-radius:0;position:relative;z-index:1} .surface-label{color:var(--muted)}
|
|
67
81
|
.ending-contact{color:var(--muted)}
|
|
68
82
|
|
|
@@ -71,7 +85,7 @@
|
|
|
71
85
|
.overlay-sub{color:rgba(255,255,255,.82)}
|
|
72
86
|
/* batch-5 layouts: timeline / concept-hub / cover-image */
|
|
73
87
|
.tl-dot{background:var(--accent);border-radius:50%}
|
|
74
|
-
.tl-date{color:var(--accent);font-family:var(--font-head)}
|
|
88
|
+
.tl-date{color:var(--accent);font-family:var(--font-head);--talos-bake:1}
|
|
75
89
|
.tl-title{color:var(--title)} .tl-desc{color:var(--muted)}
|
|
76
90
|
.hub-center{border-radius:50%;border:2px solid var(--accent)}
|
|
77
91
|
.hub-title{color:var(--accent)}
|
|
@@ -125,6 +139,10 @@
|
|
|
125
139
|
/* ===== .slide-inverse — 浅灰面板反色(目录/流程图这类页面,原模版里黑色取景框不变,
|
|
126
140
|
只有中间内容区翻成浅灰;标题/accent 在这套皮肤里没有独立色相,必须跟着翻黑,
|
|
127
141
|
与 ivory-gold 的"标题恒定金色"不同 —— 每个皮肤自行决定哪些 token 要翻)。 */
|
|
128
|
-
.slide.slide-inverse{--slide-bg:#F0EFEA;--body:#3A3830;--muted:#6E6C61;--foot:#8F8D80;--hair:rgba(13,13,12,.14);--title:#0D0D0C;--accent:#0D0D0C;--title-color:#0D0D0C;--body-color:#3A3830
|
|
142
|
+
.slide.slide-inverse{--slide-bg:#F0EFEA;--body:#3A3830;--muted:#6E6C61;--foot:#8F8D80;--hair:rgba(13,13,12,.14);--title:#0D0D0C;--accent:#0D0D0C;--title-color:#0D0D0C;--body-color:#3A3830;/* the 4-step ramp is a LIGHTNESS ladder tuned for the black ground (c1 near-white = most
|
|
143
|
+
emphasis). On the light panel it has to invert too, or the first two steps — the TOC
|
|
144
|
+
numerals, card rails, step circles — sit near-white on near-white and vanish. Same order
|
|
145
|
+
of emphasis, mirrored: c1 darkest. */
|
|
146
|
+
--c1:#0D0D0C;--c2:#3A3830;--c3:#55534A;--c4:#6E6C61}
|
|
129
147
|
.slide.slide-inverse .card,.slide.slide-inverse .cmp-col,.slide.slide-inverse .step-circle,.slide.slide-inverse .surface{background:rgba(13,13,12,.04)}
|
|
130
148
|
.slide.slide-inverse .cmp-badge,.slide.slide-inverse .banner-title{color:#F0EFEA}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
<!-- generated by scripts/ppt-tpl/gen-skin.mjs — signature: rule-frame -->
|
|
2
|
+
<div style="position:absolute;inset:0;background:#EDF9FA"></div>
|
|
3
|
+
<div style="position:absolute;left:40px;top:40px;right:40px;bottom:40px;border:1px solid var(--hair);pointer-events:none"></div>
|
|
4
|
+
<div style="position:absolute;left:52px;top:52px;right:52px;bottom:52px;border:1px solid var(--hair);opacity:.5;pointer-events:none"></div>
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/* styles/clinic-care — generated by scripts/ppt-tpl/gen-skin.mjs from ppt-tpl/families/clinic-care/family.json.
|
|
2
|
+
手改会在下次生成时丢失:要改就改 family.json。 */
|
|
3
|
+
:root{
|
|
4
|
+
--space-scale:1.04; --type-scale:0.98;
|
|
5
|
+
--accent:#05747A; --c1:#05747A; --c2:#157092; --c3:#3A68B0; --c4:#875498; --chart-1:#05747A;
|
|
6
|
+
--title:#212E30; --body:#4B5758; --muted:#748183; --foot:#748183;
|
|
7
|
+
--hair:#CAE1E4; --card-radius:4px;
|
|
8
|
+
--font-head:'Nunito','Noto Sans SC',sans-serif;
|
|
9
|
+
--font-body:'Karla','Noto Sans SC',sans-serif;
|
|
10
|
+
--title-color:#212E30; --body-color:#4B5758; --slide-bg:#EDF9FA; --font-heading:var(--font-head);
|
|
11
|
+
}
|
|
12
|
+
.slide{background:#EDF9FA;color:var(--body);font-family:var(--font-body)}
|
|
13
|
+
.slide-backdrop{position:absolute;inset:0;background:#EDF9FA}
|
|
14
|
+
.deck-header,.deck-footer,.deck-pageno{color:var(--muted)}
|
|
15
|
+
.rule,.rule-foot{background:var(--hair)}
|
|
16
|
+
.eyebrow{color:var(--accent);letter-spacing:.22em;font-weight:700}
|
|
17
|
+
.accent-bar{background:var(--accent)}
|
|
18
|
+
.deck-title,.cover-title,.section-title,.ending-title{color:var(--title);font-family:var(--font-head);font-weight:700}
|
|
19
|
+
.cover-sub,.ending-sub,.section-desc{color:var(--muted)}
|
|
20
|
+
.card{border-radius:var(--card-radius);background:transparent;border:1px solid var(--hair)}
|
|
21
|
+
.card-idx{color:var(--muted)} .card-body{color:var(--body)} .card-title{color:var(--title)}
|
|
22
|
+
.card-grid .card:nth-child(4n+1) .card-rail,.card-grid .card:nth-child(4n+1) .card-dot{background:var(--c1)}
|
|
23
|
+
.card-grid .card:nth-child(4n+2) .card-rail,.card-grid .card:nth-child(4n+2) .card-dot{background:var(--c2)}
|
|
24
|
+
.card-grid .card:nth-child(4n+3) .card-rail,.card-grid .card:nth-child(4n+3) .card-dot{background:var(--c3)}
|
|
25
|
+
.card-grid .card:nth-child(4n+4) .card-rail,.card-grid .card:nth-child(4n+4) .card-dot{background:var(--c4)}
|
|
26
|
+
.kpi-num,.stat-num{color:var(--title);font-family:var(--font-head)}
|
|
27
|
+
.kpi-label,.stat-unit{color:var(--muted)} .stat-lead{color:var(--title)} .stat-note{color:var(--body)}
|
|
@@ -1 +1,4 @@
|
|
|
1
1
|
<div class="bd-arc" style="position:absolute;left:0;right:0;height:120px;top:var(--bd-arc-y,540px);pointer-events:none"><svg width="100%" height="100%" viewBox="0 0 1280 120" preserveAspectRatio="none"><defs><linearGradient id="arc" x1="0" y1="0" x2="1" y2="0"><stop offset="0" stop-color="__ACCENT__" stop-opacity=".12"/><stop offset=".5" stop-color="__ACCENT__" stop-opacity=".34"/><stop offset="1" stop-color="__ACCENT__" stop-opacity=".12"/></linearGradient><filter id="arcb"><feGaussianBlur stdDeviation="1.4"/></filter></defs><path d="M-40 100 C 360 22,920 22,1320 100" fill="none" stroke="url(#arc)" stroke-width="1.6" filter="url(#arcb)"/><path d="M-40 100 C 360 22,920 22,1320 100" fill="none" stroke="url(#arc)" stroke-width=".7"/></svg></div><svg style="position:absolute;inset:0;width:100%;height:100%;opacity:.05;mix-blend-mode:overlay;pointer-events:none"><filter id="bdns"><feTurbulence type="fractalNoise" baseFrequency=".85" numOctaves="2" stitchTiles="stitch"/></filter><rect width="100%" height="100%" filter="url(#bdns)"/></svg>
|
|
2
|
+
<!-- signature: instrument ticks — a measurement scale along the top right edge. -->
|
|
3
|
+
<div style="position:absolute;right:56px;top:34px;display:flex;gap:9px;align-items:flex-start;pointer-events:none"><span style="display:block;width:1px;height:16px;background:var(--accent);opacity:.8"></span><span style="display:block;width:1px;height:8px;background:var(--accent);opacity:.45"></span><span style="display:block;width:1px;height:8px;background:var(--accent);opacity:.45"></span><span style="display:block;width:1px;height:8px;background:var(--accent);opacity:.45"></span><span style="display:block;width:1px;height:16px;background:var(--accent);opacity:.8"></span><span style="display:block;width:1px;height:8px;background:var(--accent);opacity:.45"></span><span style="display:block;width:1px;height:8px;background:var(--accent);opacity:.45"></span><span style="display:block;width:1px;height:8px;background:var(--accent);opacity:.45"></span><span style="display:block;width:1px;height:16px;background:var(--accent);opacity:.8"></span></div>
|
|
4
|
+
<div style="position:absolute;right:56px;top:34px;width:129px;height:1px;background:var(--accent);opacity:.5;pointer-events:none"></div>
|
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
/* styles/cool — 默认酷炫:深蓝底 + 蓝青辉光 + 玻璃卡 + 4 色 accent ramp。
|
|
2
2
|
皮肤层:定义 layouts/*.tpl 用到的全部语义 class。换 skin 只换这一个文件。 */
|
|
3
3
|
:root{
|
|
4
|
+
/* 排版节奏 — layouts 的字号与页边距都写成 calc(N * var(--…-scale,1)),
|
|
5
|
+
所以皮肤可以在不碰任何 layout 的前提下定义自己的疏密。基准。 */
|
|
6
|
+
--space-scale:1.0; --type-scale:1.0;
|
|
4
7
|
--accent:#7DE2D1; --c1:#7DE2D1; --c2:#A9B4FF; --c3:#E7C08A; --c4:#E6A0B0; --chart-1:#35B0A0;
|
|
5
8
|
--title:#F4F8FF; --body:#93A0BE; --muted:#6E7A98; --foot:#5C6885;
|
|
6
9
|
--hair:rgba(255,255,255,.08); --card-radius:18px; --glow:0 0 18px var(--accent);
|
|
7
|
-
--font-head:'
|
|
8
|
-
--font-body:'
|
|
10
|
+
--font-head:'Sora','PingFang SC','Noto Sans SC','Hiragino Sans GB',sans-serif;
|
|
11
|
+
--font-body:'Sora','PingFang SC','Noto Sans SC','Hiragino Sans GB',sans-serif;
|
|
9
12
|
/* theme-compat vars: SKELETON_CSS's section.slide h1/h2/h3 + section.slide out-specify
|
|
10
13
|
the skin's .cover-title/.slide, so titles/body fall back to these — define them so
|
|
11
14
|
--style alone fully colors the deck (else headings render dark on the dark bg). */
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
<!-- generated by scripts/ppt-tpl/gen-skin.mjs — signature: corner-marks -->
|
|
2
|
+
<div style="position:absolute;inset:0;background:#1A252B"></div>
|
|
3
|
+
<div style="position:absolute;left:56px;top:56px;border-left:2px solid var(--accent);border-top:2px solid var(--accent);width:34px;height:34px;pointer-events:none"></div>
|
|
4
|
+
<div style="position:absolute;right:56px;bottom:56px;border-right:2px solid var(--accent);border-bottom:2px solid var(--accent);width:34px;height:34px;pointer-events:none"></div>
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/* styles/dark-glass — generated by scripts/ppt-tpl/gen-skin.mjs from ppt-tpl/families/dark-glass/family.json.
|
|
2
|
+
手改会在下次生成时丢失:要改就改 family.json。 */
|
|
3
|
+
:root{
|
|
4
|
+
--space-scale:1.06; --type-scale:0.98;
|
|
5
|
+
--accent:#1EC2D2; --c1:#1EC2D2; --c2:#46BBFC; --c3:#B0A7FB; --c4:#F292CB; --chart-1:#1EC2D2;
|
|
6
|
+
--title:#EEF5F8; --body:#B4BDC2; --muted:#7D8589; --foot:#7D8589;
|
|
7
|
+
--hair:#3D484F; --card-radius:4px;
|
|
8
|
+
--font-head:'Space Grotesk','Noto Sans SC',sans-serif;
|
|
9
|
+
--font-body:'Inter','Noto Sans SC',sans-serif;
|
|
10
|
+
--title-color:#EEF5F8; --body-color:#B4BDC2; --slide-bg:#1A252B; --font-heading:var(--font-head);
|
|
11
|
+
}
|
|
12
|
+
.slide{background:#1A252B;color:var(--body);font-family:var(--font-body)}
|
|
13
|
+
.slide-backdrop{position:absolute;inset:0;background:#1A252B}
|
|
14
|
+
.deck-header,.deck-footer,.deck-pageno{color:var(--muted)}
|
|
15
|
+
.rule,.rule-foot{background:var(--hair)}
|
|
16
|
+
.eyebrow{color:var(--accent);letter-spacing:.22em;font-weight:700}
|
|
17
|
+
.accent-bar{background:var(--accent)}
|
|
18
|
+
.deck-title,.cover-title,.section-title,.ending-title{color:var(--title);font-family:var(--font-head);font-weight:700}
|
|
19
|
+
.cover-sub,.ending-sub,.section-desc{color:var(--muted)}
|
|
20
|
+
.card{border-radius:var(--card-radius);background:transparent;border:1px solid var(--hair)}
|
|
21
|
+
.card-idx{color:var(--muted)} .card-body{color:var(--body)} .card-title{color:var(--title)}
|
|
22
|
+
.card-grid .card:nth-child(4n+1) .card-rail,.card-grid .card:nth-child(4n+1) .card-dot{background:var(--c1)}
|
|
23
|
+
.card-grid .card:nth-child(4n+2) .card-rail,.card-grid .card:nth-child(4n+2) .card-dot{background:var(--c2)}
|
|
24
|
+
.card-grid .card:nth-child(4n+3) .card-rail,.card-grid .card:nth-child(4n+3) .card-dot{background:var(--c3)}
|
|
25
|
+
.card-grid .card:nth-child(4n+4) .card-rail,.card-grid .card:nth-child(4n+4) .card-dot{background:var(--c4)}
|
|
26
|
+
.kpi-num,.stat-num{color:var(--title);font-family:var(--font-head)}
|
|
27
|
+
.kpi-label,.stat-unit{color:var(--muted)} .stat-lead{color:var(--title)} .stat-note{color:var(--body)}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
<!-- generated by scripts/ppt-tpl/gen-skin.mjs — signature: header-band -->
|
|
2
|
+
<div style="position:absolute;inset:0;background:#F6FAFD"></div>
|
|
3
|
+
<div style="position:absolute;left:0;right:0;top:0;height:5px;background:var(--accent);opacity:.92;pointer-events:none"></div>
|
|
4
|
+
<div style="position:absolute;left:0;top:0;width:60px;height:16px;background:var(--accent);pointer-events:none"></div>
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/* styles/gov-brief — generated by scripts/ppt-tpl/gen-skin.mjs from ppt-tpl/families/gov-brief/family.json.
|
|
2
|
+
手改会在下次生成时丢失:要改就改 family.json。 */
|
|
3
|
+
:root{
|
|
4
|
+
--space-scale:1; --type-scale:0.96;
|
|
5
|
+
--accent:#04557A; --c1:#04557A; --c2:#514884; --c3:#80365E; --c4:#843931; --chart-1:#04557A;
|
|
6
|
+
--title:#23292D; --body:#4C5154; --muted:#787D81; --foot:#787D81;
|
|
7
|
+
--hair:#CFD8E0; --card-radius:4px;
|
|
8
|
+
--font-head:'Public Sans','Noto Sans SC',sans-serif;
|
|
9
|
+
--font-body:'IBM Plex Sans','Noto Sans SC',sans-serif;
|
|
10
|
+
--title-color:#23292D; --body-color:#4C5154; --slide-bg:#F6FAFD; --font-heading:var(--font-head);
|
|
11
|
+
}
|
|
12
|
+
.slide{background:#F6FAFD;color:var(--body);font-family:var(--font-body)}
|
|
13
|
+
.slide-backdrop{position:absolute;inset:0;background:#F6FAFD}
|
|
14
|
+
.deck-header,.deck-footer,.deck-pageno{color:var(--muted)}
|
|
15
|
+
.rule,.rule-foot{background:var(--hair)}
|
|
16
|
+
.eyebrow{color:var(--accent);letter-spacing:.22em;font-weight:700}
|
|
17
|
+
.accent-bar{background:var(--accent)}
|
|
18
|
+
.deck-title,.cover-title,.section-title,.ending-title{color:var(--title);font-family:var(--font-head);font-weight:700}
|
|
19
|
+
.cover-sub,.ending-sub,.section-desc{color:var(--muted)}
|
|
20
|
+
.card{border-radius:var(--card-radius);background:transparent;border:1px solid var(--hair)}
|
|
21
|
+
.card-idx{color:var(--muted)} .card-body{color:var(--body)} .card-title{color:var(--title)}
|
|
22
|
+
.card-grid .card:nth-child(4n+1) .card-rail,.card-grid .card:nth-child(4n+1) .card-dot{background:var(--c1)}
|
|
23
|
+
.card-grid .card:nth-child(4n+2) .card-rail,.card-grid .card:nth-child(4n+2) .card-dot{background:var(--c2)}
|
|
24
|
+
.card-grid .card:nth-child(4n+3) .card-rail,.card-grid .card:nth-child(4n+3) .card-dot{background:var(--c3)}
|
|
25
|
+
.card-grid .card:nth-child(4n+4) .card-rail,.card-grid .card:nth-child(4n+4) .card-dot{background:var(--c4)}
|
|
26
|
+
.kpi-num,.stat-num{color:var(--title);font-family:var(--font-head)}
|
|
27
|
+
.kpi-label,.stat-unit{color:var(--muted)} .stat-lead{color:var(--title)} .stat-note{color:var(--body)}
|