@lemonppt/themes 0.2.0 → 0.2.1

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/dist/index.d.ts CHANGED
@@ -191,7 +191,7 @@ export declare const themes: readonly [{
191
191
  readonly riseDistance: "18px";
192
192
  readonly riseDuration: "0.6s";
193
193
  };
194
- }, import("./index.js").Theme04Tokens, import("./index.js").Theme05Tokens, import("./index.js").Theme06Tokens];
194
+ }, import("./index.js").Theme04Tokens, import("./index.js").Theme05Tokens, import("./index.js").Theme06Tokens, import("./index.js").Theme07Tokens, import("./index.js").Theme08Tokens, import("./index.js").Theme09Tokens, import("./index.js").Theme10Tokens];
195
195
  export type ThemeToken = typeof themes[number];
196
196
  export declare function getTheme(id: string): ThemeToken | undefined;
197
197
  export * from './theme01/tokens.js';
@@ -200,4 +200,8 @@ export * from './theme03/tokens.js';
200
200
  export * from './theme04/tokens.js';
201
201
  export * from './theme05/tokens.js';
202
202
  export * from './theme06/tokens.js';
203
+ export * from './theme07/tokens.js';
204
+ export * from './theme08/tokens.js';
205
+ export * from './theme09/tokens.js';
206
+ export * from './theme10/tokens.js';
203
207
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAWA,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8GAAsG,CAAC;AAE1H,MAAM,MAAM,UAAU,GAAG,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC;AAE/C,wBAAgB,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,CAE3D;AAED,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAeA,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8PAAkK,CAAC;AAEtL,MAAM,MAAM,UAAU,GAAG,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC;AAE/C,wBAAgB,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,CAE3D;AAED,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC"}
package/dist/index.js CHANGED
@@ -7,7 +7,11 @@ import { theme03Tokens } from './theme03/tokens.js';
7
7
  import { theme04Tokens } from './theme04/tokens.js';
8
8
  import { theme05Tokens } from './theme05/tokens.js';
9
9
  import { theme06Tokens } from './theme06/tokens.js';
10
- export const themes = [theme01Tokens, theme02Tokens, theme03Tokens, theme04Tokens, theme05Tokens, theme06Tokens];
10
+ import { theme07Tokens } from './theme07/tokens.js';
11
+ import { theme08Tokens } from './theme08/tokens.js';
12
+ import { theme09Tokens } from './theme09/tokens.js';
13
+ import { theme10Tokens } from './theme10/tokens.js';
14
+ export const themes = [theme01Tokens, theme02Tokens, theme03Tokens, theme04Tokens, theme05Tokens, theme06Tokens, theme07Tokens, theme08Tokens, theme09Tokens, theme10Tokens];
11
15
  export function getTheme(id) {
12
16
  return themes.find((t) => t.id === id);
13
17
  }
@@ -17,4 +21,8 @@ export * from './theme03/tokens.js';
17
21
  export * from './theme04/tokens.js';
18
22
  export * from './theme05/tokens.js';
19
23
  export * from './theme06/tokens.js';
