@taloswork/ose-shared 0.1.2 → 0.1.3
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 +29 -33
- 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/CormorantGaramond-SemiBold.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/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/PublicSans-Regular.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/fonts.json +218 -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 +280 -49
- package/skills/document/catalog.json +25 -0
- package/skills/document/deck-design.md +191 -0
- package/skills/document/layouts/README.md +32 -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.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 +11 -0
- package/skills/document/packs/README.md +9 -0
- package/skills/document/styles/README.md +36 -15
- 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/black-gold.webp +0 -0
- package/skills/document/styles/_samples/branding.webp +0 -0
- package/skills/document/styles/_samples/cinereel.webp +0 -0
- package/skills/document/styles/_samples/cool.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/magazine-ink.webp +0 -0
- package/skills/document/styles/_samples/mckinsey.webp +0 -0
- package/skills/document/styles/_samples/mono.webp +0 -0
- package/skills/document/styles/_samples/olive-gold.webp +0 -0
- package/skills/document/styles/_samples/swiss-grid.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/black-gold/backdrop.html +3 -0
- package/skills/document/styles/black-gold/skin.css +15 -8
- package/skills/document/styles/branding/backdrop.html +4 -0
- package/skills/document/styles/branding/skin.css +14 -7
- package/skills/document/styles/cinereel/skin.css +28 -10
- package/skills/document/styles/cool/backdrop.html +3 -0
- package/skills/document/styles/cool/skin.css +5 -2
- package/skills/document/styles/hand-drawn/skin.css +14 -6
- package/skills/document/styles/ivory-gold/skin.css +19 -6
- package/skills/document/styles/magazine-ink/skin.css +6 -1
- package/skills/document/styles/mckinsey/backdrop.html +5 -0
- package/skills/document/styles/mckinsey/skin.css +5 -2
- package/skills/document/styles/mono/backdrop.html +6 -0
- package/skills/document/styles/mono/skin.css +5 -2
- package/skills/document/styles/olive-gold/backdrop.html +5 -0
- package/skills/document/styles/olive-gold/skin.css +15 -8
- package/skills/document/styles/swiss-grid/skin.css +6 -1
|
@@ -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). */
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
/* styles/hand-drawn — 手绘涂鸦:纸感底 + 马克笔色 + 深描边卡 + 手写体。
|
|
2
2
|
皮肤层:定义 layouts/*.tpl 用到的全部语义 class。换 skin 只换这一个文件。 */
|
|
3
3
|
:root{
|
|
4
|
+
/* 排版节奏 — layouts 的字号与页边距都写成 calc(N * var(--…-scale,1)),
|
|
5
|
+
所以皮肤可以在不碰任何 layout 的前提下定义自己的疏密。工作坊:字大一点更好读,边距收一点。 */
|
|
6
|
+
--space-scale:0.96; --type-scale:1.05;
|
|
4
7
|
--accent:#E63946; --c1:#E63946; --c2:#457B9D; --c3:#E9A63A; --c4:#2A9D8F; --chart-1:#DE6A66;
|
|
5
8
|
--title:#2B2B2B; --body:#3A3A3A; --muted:#8A8A80; --foot:#A8A89E;
|
|
6
9
|
--hair:rgba(43,43,43,.16); --ink:rgba(43,43,43,.55); --card-radius:16px;
|
|
@@ -16,7 +19,12 @@
|
|
|
16
19
|
.deck-header,.deck-footer,.deck-pageno{color:var(--muted);font-family:'Helvetica Neue','PingFang SC',sans-serif}
|
|
17
20
|
.rule{background:var(--hair)} .rule-foot{background:rgba(43,43,43,.10)}
|
|
18
21
|
.eyebrow{color:var(--accent);font-family:'Helvetica Neue','PingFang SC',sans-serif;font-weight:700} .accent-bar{background:var(--accent);border-radius:2px}
|
|
19
|
-
|
|
22
|
+
/* Gochi Hand is the whole point of this skin and no OS ships it, so the NATIVE text
|
|
23
|
+
layer resolves the stack further down: Comic Sans MS where Microsoft fonts exist,
|
|
24
|
+
and the bare `cursive` keyword (LibreOffice → Snell Roundhand, a copperplate script)
|
|
25
|
+
where they don't. Bake the marker-pen faces so the hand-drawn look is what the
|
|
26
|
+
audience actually sees. `.panel-item-title` stays native — real editable content. */
|
|
27
|
+
.deck-title,.cover-title,.section-title,.ending-title{color:var(--title);font-family:var(--font-head);font-weight:700;--talos-bake:1}
|
|
20
28
|
.cover-sub,.ending-sub,.section-desc{color:var(--body)}
|
|
21
29
|
/* off-white card + dark sketchy border + marker ramp */
|
|
22
30
|
.card{border-radius:var(--card-radius);background:#FFFDF8;border:2px solid var(--ink);box-shadow:0 12px 30px rgba(20,25,45,.08);overflow:hidden}
|
|
@@ -33,19 +41,19 @@
|
|
|
33
41
|
.cmp-col--rec .cmp-v{color:var(--accent)}
|
|
34
42
|
.cmp-badge{background:var(--accent);color:#FFFFFF;font-family:'Helvetica Neue','PingFang SC',sans-serif}
|
|
35
43
|
/* kpi / big-stat */
|
|
36
|
-
.kpi-num,.stat-num{color:var(--title);font-family:var(--font-head)} .kpi-label{color:var(--muted)}
|
|
44
|
+
.kpi-num,.stat-num{color:var(--title);font-family:var(--font-head);--talos-bake:1} .kpi-label{color:var(--muted)}
|
|
37
45
|
.stat-unit{color:var(--accent)} .stat-lead{color:var(--title)} .stat-note{color:var(--body)}
|
|
38
46
|
/* steps */
|
|
39
47
|
.step-line{background:var(--hair)}
|
|
40
|
-
.step-circle{background:#FFFDF8;border:2px solid var(--ink);box-shadow:0 10px 24px rgba(20,25,45,.07);font-family:var(--font-head)}
|
|
48
|
+
.step-circle{background:#FFFDF8;border:2px solid var(--ink);box-shadow:0 10px 24px rgba(20,25,45,.07);font-family:var(--font-head);--talos-bake:1}
|
|
41
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)}
|
|
42
50
|
.step-tag,.step-body{color:var(--muted)} .step-title{color:var(--title)}
|
|
43
51
|
/* toc */
|
|
44
52
|
.toc-item{border-top:2px 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)}
|
|
53
|
+
.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
54
|
.toc-title{color:var(--title)} .toc-desc{color:var(--muted)}
|
|
47
55
|
/* section ghost + surface */
|
|
48
|
-
.section-ghost{color:transparent;-webkit-text-stroke:2px rgba(43,43,43,.14);font-family:var(--font-head)}
|
|
56
|
+
.section-ghost{color:transparent;-webkit-text-stroke:2px rgba(43,43,43,.14);font-family:var(--font-head);--talos-bake:1}
|
|
49
57
|
.surface{background:#FFFDF8;border:2px solid var(--ink);border-radius:16px} .surface-label{color:var(--muted)}
|
|
50
58
|
.ending-contact{color:var(--muted)}
|
|
51
59
|
|
|
@@ -54,7 +62,7 @@
|
|
|
54
62
|
.overlay-sub{color:rgba(255,255,255,.82)}
|
|
55
63
|
/* batch-5 layouts: timeline / concept-hub / cover-image */
|
|
56
64
|
.tl-dot{background:var(--accent);border-radius:50%}
|
|
57
|
-
.tl-date{color:var(--accent);font-family:var(--font-head)}
|
|
65
|
+
.tl-date{color:var(--accent);font-family:var(--font-head);--talos-bake:1}
|
|
58
66
|
.tl-title{color:var(--title)} .tl-desc{color:var(--muted)}
|
|
59
67
|
.hub-center{border-radius:50%;border:3px solid var(--accent)}
|
|
60
68
|
.hub-title{color:var(--accent)}
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
/* styles/ivory-gold — 奶油底 + 青铜金标题(标题=accent,非独立浅色) + Anton 粗体无衬线大写 +
|
|
2
2
|
黑色反色区块(.slide-inverse,同一 layout 可多次复用,每次实例自行决定极性)。
|
|
3
3
|
皮肤层:定义 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
4
|
:root{
|
|
5
|
+
/* 排版节奏 — layouts 的字号与页边距都写成 calc(N * var(--…-scale,1)),
|
|
6
|
+
所以皮肤可以在不碰任何 layout 的前提下定义自己的疏密。奢华极简:靠留白撑场。 */
|
|
7
|
+
--space-scale:1.16; --type-scale:1.0;
|
|
6
8
|
--accent:#A97C3F; --c1:#A97C3F; --c2:#C9A467; --c3:#8A6530; --c4:#DCC08C; --chart-1:#B58A4A;
|
|
7
9
|
--title:#A97C3F; --body:#2B2823; --muted:#6B6558; --foot:#8A8374;
|
|
8
10
|
--hair:rgba(169,124,63,.22); --card-radius:6px;
|
|
@@ -47,19 +49,30 @@
|
|
|
47
49
|
.cmp-col--rec .cmp-v{color:var(--accent)}
|
|
48
50
|
.cmp-badge{background:var(--accent);color:#FFFFFF}
|
|
49
51
|
/* kpi / big-stat */
|
|
50
|
-
|
|
52
|
+
/* Anton in the NATIVE text layer is a lottery (the consuming app substitutes a wider
|
|
53
|
+
generic sans — wrong glyphs, and wide enough to wrap). These are decorative display
|
|
54
|
+
numerals/dates that nobody edits, so fidelity beats editability: bake them, same call
|
|
55
|
+
as the titles above. `.panel-item-title` is deliberately NOT baked — it is real
|
|
56
|
+
content a reader may want to change. Baked text is also invisible to data-anim and
|
|
57
|
+
deck-qa; see deck-design.md § Fonts. */
|
|
58
|
+
.kpi-num,.stat-num{color:var(--title);font-family:var(--font-head);--talos-bake:1} .kpi-label{color:var(--muted)}
|
|
51
59
|
.stat-unit{color:var(--accent)} .stat-lead{color:var(--title)} .stat-note{color:var(--body)}
|
|
52
60
|
/* steps */
|
|
53
61
|
.step-line{background:var(--hair)}
|
|
54
|
-
.step-circle{background:rgba(169,124,63,.05);border:1px solid var(--hair);box-shadow:0 6px 18px rgba(0,0,0,.05);font-family:var(--font-head)}
|
|
62
|
+
.step-circle{background:rgba(169,124,63,.05);border:1px solid var(--hair);box-shadow:0 6px 18px rgba(0,0,0,.05);font-family:var(--font-head);--talos-bake:1}
|
|
55
63
|
.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)}
|
|
56
64
|
.step-tag,.step-body{color:var(--muted)} .step-title{color:var(--title)}
|
|
57
65
|
/* toc */
|
|
58
66
|
.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)}
|
|
59
|
-
.toc-grid .toc-item:nth-child(1) .toc-num{color:var(--c1)} .toc-grid .toc-item:nth-child(2) .toc-num{color:var(--c2)}
|
|
67
|
+
.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
|
|
68
|
+
NATIVE text layer (same failure the title rule above documents). On a big
|
|
69
|
+
display numeral that substitution is wide enough to wrap the trailing "."
|
|
70
|
+
onto its own line — and the numeral renders in a generic sans instead of
|
|
71
|
+
Anton. Bake it: these numerals are decoration, editability buys nothing. */
|
|
72
|
+
.toc-num{color:var(--foot);font-family:var(--font-head);--talos-bake:1}
|
|
60
73
|
.toc-title{color:var(--title)} .toc-desc{color:var(--muted)}
|
|
61
74
|
/* section ghost + surface */
|
|
62
|
-
.section-ghost{color:transparent;-webkit-text-stroke:1px rgba(169,124,63,.22);font-family:var(--font-head)}
|
|
75
|
+
.section-ghost{color:transparent;-webkit-text-stroke:1px rgba(169,124,63,.22);font-family:var(--font-head);--talos-bake:1}
|
|
63
76
|
.surface{background:rgba(169,124,63,.05);border:1px solid var(--hair);border-radius:6px} .surface-label{color:var(--muted)}
|
|
64
77
|
.ending-contact{color:var(--muted)}
|
|
65
78
|
|
|
@@ -68,7 +81,7 @@
|
|
|
68
81
|
.overlay-sub{color:rgba(255,255,255,.82)}
|
|
69
82
|
/* batch-5 layouts: timeline / concept-hub / cover-image */
|
|
70
83
|
.tl-dot{background:var(--accent);border-radius:50%}
|
|
71
|
-
.tl-date{color:var(--accent);font-family:var(--font-head)}
|
|
84
|
+
.tl-date{color:var(--accent);font-family:var(--font-head);--talos-bake:1}
|
|
72
85
|
.tl-title{color:var(--title)} .tl-desc{color:var(--muted)}
|
|
73
86
|
.hub-center{border-radius:50%;border:2px solid var(--accent)}
|
|
74
87
|
.hub-title{color:var(--accent)}
|
|
@@ -6,6 +6,9 @@
|
|
|
6
6
|
Noto Serif SC/Noto Sans SC 已经是 html2pptx 的 CJK 安全字体名单(bin-src/html2pptx.mjs
|
|
7
7
|
cjkFontFaceCss),中文大标题走 CJK 省略 fontFace 的安全路径,不需要 --talos-bake。 */
|
|
8
8
|
:root{
|
|
9
|
+
/* 排版节奏 — layouts 的字号与页边距都写成 calc(N * var(--…-scale,1)),
|
|
10
|
+
所以皮肤可以在不碰任何 layout 的前提下定义自己的疏密。杂志版面:略宽的栏外白。 */
|
|
11
|
+
--space-scale:1.08; --type-scale:1.03;
|
|
9
12
|
--ink:#0A1F3D; --paper:#F1F3F5; --paper-tint:#E4E8EC; --ink-tint:#152A4A;
|
|
10
13
|
--accent:#0A1F3D; --c1:#0A1F3D; --c2:#384962; --c3:#697688; --c4:#9CA5B1; --chart-1:#697688;
|
|
11
14
|
--title:#0A1F3D; --body:#384962; --muted:#697688; --foot:#848F9F;
|
|
@@ -101,7 +104,9 @@
|
|
|
101
104
|
|
|
102
105
|
/* ===== .slide-inverse — 深墨底(guizang 的 .slide.dark);标题/正文一并反色,
|
|
103
106
|
因为这套皮肤是纯墨色无独立色相(同 cinereel),不像 ivory-gold 那样标题恒定。 */
|
|
104
|
-
|
|
107
|
+
/* The ramp is an ink-on-porcelain darkness ladder; on the navy panel it must mirror,
|
|
108
|
+
or --c1 (#0A1F3D) lands EXACTLY on the panel ground and its text disappears. */
|
|
109
|
+
.slide.slide-inverse{--slide-bg:#0A1F3D;--body:#CBD0D7;--muted:#8D97A5;--foot:#6B788A;--hair:rgba(241,243,245,.14);--title:#F1F3F5;--accent:#F1F3F5;--title-color:#F1F3F5;--body-color:#CBD0D7;--c1:#F1F3F5;--c2:#CBD0D7;--c3:#9CA5B1;--c4:#6E7C90}
|
|
105
110
|
.slide.slide-inverse .card,.slide.slide-inverse .cmp-col{border-top-color:rgba(241,243,245,.2)}
|
|
106
111
|
.slide.slide-inverse .cmp-col--rec{border-top-color:var(--title)}
|
|
107
112
|
.slide.slide-inverse .surface{background:rgba(241,243,245,.06)}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
<!-- signature: the consulting binder — a solid top rule with a file-tab stub, the
|
|
2
|
+
four-piece chrome deck-design.md calls the strongest "consulting-grade" signal. -->
|
|
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>
|
|
5
|
+
<div style="position:absolute;right:56px;top:34px;bottom:34px;width:1px;background:var(--hair);pointer-events:none"></div>
|
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
/* styles/mckinsey — 白底 + 深藏青 + 克制蓝 + 扁平卡 + 专业 ramp。复用同一套 layouts。
|
|
2
2
|
证明契约不是只服务深色:同 11 layout 在浅色皮肤下同样成立。 */
|
|
3
3
|
:root{
|
|
4
|
+
/* 排版节奏 — layouts 的字号与页边距都写成 calc(N * var(--…-scale,1)),
|
|
5
|
+
所以皮肤可以在不碰任何 layout 的前提下定义自己的疏密。咨询/董事会:信息密度优先。 */
|
|
6
|
+
--space-scale:0.86; --type-scale:0.95;
|
|
4
7
|
--accent:#2251ff; --c1:#2251ff; --c2:#3E8C8C; --c3:#B07A2E; --c4:#5B6B84; --chart-1:#3A5CE0;
|
|
5
8
|
--title:#0F2340; --body:#354A63; --muted:#6B7A90; --foot:#9AA6B8;
|
|
6
9
|
--hair:#E3E8F0; --card-radius:6px;
|
|
7
|
-
--font-head:'
|
|
8
|
-
--font-body:'
|
|
10
|
+
--font-head:'IBM Plex Sans','PingFang SC','Noto Sans SC','Hiragino Sans GB',sans-serif; --font-heading:var(--font-head);
|
|
11
|
+
--font-body:'IBM Plex Sans','PingFang SC','Noto Sans SC','Hiragino Sans GB',sans-serif;
|
|
9
12
|
}
|
|
10
13
|
.slide{background:#ffffff;color:var(--body);font-family:var(--font-body)}
|
|
11
14
|
.slide-backdrop{position:absolute;inset:0;background:#ffffff}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
<!-- signature: the press sheet — a hairline trim box with corner registration crosses. -->
|
|
2
|
+
<div style="position:absolute;inset:36px;border:1px solid var(--hair);pointer-events:none"></div>
|
|
3
|
+
<div style="position:absolute;left:31px;top:36px;width:11px;height:1px;background:var(--hair);pointer-events:none"></div><div style="position:absolute;left:36px;top:31px;width:1px;height:11px;background:var(--hair);pointer-events:none"></div>
|
|
4
|
+
<div style="position:absolute;right:31px;top:36px;width:11px;height:1px;background:var(--hair);pointer-events:none"></div><div style="position:absolute;right:36px;top:31px;width:1px;height:11px;background:var(--hair);pointer-events:none"></div>
|
|
5
|
+
<div style="position:absolute;left:31px;bottom:36px;width:11px;height:1px;background:var(--hair);pointer-events:none"></div><div style="position:absolute;left:36px;bottom:31px;width:1px;height:11px;background:var(--hair);pointer-events:none"></div>
|
|
6
|
+
<div style="position:absolute;right:31px;bottom:36px;width:11px;height:1px;background:var(--hair);pointer-events:none"></div><div style="position:absolute;right:36px;bottom:31px;width:1px;height:11px;background:var(--hair);pointer-events:none"></div>
|
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
/* styles/mono — 极简单色:纯白底 + 黑灰明度层级(无 hue) + 细线 + 大留白 + 直角卡。
|
|
2
2
|
皮肤层:定义 layouts/*.tpl 用到的全部语义 class。换 skin 只换这一个文件。 */
|
|
3
3
|
:root{
|
|
4
|
+
/* 排版节奏 — layouts 的字号与页边距都写成 calc(N * var(--…-scale,1)),
|
|
5
|
+
所以皮肤可以在不碰任何 layout 的前提下定义自己的疏密。极简报告:留白大、字号收敛。 */
|
|
6
|
+
--space-scale:1.18; --type-scale:0.97;
|
|
4
7
|
--accent:#0A0A0A; --c1:#0A0A0A; --c2:#555555; --c3:#8A8A8A; --c4:#BFBFBF; --chart-1:#3F3F3F;
|
|
5
8
|
--title:#0A0A0A; --body:#555555; --muted:#9B9B9B; --foot:#C4C4C4;
|
|
6
9
|
--hair:#E8E8E8; --card-radius:2px;
|
|
7
|
-
--font-head:'
|
|
8
|
-
--font-body:'
|
|
10
|
+
--font-head:'Archivo','PingFang SC','Noto Sans SC','Hiragino Sans GB',sans-serif;
|
|
11
|
+
--font-body:'Archivo','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. */
|
|
@@ -1 +1,6 @@
|
|
|
1
1
|
<div style="position:absolute;left:0;right:0;bottom:0;height:64px;background:linear-gradient(90deg,__ACCENT__,#E3D394 60%,__ACCENT__);opacity:.9"></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>
|
|
2
|
+
<!-- signature: engraved corners — four L brackets, the award/prospectus convention. -->
|
|
3
|
+
<div style="position:absolute;left:38px;top:38px;width:46px;height:1px;background:var(--accent);opacity:.55;pointer-events:none"></div><div style="position:absolute;left:38px;top:38px;width:1px;height:46px;background:var(--accent);opacity:.55;pointer-events:none"></div>
|
|
4
|
+
<div style="position:absolute;right:38px;top:38px;width:46px;height:1px;background:var(--accent);opacity:.55;pointer-events:none"></div><div style="position:absolute;right:38px;top:38px;width:1px;height:46px;background:var(--accent);opacity:.55;pointer-events:none"></div>
|
|
5
|
+
<div style="position:absolute;left:38px;bottom:38px;width:46px;height:1px;background:var(--accent);opacity:.55;pointer-events:none"></div><div style="position:absolute;left:38px;bottom:38px;width:1px;height:46px;background:var(--accent);opacity:.55;pointer-events:none"></div>
|
|
6
|
+
<div style="position:absolute;right:38px;bottom:38px;width:46px;height:1px;background:var(--accent);opacity:.55;pointer-events:none"></div><div style="position:absolute;right:38px;bottom:38px;width:1px;height:46px;background:var(--accent);opacity:.55;pointer-events:none"></div>
|
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
/* styles/olive-gold — 深橄榄金底 + 亮金 accent + 奶白粗体标题。复用同一套 layouts。
|
|
2
2
|
取色自「Employment Letter」参考:深橄榄棕 #574A0F + 金 #C9B458 + 奶白 + 底部亮金带。 */
|
|
3
3
|
:root{
|
|
4
|
+
/* 排版节奏 — layouts 的字号与页边距都写成 calc(N * var(--…-scale,1)),
|
|
5
|
+
所以皮肤可以在不碰任何 layout 的前提下定义自己的疏密。证书/招商:仪式感留白。 */
|
|
6
|
+
--space-scale:1.1; --type-scale:1.0;
|
|
4
7
|
--accent:#CDB85C; --c1:#CDB85C; --c2:#E3D394; --c3:#B49C42; --c4:#F0E4B0; --chart-1:#B49C42;
|
|
5
8
|
--title:#F8F3E2; --body:#D6CB9E; --muted:#A6996A; --foot:#877A52;
|
|
6
9
|
--hair:rgba(205,184,92,.18); --card-radius:14px;
|
|
7
|
-
--font-head:'
|
|
8
|
-
--font-body:'
|
|
10
|
+
--font-head:'Marcellus','Optima','STKaiti','Kaiti SC','Songti SC','Noto Serif SC',serif;
|
|
11
|
+
--font-body:'Karla','PingFang SC','Noto Sans SC','Hiragino Sans GB',sans-serif;
|
|
9
12
|
/* theme-compat: 让 --style 单独就能给整册上色(标题不落回深色) */
|
|
10
13
|
--title-color:#F8F3E2; --body-color:#D6CB9E; --slide-bg:#574A0F; --font-heading:var(--font-head);
|
|
11
14
|
}
|
|
@@ -17,7 +20,11 @@
|
|
|
17
20
|
.deck-header,.deck-footer,.deck-pageno{color:var(--muted)}
|
|
18
21
|
.rule{background:var(--hair)} .rule-foot{background:rgba(205,184,92,.12)}
|
|
19
22
|
.eyebrow{color:var(--accent)} .accent-bar{background:var(--accent);border-radius:1px}
|
|
20
|
-
|
|
23
|
+
/* This skin's identity IS this face — a didone/garalde/roman falling back to the
|
|
24
|
+
system serif reads as a different deck entirely. Bake the display classes so the
|
|
25
|
+
audience sees it; body copy stays native (editable/searchable). See
|
|
26
|
+
deck-design.md § Fonts for why bundling alone doesn't reach the native text layer. */
|
|
27
|
+
.deck-title,.cover-title,.section-title,.ending-title{color:var(--title);font-family:var(--font-head);font-weight:800;--talos-bake:1}
|
|
21
28
|
.cover-sub,.ending-sub,.section-desc{color:var(--body)}
|
|
22
29
|
.card{border-radius:var(--card-radius);background:linear-gradient(180deg,rgba(205,184,92,.08),rgba(205,184,92,.02));border:1px solid rgba(205,184,92,.22);box-shadow:0 22px 54px rgba(30,25,4,.45);overflow:hidden}
|
|
23
30
|
.card-idx{color:var(--muted)} .card-body{color:var(--body)}
|
|
@@ -31,16 +38,16 @@
|
|
|
31
38
|
.cmp-title{color:var(--title)} .cmp-k{color:var(--muted)} .cmp-v{color:var(--title)}
|
|
32
39
|
.cmp-col--rec .cmp-v{color:var(--accent)}
|
|
33
40
|
.cmp-badge{background:var(--accent);color:#3a3105}
|
|
34
|
-
.kpi-num,.stat-num{color:var(--title);font-family:var(--font-head);font-weight:800} .kpi-label{color:var(--muted)}
|
|
41
|
+
.kpi-num,.stat-num{color:var(--title);font-family:var(--font-head);font-weight:800;--talos-bake:1} .kpi-label{color:var(--muted)}
|
|
35
42
|
.stat-unit{color:var(--accent)} .stat-lead{color:var(--title)} .stat-note{color:var(--body)}
|
|
36
43
|
.step-line{background:linear-gradient(90deg,transparent,var(--accent),transparent);opacity:.5}
|
|
37
|
-
.step-circle{background:linear-gradient(180deg,rgba(205,184,92,.08),rgba(205,184,92,.02));border:1px solid rgba(205,184,92,.24);box-shadow:0 20px 44px rgba(30,25,4,.5);font-family:var(--font-head)}
|
|
44
|
+
.step-circle{background:linear-gradient(180deg,rgba(205,184,92,.08),rgba(205,184,92,.02));border:1px solid rgba(205,184,92,.24);box-shadow:0 20px 44px rgba(30,25,4,.5);font-family:var(--font-head);--talos-bake:1}
|
|
38
45
|
.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)}
|
|
39
46
|
.step-tag,.step-body{color:var(--muted)} .step-title{color:var(--title)}
|
|
40
47
|
.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)}
|
|
41
|
-
.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)}
|
|
48
|
+
.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}
|
|
42
49
|
.toc-title{color:var(--title)} .toc-desc{color:var(--muted)}
|
|
43
|
-
.section-ghost{color:transparent;-webkit-text-stroke:1px rgba(205,184,92,.18);font-family:var(--font-head)}
|
|
50
|
+
.section-ghost{color:transparent;-webkit-text-stroke:1px rgba(205,184,92,.18);font-family:var(--font-head);--talos-bake:1}
|
|
44
51
|
.surface{background:rgba(205,184,92,.05);border:1px solid rgba(205,184,92,.22);border-radius:14px} .surface-label{color:var(--muted)}
|
|
45
52
|
.ending-contact{color:var(--muted)}
|
|
46
53
|
/* full-bleed image overlay — 始终浅色 */
|
|
@@ -48,7 +55,7 @@
|
|
|
48
55
|
.scrim{background:linear-gradient(180deg,transparent 26%,rgba(0,0,0,.6))}
|
|
49
56
|
/* timeline / concept-hub */
|
|
50
57
|
.tl-dot{background:var(--accent);border-radius:50%}
|
|
51
|
-
.tl-date{color:var(--accent);font-family:var(--font-head)}
|
|
58
|
+
.tl-date{color:var(--accent);font-family:var(--font-head);--talos-bake:1}
|
|
52
59
|
.tl-title{color:var(--title)} .tl-desc{color:var(--muted)}
|
|
53
60
|
.hub-center{border-radius:50%;border:2px solid var(--accent)} .hub-title{color:var(--accent)} .hub-link{stroke:var(--accent);opacity:.4}
|
|
54
61
|
/* data-table */
|
|
@@ -4,6 +4,9 @@
|
|
|
4
4
|
(rule 横线除外)。字重阶梯是灵魂:大字越大越细(200),小字越小越粗(500-600),
|
|
5
5
|
唯独 KPI 数字反过来走粗体(800)——guizang 原文精确到这一条,不是通感描述。 */
|
|
6
6
|
:root{
|
|
7
|
+
/* 排版节奏 — layouts 的字号与页边距都写成 calc(N * var(--…-scale,1)),
|
|
8
|
+
所以皮肤可以在不碰任何 layout 的前提下定义自己的疏密。瑞士网格:紧贴栅格,反差靠 layout 自身。 */
|
|
9
|
+
--space-scale:0.9; --type-scale:1.0;
|
|
7
10
|
--paper:#FAFAF8; --ink:#0A0A0A; --grey-1:#F0F0EE; --grey-2:#D4D4D2; --grey-3:#737373;
|
|
8
11
|
--accent:#002FA7; --accent-on:#FFFFFF;
|
|
9
12
|
--c1:#002FA7; --c2:#5B7BFF; --c3:#0A0A0A; --c4:#737373; --chart-1:#4A6FD1;
|
|
@@ -101,7 +104,9 @@
|
|
|
101
104
|
|
|
102
105
|
/* ===== .slide-inverse — 纯墨底(guizang 的 .slide.dark),accent 在暗底自动提亮
|
|
103
106
|
(accent-bright #5B7BFF),避免深蓝在纯黑上糊掉;标题反色为纸白。 */
|
|
104
|
-
|
|
107
|
+
/* Klein blue at #002FA7 is too dark to read on black, and --c3 (#0A0A0A) IS the black.
|
|
108
|
+
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}
|
|
105
110
|
.slide.slide-inverse .eyebrow,.slide.slide-inverse .kpi-num,.slide.slide-inverse .stat-num,.slide.slide-inverse .tl-date{color:#5B7BFF}
|
|
106
111
|
.slide.slide-inverse .card,.slide.slide-inverse .cmp-col,.slide.slide-inverse .step-circle,.slide.slide-inverse .surface{background:rgba(250,250,248,.06)}
|
|
107
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)}
|