@lemonppt/themes 0.1.7 → 0.2.0

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.
Files changed (54) hide show
  1. package/dist/index.d.ts +169 -60
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +13 -7
  4. package/dist/index.js.map +1 -1
  5. package/dist/theme01/tokens.d.ts +72 -0
  6. package/dist/theme01/tokens.d.ts.map +1 -0
  7. package/dist/theme01/tokens.js +79 -0
  8. package/dist/theme01/tokens.js.map +1 -0
  9. package/dist/theme02/tokens.d.ts +73 -0
  10. package/dist/theme02/tokens.d.ts.map +1 -0
  11. package/dist/theme02/tokens.js +81 -0
  12. package/dist/theme02/tokens.js.map +1 -0
  13. package/dist/theme03/tokens.d.ts +322 -0
  14. package/dist/theme03/tokens.d.ts.map +1 -0
  15. package/dist/theme03/tokens.js +279 -0
  16. package/dist/theme03/tokens.js.map +1 -0
  17. package/dist/theme04/tokens.d.ts +94 -0
  18. package/dist/theme04/tokens.d.ts.map +1 -0
  19. package/dist/theme04/tokens.js +305 -0
  20. package/dist/theme04/tokens.js.map +1 -0
  21. package/dist/theme05/tokens.d.ts +92 -0
  22. package/dist/theme05/tokens.d.ts.map +1 -0
  23. package/dist/theme05/tokens.js +275 -0
  24. package/dist/theme05/tokens.js.map +1 -0
  25. package/dist/theme06/tokens.d.ts +101 -0
  26. package/dist/theme06/tokens.d.ts.map +1 -0
  27. package/dist/theme06/tokens.js +320 -0
  28. package/dist/theme06/tokens.js.map +1 -0
  29. package/package.json +2 -2
  30. package/src/theme01/styles.css +4796 -0
  31. package/src/theme02/styles.css +4624 -0
  32. package/src/theme03/styles.css +8348 -0
  33. package/src/theme04/styles.css +8739 -0
  34. package/src/theme05/styles.css +3587 -0
  35. package/src/theme06/styles.css +7071 -0
  36. package/dist/base/tokens.d.ts +0 -34
  37. package/dist/base/tokens.d.ts.map +0 -1
  38. package/dist/base/tokens.js +0 -37
  39. package/dist/base/tokens.js.map +0 -1
  40. package/dist/dark-tech/tokens.d.ts +0 -34
  41. package/dist/dark-tech/tokens.d.ts.map +0 -1
  42. package/dist/dark-tech/tokens.js +0 -37
  43. package/dist/dark-tech/tokens.js.map +0 -1
  44. package/dist/minimal/tokens.d.ts +0 -34
  45. package/dist/minimal/tokens.d.ts.map +0 -1
  46. package/dist/minimal/tokens.js +0 -34
  47. package/dist/minimal/tokens.js.map +0 -1
  48. package/dist/warm-business/tokens.d.ts +0 -34
  49. package/dist/warm-business/tokens.d.ts.map +0 -1
  50. package/dist/warm-business/tokens.js +0 -37
  51. package/dist/warm-business/tokens.js.map +0 -1
  52. package/src/base/styles.css +0 -3061
  53. package/src/dark-tech/styles.css +0 -2969
  54. package/src/warm-business/styles.css +0 -2848