24
+ export * from './theme07/tokens.js';
25
+ export * from './theme08/tokens.js';
26
+ export * from './theme09/tokens.js';
27
+ export * from './theme10/tokens.js';
20
28
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,gDAAgD;AAChD,gCAAgC;AAChC,6CAA6C;AAE7C,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,CAAU,CAAC;AAI1H,MAAM,UAAU,QAAQ,CAAC,EAAU;IACjC,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;AACzC,CAAC;AAED,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,gDAAgD;AAChD,gCAAgC;AAChC,6CAA6C;AAE7C,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,CAAU,CAAC;AAItL,MAAM,UAAU,QAAQ,CAAC,EAAU;IACjC,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;AACzC,CAAC;AAED,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC"}
@@ -110,7 +110,7 @@ const darkBase = {
110
110
  const lightBase = {
111
111
  ink: '#05080d',
112
112
  ink2: 'rgba(5, 8, 13, 0.72)',
113
- ink3: 'rgba(5, 8, 13, 0.52)',
113
+ ink3: 'rgba(5, 8, 13, 0.68)',
114
114
  textInverse: '#e8edf3',
115
115
  bg: '#f1f3f5',
116
116
  bgGradientStart: '#f1f3f5',
@@ -0,0 +1,99 @@
1
+ /**
2
+ * theme07 设计 Token。
3
+ * 风格:冷白调研风 / Cold White Research。
4
+ * 冷白底 + 深墨文字 + 低饱和强调色 + 结构化数据卡片,适合白皮书、调研报告、竞品分析、学术/政策型表达。
5
+ * 衬线标题增强学术感,单一冷白外观(接口预留 dark 扩展)。
6
+ */
7
+ export interface Theme07Tokens {
8
+ id: string;
9
+ displayName: string;
10
+ description: string;
11
+ colors: {
12
+ ink: string;
13
+ ink2: string;
14
+ ink3: string;
15
+ textInverse: string;
16
+ accent: string;
17
+ accent2: string;
18
+ accentCool: string;
19
+ red: string;
20
+ orange: string;
21
+ amber: string;
22
+ yellow: string;
23
+ teal: string;
24
+ green: string;
25
+ cyan: string;
26
+ blue: string;
27
+ indigo: string;
28
+ violet: string;
29
+ purple: string;
30
+ series: readonly string[];
31
+ background: string;
32
+ backgroundGradientStart: string;
33
+ backgroundGradientEnd: string;
34
+ surface: string;
35
+ surfaceStrong: string;
36
+ surfaceSolid: string;
37
+ surfaceElevated: string;
38
+ border: string;
39
+ borderStrong: string;
40
+ shadow: string;
41
+ shadowSmall: string;
42
+ nodeBg: string;
43
+ nodeBorder: string;
44
+ edge: string;
45
+ focusGlow: string;
46
+ panelLine: string;
47
+ };
48
+ fonts: {
49
+ heading: string;
50
+ body: string;
51
+ mono: string;
52
+ en: string;
53
+ };
54
+ spacing: {
55
+ pagePadding: string;
56
+ sectionGap: string;
57
+ elementGap: string;
58
+ padTop: string;
59
+ padBottom: string;
60
+ cardPaddingLarge: string;
61
+ cardPaddingMedium: string;
62
+ };
63
+ borderRadius: {
64
+ small: string;
65
+ medium: string;
66
+ large: string;
67
+ };
68
+ fontSize: {
69
+ display: string;
70
+ displaySmall: string;
71
+ h1: string;
72
+ h2: string;
73
+ h3: string;
74
+ body: string;
75
+ bodySmall: string;
76
+ caption: string;
77
+ };
78
+ effect: {
79
+ riseDistance: string;
80
+ riseDuration: string;
81
+ };
82
+ }
83
+ export type Theme07Appearance = 'light' | 'dark';
84
+ export declare const theme07Tokens: Theme07Tokens;
85
+ export declare function getTheme07Tokens(appearance?: Theme07Appearance): Theme07Tokens;
86
+ /**
87
+ * 生成指定外观的 CSS 变量块,可直接注入 <style>。
88
+ */
89
+ export declare function generateTheme07CssVariables(appearance?: Theme07Appearance): string;
90
+ /**
91
+ * 生成默认 light 的 CSS 变量块。
92
+ */
93
+ export declare function generateTheme07CssVariablesWithAppearance(): string;
94
+ /**
95
+ * 生成包含 light + dark 外观的完整 CSS 变量块。
96
+ * 通过 :root 的 data-appearance 属性切换。
97
+ */
98
+ export declare function generateTheme07CssVariablesWithSchemesAndAppearance(): string;
99
+ //# sourceMappingURL=tokens.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tokens.d.ts","sourceRoot":"","sources":["../../src/theme07/tokens.ts"],"names":[],"mappings":"AAIA;;;;;GAKG;AACH,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE;QACN,GAAG,EAAE,MAAM,CAAC;QACZ,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;QACpB,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,MAAM,CAAC;QAChB,UAAU,EAAE,MAAM,CAAC;QACnB,GAAG,EAAE,MAAM,CAAC;QACZ,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;QAC1B,UAAU,EAAE,MAAM,CAAC;QACnB,uBAAuB,EAAE,MAAM,CAAC;QAChC,qBAAqB,EAAE,MAAM,CAAC;QAC9B,OAAO,EAAE,MAAM,CAAC;QAChB,aAAa,EAAE,MAAM,CAAC;QACtB,YAAY,EAAE,MAAM,CAAC;QACrB,eAAe,EAAE,MAAM,CAAC;QACxB,MAAM,EAAE,MAAM,CAAC;QACf,YAAY,EAAE,MAAM,CAAC;QACrB,MAAM,EAAE,MAAM,CAAC;QACf,WAAW,EAAE,MAAM,CAAC;QACpB,MAAM,EAAE,MAAM,CAAC;QACf,UAAU,EAAE,MAAM,CAAC;QACnB,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,KAAK,EAAE;QACL,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,EAAE,EAAE,MAAM,CAAC;KACZ,CAAC;IACF,OAAO,EAAE;QACP,WAAW,EAAE,MAAM,CAAC;QACpB,UAAU,EAAE,MAAM,CAAC;QACnB,UAAU,EAAE,MAAM,CAAC;QACnB,MAAM,EAAE,MAAM,CAAC;QACf,SAAS,EAAE,MAAM,CAAC;QAClB,gBAAgB,EAAE,MAAM,CAAC;QACzB,iBAAiB,EAAE,MAAM,CAAC;KAC3B,CAAC;IACF,YAAY,EAAE;QACZ,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;IACF,QAAQ,EAAE;QACR,OAAO,EAAE,MAAM,CAAC;QAChB,YAAY,EAAE,MAAM,CAAC;QACrB,EAAE,EAAE,MAAM,CAAC;QACX,EAAE,EAAE,MAAM,CAAC;QACX,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,MAAM,EAAE;QACN,YAAY,EAAE,MAAM,CAAC;QACrB,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC;CACH;AAED,MAAM,MAAM,iBAAiB,GAAG,OAAO,GAAG,MAAM,CAAC;AA8FjD,eAAO,MAAM,aAAa,eAA6B,CAAC;AAExD,wBAAgB,gBAAgB,CAAC,UAAU,GAAE,iBAA2B,GAAG,aAAa,CAEvF;AA4MD;;GAEG;AACH,wBAAgB,2BAA2B,CAAC,UAAU,GAAE,iBAA2B,GAAG,MAAM,CAG3F;AAED;;GAEG;AACH,wBAAgB,yCAAyC,IAAI,MAAM,CAElE;AAED;;;GAGG;AACH,wBAAgB,mDAAmD,IAAI,MAAM,CAc5E"}
@@ -0,0 +1,274 @@
1
+ // lemonPPT - AI-powered presentation generation
2
+ // Copyright (c) 2026 lemonforme
3
+ // SPDX-License-Identifier: AGPL-3.0-or-later
4
+ /**
5
+ * 冷白调研风色板(原创设计,非复制 Dashi)。
6
+ * 明亮鲜艳:电光蓝主色 + 翠绿辅色 + 暖橙警示,高饱和冷调,仍保持白底通透学术感。
7
+ */
8
+ const coldWhitePalette = {
9
+ // 强调色在白底上需满足 WCAG AA 文本对比度(>=4.5:1),原电光蓝/翠绿/暖橙均偏亮不达标,
10
+ // 统一压暗为同色系深色:主色深海军蓝、辅色深绿、警示深橙。
11
+ accent: '#0A66C2',
12
+ accent2: '#0E7A5B',
13
+ accentCool: '#C2410C',
14
+ };
15
+ function buildTokenCatalog(appearance = 'light') {
16
+ const isLight = appearance === 'light';
17
+ return {
18
+ id: 'theme07',
19
+ displayName: 'Theme 07',
20
+ description: '冷白调研风,深墨文字与明亮鲜艳的强调色,适合白皮书、调研报告与学术/政策型表达',
21
+ colors: {
22
+ ink: isLight ? '#1A1D23' : '#F2F4F7',
23
+ ink2: isLight ? 'rgba(26, 29, 35, 0.72)' : 'rgba(242, 244, 247, 0.72)',
24
+ ink3: isLight ? 'rgba(26, 29, 35, 0.72)' : 'rgba(242, 244, 247, 0.72)',
25
+ textInverse: isLight ? '#F8F9FA' : '#0D100F',
26
+ accent: coldWhitePalette.accent,
27
+ accent2: coldWhitePalette.accent2,
28
+ accentCool: coldWhitePalette.accentCool,
29
+ red: isLight ? '#C73E2F' : '#FF6B6B',
30
+ orange: isLight ? '#C25E00' : '#FF9F43',
31
+ amber: isLight ? '#B45309' : '#FFC700',
32
+ yellow: isLight ? '#A16207' : '#FFD100',
33
+ teal: isLight ? '#0B7A85' : '#00E5B0',
34
+ green: isLight ? '#15803D' : '#22C55E',
35
+ cyan: isLight ? '#0B7A85' : '#22D3EE',
36
+ blue: isLight ? '#0A66C2' : '#3B82C4',
37
+ indigo: isLight ? '#4338CA' : '#6366F1',
38
+ violet: isLight ? '#7C2ED3' : '#A855F7',
39
+ purple: isLight ? '#7C2ED3' : '#A855F7',
40
+ series: [coldWhitePalette.accent, coldWhitePalette.accent2, coldWhitePalette.accentCool, '#7C5CFC', '#16BFD9', '#F24E7D'],
41
+ background: isLight ? '#FFFFFF' : '#0D100F',
42
+ backgroundGradientStart: isLight ? '#FFFFFF' : '#0D100F',
43
+ backgroundGradientEnd: isLight ? '#F7F9FB' : '#151C27',
44
+ surface: isLight ? 'rgba(0, 0, 0, 0.03)' : 'rgba(255, 255, 255, 0.05)',
45
+ surfaceStrong: isLight ? 'rgba(0, 0, 0, 0.06)' : 'rgba(255, 255, 255, 0.10)',
46
+ surfaceSolid: isLight ? '#FFFFFF' : '#151C27',
47
+ surfaceElevated: isLight ? '#FFFFFF' : '#1A2330',
48
+ border: isLight ? 'rgba(0, 0, 0, 0.08)' : 'rgba(255, 255, 255, 0.10)',
49
+ borderStrong: isLight ? 'rgba(0, 0, 0, 0.14)' : 'rgba(255, 255, 255, 0.18)',
50
+ shadow: isLight ? '0 24px 60px rgba(26, 29, 35, 0.08)' : '0 24px 60px rgba(0, 0, 0, 0.50)',
51
+ shadowSmall: isLight ? '0 8px 24px rgba(26, 29, 35, 0.05)' : '0 8px 24px rgba(0, 0, 0, 0.40)',
52
+ nodeBg: isLight ? '#FFFFFF' : '#151C27',
53
+ nodeBorder: isLight ? 'rgba(0, 0, 0, 0.12)' : 'rgba(255, 255, 255, 0.18)',
54
+ edge: isLight ? 'rgba(26, 29, 35, 0.20)' : 'rgba(255, 255, 255, 0.16)',
55
+ focusGlow: isLight ? 'rgba(10, 102, 194, 0.28)' : 'rgba(10, 102, 194, 0.45)',
56
+ panelLine: isLight ? 'rgba(0, 0, 0, 0.06)' : 'rgba(255, 255, 255, 0.08)',
57
+ },
58
+ fonts: {
59
+ heading: '"Source Serif Pro", "Noto Serif SC", Georgia, serif',
60
+ body: '"Inter", "Noto Sans SC", system-ui, sans-serif',
61
+ mono: '"JetBrains Mono", "Space Mono", ui-monospace, monospace',
62
+ en: '"Inter", "JetBrains Mono", ui-monospace, monospace',
63
+ },
64
+ spacing: {
65
+ pagePadding: '56px',
66
+ sectionGap: '32px',
67
+ elementGap: '14px',
68
+ padTop: '72px',
69
+ padBottom: '64px',
70
+ cardPaddingLarge: '32px 36px',
71
+ cardPaddingMedium: '22px 24px',
72
+ },
73
+ borderRadius: {
74
+ small: '4px',
75
+ medium: '8px',
76
+ large: '12px',
77
+ },
78
+ fontSize: {
79
+ display: '84px',
80
+ displaySmall: '64px',
81
+ h1: '48px',
82
+ h2: '34px',
83
+ h3: '24px',
84
+ body: '18px',
85
+ bodySmall: '15px',
86
+ caption: '13px',
87
+ },
88
+ effect: {
89
+ riseDistance: '14px',
90
+ riseDuration: '0.5s',
91
+ },
92
+ };
93
+ }
94
+ export const theme07Tokens = buildTokenCatalog('light');
95
+ export function getTheme07Tokens(appearance = 'light') {
96
+ return buildTokenCatalog(appearance);
97
+ }
98
+ function makeCssTokens(appearance = 'light') {
99
+ const tokens = buildTokenCatalog(appearance);
100
+ const isLight = appearance === 'light';
101
+ return {
102
+ ink: tokens.colors.ink,
103
+ ink2: tokens.colors.ink2,
104
+ ink3: tokens.colors.ink3,
105
+ textInverse: tokens.colors.textInverse,
106
+ accent: tokens.colors.accent,
107
+ accent2: tokens.colors.accent2,
108
+ accentCool: tokens.colors.accentCool,
109
+ red: tokens.colors.red,
110
+ orange: tokens.colors.orange,
111
+ amber: tokens.colors.amber,
112
+ yellow: tokens.colors.yellow,
113
+ teal: tokens.colors.teal,
114
+ green: tokens.colors.green,
115
+ cyan: tokens.colors.cyan,
116
+ blue: tokens.colors.blue,
117
+ indigo: tokens.colors.indigo,
118
+ violet: tokens.colors.violet,
119
+ purple: tokens.colors.purple,
120
+ series: tokens.colors.series,
121
+ bg: tokens.colors.background,
122
+ bgGradientStart: tokens.colors.backgroundGradientStart,
123
+ bgGradientEnd: tokens.colors.backgroundGradientEnd,
124
+ surface: tokens.colors.surface,
125
+ surfaceStrong: tokens.colors.surfaceStrong,
126
+ surfaceSolid: tokens.colors.surfaceSolid,
127
+ surfaceElevated: tokens.colors.surfaceElevated,
128
+ border: tokens.colors.border,
129
+ borderStrong: tokens.colors.borderStrong,
130
+ shadow: tokens.colors.shadow,
131
+ shadowSm: tokens.colors.shadowSmall,
132
+ shadowInset: isLight ? '0 1px 0 rgba(0, 0, 0, 0.04) inset' : '0 1px 0 rgba(255, 255, 255, 0.08) inset',
133
+ overlay: isLight ? 'rgba(0, 0, 0, 0.02)' : 'rgba(255, 255, 255, 0.04)',
134
+ overlayStrong: isLight ? 'rgba(0, 0, 0, 0.04)' : 'rgba(255, 255, 255, 0.08)',
135
+ divider: isLight ? 'rgba(26, 29, 35, 0.08)' : 'rgba(255, 255, 255, 0.09)',
136
+ scrim: isLight ? 'rgba(255, 255, 255, 0.55)' : 'rgba(0, 0, 0, 0.55)',
137
+ imageOverlay: isLight
138
+ ? 'linear-gradient(180deg, rgba(248, 249, 250, 0.72) 0%, rgba(248, 249, 250, 0.92) 100%)'
139
+ : 'linear-gradient(180deg, rgba(13, 16, 15, 0.72) 0%, rgba(13, 16, 15, 0.92) 100%)',
140
+ shadowRgb: isLight ? '26, 29, 35' : '0, 0, 0',
141
+ stroke: isLight ? 'rgba(0, 0, 0, 0.10)' : 'rgba(255, 255, 255, 0.12)',
142
+ whiteAlpha80: 'rgba(255, 255, 255, 0.8)',
143
+ whiteAlpha85: 'rgba(255, 255, 255, 0.85)',
144
+ whiteAlpha90: 'rgba(255, 255, 255, 0.9)',
145
+ nodeBg: tokens.colors.nodeBg,
146
+ nodeBorder: tokens.colors.nodeBorder,
147
+ edge: tokens.colors.edge,
148
+ focusGlow: tokens.colors.focusGlow,
149
+ panelLine: tokens.colors.panelLine,
150
+ font: tokens.fonts.body,
151
+ fontMono: tokens.fonts.mono,
152
+ fontHeading: tokens.fonts.heading,
153
+ radiusSmall: tokens.borderRadius.small,
154
+ radiusMedium: tokens.borderRadius.medium,
155
+ radiusLarge: tokens.borderRadius.large,
156
+ };
157
+ }
158
+ function buildCssVarsFromTokens(tokens) {
159
+ return `
160
+ --lp-ink: ${tokens.ink};
161
+ --lp-ink2: ${tokens.ink2};
162
+ --lp-ink3: ${tokens.ink3};
163
+ --lp-text-inverse: ${tokens.textInverse};
164
+ --lp-accent: ${tokens.accent};
165
+ --lp-accent-2: ${tokens.accent2};
166
+ --lp-accent-cool: ${tokens.accentCool};
167
+ --lp-red: ${tokens.red};
168
+ --lp-orange: ${tokens.orange};
169
+ --lp-amber: ${tokens.amber};
170
+ --lp-yellow: ${tokens.yellow};
171
+ --lp-teal: ${tokens.teal};
172
+ --lp-green: ${tokens.green};
173
+ --lp-cyan: ${tokens.cyan};
174
+ --lp-blue: ${tokens.blue};
175
+ --lp-indigo: ${tokens.indigo};
176
+ --lp-violet: ${tokens.violet};
177
+ --lp-purple: ${tokens.purple};
178
+ --lp-series-1: ${tokens.series[0]};
179
+ --lp-series-2: ${tokens.series[1]};
180
+ --lp-series-3: ${tokens.series[2]};
181
+ --lp-series-4: ${tokens.series[3]};
182
+ --lp-series-5: ${tokens.series[4]};
183
+ --lp-series-6: ${tokens.series[5]};
184
+ --lp-bg: ${tokens.bg};
185
+ --lp-bg-gradient-start: ${tokens.bgGradientStart};
186
+ --lp-bg-gradient-end: ${tokens.bgGradientEnd};
187
+ --lp-surface: ${tokens.surface};
188
+ --lp-surface-strong: ${tokens.surfaceStrong};
189
+ --lp-surface-solid: ${tokens.surfaceSolid};
190
+ --lp-surface-elevated: ${tokens.surfaceElevated};
191
+ --lp-border: ${tokens.border};
192
+ --lp-border-strong: ${tokens.borderStrong};
193
+ --lp-shadow: ${tokens.shadow};
194
+ --lp-shadow-sm: ${tokens.shadowSm};
195
+ --lp-shadow-inset: ${tokens.shadowInset};
196
+ --lp-overlay: ${tokens.overlay};
197
+ --lp-overlay-strong: ${tokens.overlayStrong};
198
+ --lp-divider: ${tokens.divider};
199
+ --lp-scrim: ${tokens.scrim};
200
+ --lp-image-overlay: ${tokens.imageOverlay};
201
+ --lp-shadow-rgb: ${tokens.shadowRgb};
202
+ --lp-stroke: ${tokens.stroke};
203
+ --lp-white-alpha-80: ${tokens.whiteAlpha80};
204
+ --lp-white-alpha-85: ${tokens.whiteAlpha85};
205
+ --lp-white-alpha-90: ${tokens.whiteAlpha90};
206
+ --lp-node-bg: ${tokens.nodeBg};
207
+ --lp-node-border: ${tokens.nodeBorder};
208
+ --lp-edge: ${tokens.edge};
209
+ --lp-focus-glow: ${tokens.focusGlow};
210
+ --lp-panel-line: ${tokens.panelLine};
211
+ --lp-font: ${tokens.font};
212
+ --lp-font-mono: ${tokens.fontMono};
213
+ --lp-font-heading: ${tokens.fontHeading};
214
+ --lp-radius-small: ${tokens.radiusSmall};
215
+ --lp-radius-medium: ${tokens.radiusMedium};
216
+ --lp-radius-large: ${tokens.radiusLarge};
217
+ --lp-radius-lg: ${tokens.radiusLarge};
218
+ --lp-font-size-display: ${theme07Tokens.fontSize.display};
219
+ --lp-font-size-display-small: ${theme07Tokens.fontSize.displaySmall};
220
+ --lp-font-size-h1: ${theme07Tokens.fontSize.h1};
221
+ --lp-font-size-h2: ${theme07Tokens.fontSize.h2};
222
+ --lp-font-size-h3: ${theme07Tokens.fontSize.h3};
223
+ --lp-font-size-body: ${theme07Tokens.fontSize.body};
224
+ --lp-font-size-body-small: ${theme07Tokens.fontSize.bodySmall};
225
+ --lp-font-size-caption: ${theme07Tokens.fontSize.caption};
226
+ /* theme07 常用布局别名 */
227
+ --lp-card-border: var(--lp-border);
228
+ --lp-card-radius: var(--lp-radius-large);
229
+ --lp-card-surface: var(--lp-surface-solid);
230
+ --lp-card-accent: color-mix(in srgb, var(--lp-accent) 10%, transparent);
231
+ --lp-card-accent-border: var(--lp-accent);
232
+ --lp-on-accent: var(--lp-text-inverse);
233
+ --lp-on-accent-soft: color-mix(in srgb, var(--lp-text-inverse) 72%, transparent);
234
+ --lp-error: var(--lp-red);
235
+ --lp-warning: var(--lp-amber);
236
+ --lp-success: var(--lp-green);
237
+ --lp-font-size-hero: var(--lp-font-size-display-small);
238
+ --lp-font-size-hero-small: var(--lp-font-size-h1);
239
+ --lp-font-size-subtitle: var(--lp-font-size-h3);
240
+ --lp-font-size-small: var(--lp-font-size-body-small);
241
+ `;
242
+ }
243
+ /**
244
+ * 生成指定外观的 CSS 变量块,可直接注入 <style>。
245
+ */
246
+ export function generateTheme07CssVariables(appearance = 'light') {
247
+ const tokens = makeCssTokens(appearance);
248
+ return `:root {\n${buildCssVarsFromTokens(tokens)}\n}`;
249
+ }
250
+ /**
251
+ * 生成默认 light 的 CSS 变量块。
252
+ */
253
+ export function generateTheme07CssVariablesWithAppearance() {
254
+ return generateTheme07CssVariables('light');
255
+ }
256
+ /**
257
+ * 生成包含 light + dark 外观的完整 CSS 变量块。
258
+ * 通过 :root 的 data-appearance 属性切换。
259
+ */
260
+ export function generateTheme07CssVariablesWithSchemesAndAppearance() {
261
+ const appearances = ['light', 'dark'];
262
+ const blocks = [];
263
+ for (const appearance of appearances) {
264
+ if (appearance === 'light') {
265
+ blocks.push(`:root[data-theme="cold-white"] {\n${buildCssVarsFromTokens(makeCssTokens('light'))}\n}`);
266
+ blocks.push(`:root[data-appearance="light"][data-theme="cold-white"] {\n${buildCssVarsFromTokens(makeCssTokens('light'))}\n}`);
267
+ }
268
+ else {
269
+ blocks.push(`:root[data-appearance="dark"][data-theme="cold-white"] {\n${buildCssVarsFromTokens(makeCssTokens('dark'))}\n}`);
270
+ }
271
+ }
272
+ return blocks.join('\n');
273
+ }
274
+ //# sourceMappingURL=tokens.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tokens.js","sourceRoot":"","sources":["../../src/theme07/tokens.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,103 @@
1
+ /**
2
+ * ⚠️ 镜像副本(MIRROR)⚠️
3
+ * 渲染真源是 `packages/templates/src/themes/theme08/tokens.ts`(renderer 实际调用它)。
4
+ * 本文件仅供 `getTheme()` 元数据与 `@lemonppt/themes` 已发布 API 使用;
5
+ * 改配色请先改真源,再同步回来:
6
+ * cp packages/templates/src/themes/theme08/tokens.ts packages/themes/src/theme08/tokens.ts
7
+ *
8
+ * theme08 设计 Token。
9
+ * 风格:黑金实验风 / Black Gold Experimental。
10
+ * 深黑底 + 荧光金主强调 + 玫红/冷蓝/淡紫灰点缀,适合高端发布、品牌提案、实验性概念。
11
+ * 数字使用展示型字体(Anton,项目字体库已内嵌 @font-face)增强冲击力;双背景 primary(深黑)/muted(象牙暖白)。
12
+ * 所有色值/类名均为原创,不复制 Dashi theme08 具体实现与 --acl- 前缀。
13
+ */
14
+ export interface Theme08Tokens {
15
+ id: string;
16
+ displayName: string;
17
+ description: string;
18
+ colors: {
19
+ ink: string;
20
+ ink2: string;
21
+ ink3: string;
22
+ textInverse: string;
23
+ accent: string;
24
+ accent2: string;
25
+ accentCool: string;
26
+ red: string;
27
+ orange: string;
28
+ amber: string;
29
+ yellow: string;
30
+ teal: string;
31
+ green: string;
32
+ cyan: string;
33
+ blue: string;
34
+ indigo: string;
35
+ violet: string;
36
+ purple: string;
37
+ series: readonly string[];
38
+ background: string;
39
+ backgroundGradientStart: string;
40
+ backgroundGradientEnd: string;
41
+ surface: string;
42
+ surfaceStrong: string;
43
+ surfaceSolid: string;
44
+ surfaceElevated: string;
45
+ border: string;
46
+ borderStrong: string;
47
+ shadow: string;
48
+ shadowSmall: string;
49
+ nodeBg: string;
50
+ nodeBorder: string;
51
+ edge: string;
52
+ focusGlow: string;
53
+ panelLine: string;
54
+ accentBright: string;
55
+ inversePanel: string;
56
+ inversePanelInk: string;
57
+ };
58
+ fonts: {
59
+ heading: string;
60
+ body: string;
61
+ mono: string;
62
+ en: string;
63
+ };
64
+ spacing: {
65
+ pagePadding: string;
66
+ sectionGap: string;
67
+ elementGap: string;
68
+ padTop: string;
69
+ padBottom: string;
70
+ cardPaddingLarge: string;
71
+ cardPaddingMedium: string;
72
+ };
73
+ borderRadius: {
74
+ small: string;
75
+ medium: string;
76
+ large: string;
77
+ };
78
+ fontSize: {
79
+ display: string;
80
+ displaySmall: string;
81
+ h1: string;
82
+ h2: string;
83
+ h3: string;
84
+ body: string;
85
+ bodySmall: string;
86
+ caption: string;
87
+ };
88
+ effect: {
89
+ riseDistance: string;
90
+ riseDuration: string;
91
+ };
92
+ }
93
+ export type Theme08Appearance = 'primary' | 'muted';
94
+ export declare const theme08Tokens: Theme08Tokens;
95
+ export declare function getTheme08Tokens(appearance?: Theme08Appearance): Theme08Tokens;
96
+ export declare function generateTheme08CssVariables(appearance?: Theme08Appearance): string;
97
+ export declare function generateTheme08CssVariablesWithAppearance(): string;
98
+ /**
99
+ * 生成包含 primary + muted 双外观的完整 CSS 变量块,通过 data-appearance 切换。
100
+ * 同时提供 light/dark 别名(编辑器浅色/深色按钮使用)。
101
+ */
102
+ export declare function generateTheme08CssVariablesWithSchemesAndAppearance(): string;
103
+ //# sourceMappingURL=tokens.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tokens.d.ts","sourceRoot":"","sources":["../../src/theme08/tokens.ts"],"names":[],"mappings":"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"}