@@ -0,0 +1,322 @@
1
+ /**
2
+ * theme03 设计 Token。
3
+ * 风格:代码编辑风 / Editorial Code。
4
+ * 深色背景、高对比、强字重、等宽标签,适合技术方案、开发者大会、投研报告。
5
+ * 支持 scheme-a(赛博青柠 + 电光粉)与 scheme-b(琥珀金 + 青绿紫)两套强调色方案,
6
+ * 以及 light / dark 两种深浅外观模式。
7
+ */
8
+ export interface Theme03Tokens {
9
+ id: string;
10
+ displayName: string;
11
+ description: string;
12
+ colors: {
13
+ ink: string;
14
+ ink2: string;
15
+ ink3: string;
16
+ textInverse: string;
17
+ accent: string;
18
+ accent2: string;
19
+ accentCool: string;
20
+ red: string;
21
+ blue: string;
22
+ green: string;
23
+ amber: string;
24
+ violet: string;
25
+ cyan: string;
26
+ pink: string;
27
+ orange: string;
28
+ lime: string;
29
+ series: readonly string[];
30
+ background: string;
31
+ surface: string;
32
+ surfaceStrong: string;
33
+ surfaceSolid: string;
34
+ border: string;
35
+ shadow: string;
36
+ shadowSmall: string;
37
+ glowA: string;
38
+ glowB: string;
39
+ glowC: string;
40
+ };
41
+ fonts: {
42
+ heading: string;
43
+ body: string;
44
+ mono: string;
45
+ en: string;
46
+ };
47
+ spacing: {
48
+ pagePadding: string;
49
+ sectionGap: string;
50
+ elementGap: string;
51
+ padTop: string;
52
+ padBottom: string;
53
+ cardPaddingLarge: string;
54
+ cardPaddingMedium: string;
55
+ };
56
+ borderRadius: {
57
+ small: string;
58
+ medium: string;
59
+ large: string;
60
+ };
61
+ fontSize: {
62
+ display: string;
63
+ displaySmall: string;
64
+ h1: string;
65
+ h2: string;
66
+ h3: string;
67
+ body: string;
68
+ bodySmall: string;
69
+ caption: string;
70
+ };
71
+ effect: {
72
+ glassBlur: string;
73
+ glassBorder: string;
74
+ riseDistance: string;
75
+ riseDuration: string;
76
+ };
77
+ }
78
+ export declare const theme03Tokens: {
79
+ readonly id: "theme03";
80
+ readonly displayName: "Theme 03";
81
+ readonly description: "代码编辑风,深色高对比,电光蓝与电光粉双强调色,适合技术方案与投研报告";
82
+ readonly colors: {
83
+ readonly ink: "#e8edf3";
84
+ readonly ink2: "rgba(232, 237, 243, 0.66)";
85
+ readonly ink3: "rgba(232, 237, 243, 0.40)";
86
+ readonly textInverse: "#05080d";
87
+ readonly accent: "#00b4ff";
88
+ readonly accent2: "#ff2a6d";
89
+ readonly accentCool: "#8b5cf6";
90
+ readonly red: "#ff2a6d";
91
+ readonly blue: "#00b4ff";
92
+ readonly green: "#22d3ee";
93
+ readonly amber: "#ff9f1c";
94
+ readonly violet: "#8b5cf6";
95
+ readonly cyan: "#00b4ff";
96
+ readonly pink: "#ff2a6d";
97
+ readonly orange: "#ff7b54";
98
+ readonly lime: "#00b4ff";
99
+ readonly series: readonly ["#00b4ff", "#ff2a6d", "#8b5cf6", "#ff7b54", "#ff9f1c", "#22d3ee"];
100
+ readonly background: "#05080d";
101
+ readonly surface: "rgba(255, 255, 255, 0.05)";
102
+ readonly surfaceStrong: "rgba(255, 255, 255, 0.10)";
103
+ readonly surfaceSolid: "#0d1118";
104
+ readonly border: "rgba(232, 237, 243, 0.12)";
105
+ readonly shadow: "0 24px 60px rgba(0, 0, 0, 0.50)";
106
+ readonly shadowSmall: "0 8px 24px rgba(0, 0, 0, 0.40)";
107
+ readonly glowA: "rgba(0, 180, 255, 0.20)";
108
+ readonly glowB: "rgba(255, 42, 109, 0.16)";
109
+ readonly glowC: "rgba(139, 92, 246, 0.12)";
110
+ };
111
+ readonly fonts: {
112
+ readonly heading: "\"Space Grotesk\", \"Noto Sans SC\", \"PingFang SC\", system-ui, sans-serif";
113
+ readonly body: "\"Noto Sans SC\", \"PingFang SC\", system-ui, sans-serif";
114
+ readonly mono: "\"Space Mono\", \"JetBrains Mono\", ui-monospace, monospace";
115
+ readonly en: "\"Space Grotesk\", \"Space Mono\", ui-monospace, monospace";
116
+ };
117
+ readonly spacing: {
118
+ readonly pagePadding: "108px";
119
+ readonly sectionGap: "40px";
120
+ readonly elementGap: "20px";
121
+ readonly padTop: "92px";
122
+ readonly padBottom: "84px";
123
+ readonly cardPaddingLarge: "52px 60px";
124
+ readonly cardPaddingMedium: "32px 28px";
125
+ };
126
+ readonly borderRadius: {
127
+ readonly small: "4px";
128
+ readonly medium: "8px";
129
+ readonly large: "12px";
130
+ };
131
+ readonly fontSize: {
132
+ readonly display: "104px";
133
+ readonly displaySmall: "80px";
134
+ readonly h1: "62px";
135
+ readonly h2: "46px";
136
+ readonly h3: "34px";
137
+ readonly body: "24px";
138
+ readonly bodySmall: "18px";
139
+ readonly caption: "14px";
140
+ };
141
+ readonly effect: {
142
+ readonly glassBlur: "blur(28px) saturate(150%)";
143
+ readonly glassBorder: "1px solid rgba(240, 241, 245, 0.14)";
144
+ readonly riseDistance: "18px";
145
+ readonly riseDuration: "0.6s";
146
+ };
147
+ };
148
+ export declare const theme03TokensA: {
149
+ glowAccent: string;
150
+ glowAccentStrong: string;
151
+ glowAccentSubtle: string;
152
+ glowCool: string;
153
+ glowCoolStrong: string;
154
+ glowCoolSubtle: string;
155
+ glowWarm: string;
156
+ glowWarmSubtle: string;
157
+ font: string;
158
+ fontMono: string;
159
+ radiusSmall: string;
160
+ radiusMedium: string;
161
+ radiusLarge: string;
162
+ ink: string;
163
+ ink2: string;
164
+ ink3: string;
165
+ textInverse: string;
166
+ bg: string;
167
+ bgGradientStart: string;
168
+ bgGradientEnd: string;
169
+ surface: string;
170
+ surfaceStrong: string;
171
+ surfaceSolid: string;
172
+ border: string;
173
+ shadow: string;
174
+ shadowSm: string;
175
+ shadowInset: string;
176
+ overlay: string;
177
+ overlayStrong: string;
178
+ divider: string;
179
+ scrim: string;
180
+ imageOverlay: string;
181
+ shadowRgb: string;
182
+ stroke: string;
183
+ whiteAlpha80: string;
184
+ whiteAlpha85: string;
185
+ whiteAlpha90: string;
186
+ accent: string;
187
+ accent2: string;
188
+ accentCool: string;
189
+ red: string;
190
+ blue: string;
191
+ green: string;
192
+ amber: string;
193
+ violet: string;
194
+ cyan: string;
195
+ pink: string;
196
+ orange: string;
197
+ lime: string;
198
+ series: string[];
199
+ };
200
+ export declare const theme03TokensB: {
201
+ glowAccent: string;
202
+ glowAccentStrong: string;
203
+ glowAccentSubtle: string;
204
+ glowCool: string;
205
+ glowCoolStrong: string;
206
+ glowCoolSubtle: string;
207
+ glowWarm: string;
208
+ glowWarmSubtle: string;
209
+ font: string;
210
+ fontMono: string;
211
+ radiusSmall: string;
212
+ radiusMedium: string;
213
+ radiusLarge: string;
214
+ ink: string;
215
+ ink2: string;
216
+ ink3: string;
217
+ textInverse: string;
218
+ bg: string;
219
+ bgGradientStart: string;
220
+ bgGradientEnd: string;
221
+ surface: string;
222
+ surfaceStrong: string;
223
+ surfaceSolid: string;
224
+ border: string;
225
+ shadow: string;
226
+ shadowSm: string;
227
+ shadowInset: string;
228
+ overlay: string;
229
+ overlayStrong: string;
230
+ divider: string;
231
+ scrim: string;
232
+ imageOverlay: string;
233
+ shadowRgb: string;
234
+ stroke: string;
235
+ whiteAlpha80: string;
236
+ whiteAlpha85: string;
237
+ whiteAlpha90: string;
238
+ accent: string;
239
+ accent2: string;
240
+ accentCool: string;
241
+ red: string;
242
+ blue: string;
243
+ green: string;
244
+ amber: string;
245
+ violet: string;
246
+ cyan: string;
247
+ pink: string;
248
+ orange: string;
249
+ lime: string;
250
+ series: string[];
251
+ };
252
+ export type Theme03ColorScheme = 'scheme-a' | 'scheme-b';
253
+ export type Theme03Appearance = 'light' | 'dark';
254
+ export declare function getTheme03Tokens(scheme: Theme03ColorScheme, appearance?: Theme03Appearance): {
255
+ glowAccent: string;
256
+ glowAccentStrong: string;
257
+ glowAccentSubtle: string;
258
+ glowCool: string;
259
+ glowCoolStrong: string;
260
+ glowCoolSubtle: string;
261
+ glowWarm: string;
262
+ glowWarmSubtle: string;
263
+ font: string;
264
+ fontMono: string;
265
+ radiusSmall: string;
266
+ radiusMedium: string;
267
+ radiusLarge: string;
268
+ ink: string;
269
+ ink2: string;
270
+ ink3: string;
271
+ textInverse: string;
272
+ bg: string;
273
+ bgGradientStart: string;
274
+ bgGradientEnd: string;
275
+ surface: string;
276
+ surfaceStrong: string;
277
+ surfaceSolid: string;
278
+ border: string;
279
+ shadow: string;
280
+ shadowSm: string;
281
+ shadowInset: string;
282
+ overlay: string;
283
+ overlayStrong: string;
284
+ divider: string;
285
+ scrim: string;
286
+ imageOverlay: string;
287
+ shadowRgb: string;
288
+ stroke: string;
289
+ whiteAlpha80: string;
290
+ whiteAlpha85: string;
291
+ whiteAlpha90: string;
292
+ accent: string;
293
+ accent2: string;
294
+ accentCool: string;
295
+ red: string;
296
+ blue: string;
297
+ green: string;
298
+ amber: string;
299
+ violet: string;
300
+ cyan: string;
301
+ pink: string;
302
+ orange: string;
303
+ lime: string;
304
+ series: string[];
305
+ };
306
+ /**
307
+ * 生成 theme03 CSS 变量字符串。
308
+ * 支持 scheme-a / scheme-b 两套强调色方案与 light / dark 外观模式。
309
+ */
310
+ export declare function generateTheme03CssVariables(scheme?: Theme03ColorScheme, appearance?: Theme03Appearance): string;
311
+ /**
312
+ * 生成同时包含 scheme-a / scheme-b 与 light / dark 组合的 CSS 字符串,
313
+ * 通过 :root 的 data-theme(scheme)与 data-appearance(light/dark)切换。
314
+ *
315
+ * 变量块优先级顺序(后覆盖前):
316
+ * 1. :root — scheme-a + dark
317
+ * 2. [data-theme="scheme-b"] — scheme-b + dark
318
+ * 3. [data-appearance="light"] — scheme-a + light
319
+ * 4. [data-theme="scheme-b"][data-appearance="light"] — scheme-b + light
320
+ */
321
+ export declare function generateTheme03CssVariablesWithSchemes(): string;
322
+ //# sourceMappingURL=tokens.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tokens.d.ts","sourceRoot":"","sources":["../../src/theme03/tokens.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,279 @@
1
+ // lemonPPT - AI-powered presentation generation
2
+ // Copyright (c) 2026 lemonforme
3
+ // SPDX-License-Identifier: AGPL-3.0-or-later
4
+ export const theme03Tokens = {
5
+ id: 'theme03',
6
+ displayName: 'Theme 03',
7
+ description: '代码编辑风,深色高对比,电光蓝与电光粉双强调色,适合技术方案与投研报告',
8
+ colors: {
9
+ ink: '#e8edf3',
10
+ ink2: 'rgba(232, 237, 243, 0.66)',
11
+ ink3: 'rgba(232, 237, 243, 0.40)',
12
+ textInverse: '#05080d',
13
+ accent: '#00b4ff',
14
+ accent2: '#ff2a6d',
15
+ accentCool: '#8b5cf6',
16
+ red: '#ff2a6d',
17
+ blue: '#00b4ff',
18
+ green: '#22d3ee',
19
+ amber: '#ff9f1c',
20
+ violet: '#8b5cf6',
21
+ cyan: '#00b4ff',
22
+ pink: '#ff2a6d',
23
+ orange: '#ff7b54',
24
+ lime: '#00b4ff',
25
+ series: ['#00b4ff', '#ff2a6d', '#8b5cf6', '#ff7b54', '#ff9f1c', '#22d3ee'],
26
+ background: '#05080d',
27
+ surface: 'rgba(255, 255, 255, 0.05)',
28
+ surfaceStrong: 'rgba(255, 255, 255, 0.10)',
29
+ surfaceSolid: '#0d1118',
30
+ border: 'rgba(232, 237, 243, 0.12)',
31
+ shadow: '0 24px 60px rgba(0, 0, 0, 0.50)',
32
+ shadowSmall: '0 8px 24px rgba(0, 0, 0, 0.40)',
33
+ glowA: 'rgba(0, 180, 255, 0.20)',
34
+ glowB: 'rgba(255, 42, 109, 0.16)',
35
+ glowC: 'rgba(139, 92, 246, 0.12)',
36
+ },
37
+ fonts: {
38
+ heading: '"Space Grotesk", "Noto Sans SC", "PingFang SC", system-ui, sans-serif',
39
+ body: '"Noto Sans SC", "PingFang SC", system-ui, sans-serif',
40
+ mono: '"Space Mono", "JetBrains Mono", ui-monospace, monospace',
41
+ en: '"Space Grotesk", "Space Mono", ui-monospace, monospace',
42
+ },
43
+ spacing: {
44
+ pagePadding: '108px',
45
+ sectionGap: '40px',
46
+ elementGap: '20px',
47
+ padTop: '92px',
48
+ padBottom: '84px',
49
+ cardPaddingLarge: '52px 60px',
50
+ cardPaddingMedium: '32px 28px',
51
+ },
52
+ borderRadius: {
53
+ small: '4px',
54
+ medium: '8px',
55
+ large: '12px',
56
+ },
57
+ fontSize: {
58
+ display: '104px',
59
+ displaySmall: '80px',
60
+ h1: '62px',
61
+ h2: '46px',
62
+ h3: '34px',
63
+ body: '24px',
64
+ bodySmall: '18px',
65
+ caption: '14px',
66
+ },
67
+ effect: {
68
+ glassBlur: 'blur(28px) saturate(150%)',
69
+ glassBorder: '1px solid rgba(240, 241, 245, 0.14)',
70
+ riseDistance: '18px',
71
+ riseDuration: '0.6s',
72
+ },
73
+ };
74
+ const schemeA = {
75
+ accent: '#00b4ff',
76
+ accent2: '#ff2a6d',
77
+ accentCool: '#8b5cf6',
78
+ };
79
+ const schemeB = {
80
+ accent: '#ff9f1c',
81
+ accent2: '#00b4ff',
82
+ accentCool: '#8b5cf6',
83
+ };
84
+ const darkBase = {
85
+ ink: '#e8edf3',
86
+ ink2: 'rgba(232, 237, 243, 0.66)',
87
+ ink3: 'rgba(232, 237, 243, 0.40)',
88
+ textInverse: '#05080d',
89
+ bg: '#05080d',
90
+ bgGradientStart: '#05080d',
91
+ bgGradientEnd: '#0d1118',
92
+ surface: 'rgba(255, 255, 255, 0.05)',
93
+ surfaceStrong: 'rgba(255, 255, 255, 0.10)',
94
+ surfaceSolid: '#0d1118',
95
+ border: 'rgba(232, 237, 243, 0.12)',
96
+ shadow: '0 24px 60px rgba(0, 0, 0, 0.50)',
97
+ shadowSm: '0 8px 24px rgba(0, 0, 0, 0.40)',
98
+ shadowInset: '0 1px 0 rgba(255, 255, 255, 0.08) inset',
99
+ overlay: 'rgba(255, 255, 255, 0.04)',
100
+ overlayStrong: 'rgba(255, 255, 255, 0.08)',
101
+ divider: 'rgba(232, 237, 243, 0.09)',
102
+ scrim: 'rgba(0, 0, 0, 0.55)',
103
+ imageOverlay: 'linear-gradient(180deg, rgba(5, 8, 13, 0.72) 0%, rgba(5, 8, 13, 0.92) 100%)',
104
+ shadowRgb: '0, 0, 0',
105
+ stroke: 'rgba(232, 237, 243, 0.12)',
106
+ whiteAlpha80: 'rgba(255, 255, 255, 0.8)',
107
+ whiteAlpha85: 'rgba(255, 255, 255, 0.85)',
108
+ whiteAlpha90: 'rgba(255, 255, 255, 0.9)',
109
+ };
110
+ const lightBase = {
111
+ ink: '#05080d',
112
+ ink2: 'rgba(5, 8, 13, 0.72)',
113
+ ink3: 'rgba(5, 8, 13, 0.52)',
114
+ textInverse: '#e8edf3',
115
+ bg: '#f1f3f5',
116
+ bgGradientStart: '#f1f3f5',
117
+ bgGradientEnd: '#e5e8eb',
118
+ surface: 'rgba(0, 0, 0, 0.04)',
119
+ surfaceStrong: 'rgba(0, 0, 0, 0.08)',
120
+ surfaceSolid: '#ffffff',
121
+ border: 'rgba(5, 8, 13, 0.10)',
122
+ shadow: '0 24px 60px rgba(5, 8, 13, 0.10)',
123
+ shadowSm: '0 8px 24px rgba(5, 8, 13, 0.07)',
124
+ shadowInset: '0 1px 0 rgba(0, 0, 0, 0.08) inset',
125
+ overlay: 'rgba(0, 0, 0, 0.04)',
126
+ overlayStrong: 'rgba(0, 0, 0, 0.08)',
127
+ divider: 'rgba(5, 8, 13, 0.08)',
128
+ scrim: 'rgba(255, 255, 255, 0.55)',
129
+ imageOverlay: 'linear-gradient(180deg, rgba(241, 243, 245, 0.72) 0%, rgba(241, 243, 245, 0.92) 100%)',
130
+ shadowRgb: '5, 8, 13',
131
+ stroke: 'rgba(5, 8, 13, 0.10)',
132
+ whiteAlpha80: 'rgba(255, 255, 255, 0.8)',
133
+ whiteAlpha85: 'rgba(255, 255, 255, 0.85)',
134
+ whiteAlpha90: 'rgba(255, 255, 255, 0.9)',
135
+ };
136
+ function adjustSchemeForLight(scheme) {
137
+ return {
138
+ accent: scheme.accent === '#00b4ff' ? '#0077b6' : scheme.accent === '#ff9f1c' ? '#b45309' : scheme.accent,
139
+ accent2: scheme.accent2 === '#ff2a6d' ? '#c2185b' : scheme.accent2 === '#00b4ff' ? '#0077b6' : scheme.accent2,
140
+ accentCool: scheme.accentCool === '#8b5cf6' ? '#6b21a8' : scheme.accentCool,
141
+ };
142
+ }
143
+ function makeTokens(scheme, appearance = 'dark') {
144
+ const base = appearance === 'light' ? lightBase : darkBase;
145
+ const effectiveScheme = appearance === 'light' ? adjustSchemeForLight(scheme) : scheme;
146
+ const isLight = appearance === 'light';
147
+ return {
148
+ accent: effectiveScheme.accent,
149
+ accent2: effectiveScheme.accent2,
150
+ accentCool: effectiveScheme.accentCool,
151
+ red: isLight ? '#c2185b' : '#ff2a6d',
152
+ blue: isLight ? '#0077b6' : '#00b4ff',
153
+ green: isLight ? '#0077b6' : '#22d3ee',
154
+ amber: isLight ? '#b45309' : '#ff9f1c',
155
+ violet: isLight ? '#6b21a8' : '#8b5cf6',
156
+ cyan: isLight ? '#0077b6' : '#00b4ff',
157
+ pink: isLight ? '#c2185b' : '#ff2a6d',
158
+ orange: isLight ? '#c2410c' : '#ff7b54',
159
+ lime: isLight ? '#0077b6' : '#00b4ff',
160
+ series: [effectiveScheme.accent, effectiveScheme.accent2, effectiveScheme.accentCool, isLight ? '#c2410c' : '#ff7b54', isLight ? '#b45309' : '#ff9f1c', isLight ? '#0077b6' : '#22d3ee'],
161
+ ...base,
162
+ glowAccent: hexToRgba(scheme.accent, 0.20),
163
+ glowAccentStrong: hexToRgba(scheme.accent, 0.30),
164
+ glowAccentSubtle: hexToRgba(scheme.accent, 0.10),
165
+ glowCool: hexToRgba(scheme.accent2, 0.16),
166
+ glowCoolStrong: hexToRgba(scheme.accent2, 0.24),
167
+ glowCoolSubtle: hexToRgba(scheme.accent2, 0.08),
168
+ glowWarm: hexToRgba(scheme.accentCool, 0.12),
169
+ glowWarmSubtle: hexToRgba(scheme.accentCool, 0.06),
170
+ font: '"Space Grotesk", "Noto Sans SC", "PingFang SC", system-ui, sans-serif',
171
+ fontMono: '"Space Mono", "JetBrains Mono", ui-monospace, monospace',
172
+ radiusSmall: '4px',
173
+ radiusMedium: '8px',
174
+ radiusLarge: '12px',
175
+ };
176
+ }
177
+ function hexToRgba(hex, alpha) {
178
+ const sanitized = hex.replace('#', '');
179
+ const r = parseInt(sanitized.substring(0, 2), 16);
180
+ const g = parseInt(sanitized.substring(2, 4), 16);
181
+ const b = parseInt(sanitized.substring(4, 6), 16);
182
+ return `rgba(${r}, ${g}, ${b}, ${alpha})`;
183
+ }
184
+ export const theme03TokensA = makeTokens(schemeA);
185
+ export const theme03TokensB = makeTokens(schemeB);
186
+ export function getTheme03Tokens(scheme, appearance = 'dark') {
187
+ return scheme === 'scheme-b' ? makeTokens(schemeB, appearance) : makeTokens(schemeA, appearance);
188
+ }
189
+ function buildCssVarsFromTokens(tokens) {
190
+ return `
191
+ --lp-ink: ${tokens.ink};
192
+ --lp-ink2: ${tokens.ink2};
193
+ --lp-ink3: ${tokens.ink3};
194
+ --lp-text-inverse: ${tokens.textInverse};
195
+ --lp-accent: ${tokens.accent};
196
+ --lp-accent-2: ${tokens.accent2};
197
+ --lp-accent-cool: ${tokens.accentCool};
198
+ --lp-red: ${tokens.red};
199
+ --lp-blue: ${tokens.blue};
200
+ --lp-green: ${tokens.green};
201
+ --lp-amber: ${tokens.amber};
202
+ --lp-violet: ${tokens.violet};
203
+ --lp-cyan: ${tokens.cyan};
204
+ --lp-pink: ${tokens.pink};
205
+ --lp-orange: ${tokens.orange};
206
+ --lp-lime: ${tokens.lime};
207
+ --lp-bg: ${tokens.bg};
208
+ --lp-bg-gradient-start: ${tokens.bgGradientStart};
209
+ --lp-bg-gradient-end: ${tokens.bgGradientEnd};
210
+ --lp-surface: ${tokens.surface};
211
+ --lp-surface-strong: ${tokens.surfaceStrong};
212
+ --lp-surface-solid: ${tokens.surfaceSolid};
213
+ --lp-border: ${tokens.border};
214
+ --lp-shadow: ${tokens.shadow};
215
+ --lp-shadow-sm: ${tokens.shadowSm};
216
+ --lp-glow-accent: ${tokens.glowAccent};
217
+ --lp-glow-accent-strong: ${tokens.glowAccentStrong};
218
+ --lp-glow-accent-subtle: ${tokens.glowAccentSubtle};
219
+ --lp-glow-cool: ${tokens.glowCool};
220
+ --lp-glow-cool-strong: ${tokens.glowCoolStrong};
221
+ --lp-glow-cool-subtle: ${tokens.glowCoolSubtle};
222
+ --lp-glow-warm: ${tokens.glowWarm};
223
+ --lp-glow-warm-subtle: ${tokens.glowWarmSubtle};
224
+ --lp-shadow-inset: ${tokens.shadowInset};
225
+ --lp-overlay: ${tokens.overlay};
226
+ --lp-overlay-strong: ${tokens.overlayStrong};
227
+ --lp-divider: ${tokens.divider};
228
+ --lp-scrim: ${tokens.scrim};
229
+ --lp-image-overlay: ${tokens.imageOverlay};
230
+ --lp-shadow-rgb: ${tokens.shadowRgb};
231
+ --lp-stroke: ${tokens.stroke};
232
+ --lp-white-alpha-80: ${tokens.whiteAlpha80};
233
+ --lp-white-alpha-85: ${tokens.whiteAlpha85};
234
+ --lp-white-alpha-90: ${tokens.whiteAlpha90};
235
+ --lp-font: ${tokens.font};
236
+ --lp-font-mono: ${tokens.fontMono};
237
+ --lp-radius-small: ${tokens.radiusSmall};
238
+ --lp-radius-medium: ${tokens.radiusMedium};
239
+ --lp-radius-large: ${tokens.radiusLarge};
240
+ `.trim();
241
+ }
242
+ /**
243
+ * 生成 theme03 CSS 变量字符串。
244
+ * 支持 scheme-a / scheme-b 两套强调色方案与 light / dark 外观模式。
245
+ */
246
+ export function generateTheme03CssVariables(scheme = 'scheme-a', appearance = 'dark') {
247
+ return buildCssVarsFromTokens(getTheme03Tokens(scheme, appearance));
248
+ }
249
+ /**
250
+ * 生成同时包含 scheme-a / scheme-b 与 light / dark 组合的 CSS 字符串,
251
+ * 通过 :root 的 data-theme(scheme)与 data-appearance(light/dark)切换。
252
+ *
253
+ * 变量块优先级顺序(后覆盖前):
254
+ * 1. :root — scheme-a + dark
255
+ * 2. [data-theme="scheme-b"] — scheme-b + dark
256
+ * 3. [data-appearance="light"] — scheme-a + light
257
+ * 4. [data-theme="scheme-b"][data-appearance="light"] — scheme-b + light
258
+ */
259
+ export function generateTheme03CssVariablesWithSchemes() {
260
+ const darkA = buildCssVarsFromTokens(getTheme03Tokens('scheme-a', 'dark'));
261
+ const darkB = buildCssVarsFromTokens(getTheme03Tokens('scheme-b', 'dark'));
262
+ const lightA = buildCssVarsFromTokens(getTheme03Tokens('scheme-a', 'light'));
263
+ const lightB = buildCssVarsFromTokens(getTheme03Tokens('scheme-b', 'light'));
264
+ return `
265
+ :root {
266
+ ${darkA}
267
+ }
268
+ :root[data-theme="scheme-b"] {
269
+ ${darkB}
270
+ }
271
+ :root[data-appearance="light"] {
272
+ ${lightA}
273
+ }
274
+ :root[data-theme="scheme-b"][data-appearance="light"] {
275
+ ${lightB}
276
+ }
277
+ `.trim();
278
+ }
279
+ //# sourceMappingURL=tokens.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tokens.js","sourceRoot":"","sources":["../../src/theme03/tokens.ts"],"names":[],"mappings":"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"}