@admin-core/design 0.1.0 → 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.
- package/README.md +212 -302
- package/dist/index.cjs +5 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2351 -1
- package/dist/index.js.map +1 -1
- package/dist/index.umd.js +5 -1
- package/dist/index.umd.js.map +1 -1
- package/dist/style.css +1 -1
- package/dist/theme/composables.d.ts +89 -0
- package/dist/theme/composables.d.ts.map +1 -0
- package/dist/theme/constants.d.ts +51 -0
- package/dist/theme/constants.d.ts.map +1 -0
- package/dist/theme/index.d.ts +50 -0
- package/dist/theme/index.d.ts.map +1 -0
- package/dist/theme/types.d.ts +135 -0
- package/dist/theme/types.d.ts.map +1 -0
- package/dist/theme/utils.d.ts +230 -0
- package/dist/theme/utils.d.ts.map +1 -0
- package/package.json +23 -2
|
@@ -0,0 +1,230 @@
|
|
|
1
|
+
import { ThemeMode, ThemeVariant, ThemeConfig, ThemeChangeOptions, ColorValue } from './types';
|
|
2
|
+
/**
|
|
3
|
+
* 获取 HTML 根元素
|
|
4
|
+
*/
|
|
5
|
+
export declare function getHtmlElement(): HTMLElement;
|
|
6
|
+
/**
|
|
7
|
+
* 从 localStorage 获取主题模式
|
|
8
|
+
*/
|
|
9
|
+
export declare function getStoredMode(): ThemeMode | null;
|
|
10
|
+
/**
|
|
11
|
+
* 从 localStorage 获取主题变体
|
|
12
|
+
*/
|
|
13
|
+
export declare function getStoredVariant(): ThemeVariant | null;
|
|
14
|
+
/**
|
|
15
|
+
* 保存主题模式到 localStorage
|
|
16
|
+
*/
|
|
17
|
+
export declare function storeMode(mode: ThemeMode): void;
|
|
18
|
+
/**
|
|
19
|
+
* 保存主题变体到 localStorage
|
|
20
|
+
*/
|
|
21
|
+
export declare function storeVariant(variant: ThemeVariant): void;
|
|
22
|
+
/**
|
|
23
|
+
* 清除存储的主题配置
|
|
24
|
+
*/
|
|
25
|
+
export declare function clearStoredTheme(): void;
|
|
26
|
+
/**
|
|
27
|
+
* 应用主题模式到 DOM
|
|
28
|
+
*/
|
|
29
|
+
export declare function applyMode(mode: ThemeMode): void;
|
|
30
|
+
/**
|
|
31
|
+
* 应用主题变体到 DOM
|
|
32
|
+
*/
|
|
33
|
+
export declare function applyVariant(variant: ThemeVariant): void;
|
|
34
|
+
/**
|
|
35
|
+
* 获取当前主题模式
|
|
36
|
+
*/
|
|
37
|
+
export declare function getCurrentMode(): ThemeMode;
|
|
38
|
+
/**
|
|
39
|
+
* 获取当前主题变体
|
|
40
|
+
*/
|
|
41
|
+
export declare function getCurrentVariant(): ThemeVariant;
|
|
42
|
+
/**
|
|
43
|
+
* 应用主题配置
|
|
44
|
+
*/
|
|
45
|
+
export declare function applyTheme(config: Partial<ThemeConfig>, options?: ThemeChangeOptions): void;
|
|
46
|
+
/**
|
|
47
|
+
* 启用主题切换过渡动画
|
|
48
|
+
*/
|
|
49
|
+
export declare function enableTransition(): void;
|
|
50
|
+
/**
|
|
51
|
+
* 禁用主题切换过渡动画
|
|
52
|
+
*/
|
|
53
|
+
export declare function disableTransition(): void;
|
|
54
|
+
/**
|
|
55
|
+
* 切换暗色模式
|
|
56
|
+
*/
|
|
57
|
+
export declare function toggleDarkMode(options?: ThemeChangeOptions): ThemeMode;
|
|
58
|
+
/**
|
|
59
|
+
* 初始化主题
|
|
60
|
+
* 从 localStorage 恢复主题配置,如果没有则使用默认值
|
|
61
|
+
*/
|
|
62
|
+
export declare function initTheme(): ThemeConfig;
|
|
63
|
+
/**
|
|
64
|
+
* 检测系统主题偏好
|
|
65
|
+
*/
|
|
66
|
+
export declare function detectSystemTheme(): ThemeMode;
|
|
67
|
+
/**
|
|
68
|
+
* 监听系统主题变化
|
|
69
|
+
*/
|
|
70
|
+
export declare function watchSystemTheme(callback: (mode: ThemeMode) => void): () => void;
|
|
71
|
+
/**
|
|
72
|
+
* 获取所有可用主题
|
|
73
|
+
*/
|
|
74
|
+
export declare function getAvailableThemes(): import('./types').ThemeMetadata[];
|
|
75
|
+
/**
|
|
76
|
+
* 根据 ID 获取主题元数据
|
|
77
|
+
*/
|
|
78
|
+
export declare function getThemeMetadata(variant: ThemeVariant): import('./types').ThemeMetadata | undefined;
|
|
79
|
+
/**
|
|
80
|
+
* 解析 HSL 颜色字符串
|
|
81
|
+
* @param hsl - HSL 颜色字符串,格式:'hsl(262.1, 83.3%, 57.8%)' 或 '262.1 83.3% 57.8%'
|
|
82
|
+
*/
|
|
83
|
+
export declare function parseHSL(hsl: string): ColorValue | null;
|
|
84
|
+
/**
|
|
85
|
+
* 将 ColorValue 转换为 HSL 字符串
|
|
86
|
+
*/
|
|
87
|
+
export declare function toHSLString(color: ColorValue): string;
|
|
88
|
+
/**
|
|
89
|
+
* 获取 CSS 变量值
|
|
90
|
+
*/
|
|
91
|
+
export declare function getCSSVariable(name: string): string;
|
|
92
|
+
/**
|
|
93
|
+
* 设置 CSS 变量值
|
|
94
|
+
*/
|
|
95
|
+
export declare function setCSSVariable(name: string, value: string): void;
|
|
96
|
+
/**
|
|
97
|
+
* 获取主题颜色
|
|
98
|
+
*/
|
|
99
|
+
export declare function getThemeColor(token: string): string;
|
|
100
|
+
/**
|
|
101
|
+
* 验证主题变体是否有效
|
|
102
|
+
*/
|
|
103
|
+
export declare function isValidVariant(variant: string): variant is ThemeVariant;
|
|
104
|
+
/**
|
|
105
|
+
* 验证主题模式是否有效
|
|
106
|
+
*/
|
|
107
|
+
export declare function isValidMode(mode: string): mode is ThemeMode;
|
|
108
|
+
/**
|
|
109
|
+
* 自定义主题颜色配置
|
|
110
|
+
*/
|
|
111
|
+
export interface CustomThemeColors {
|
|
112
|
+
/** 主色 */
|
|
113
|
+
primary?: string;
|
|
114
|
+
/** 主色前景色 */
|
|
115
|
+
primaryForeground?: string;
|
|
116
|
+
/** 次要色 */
|
|
117
|
+
secondary?: string;
|
|
118
|
+
/** 次要色前景色 */
|
|
119
|
+
secondaryForeground?: string;
|
|
120
|
+
/** 强调色 */
|
|
121
|
+
accent?: string;
|
|
122
|
+
/** 强调色前景色 */
|
|
123
|
+
accentForeground?: string;
|
|
124
|
+
/** 柔和色 */
|
|
125
|
+
muted?: string;
|
|
126
|
+
/** 柔和色前景色 */
|
|
127
|
+
mutedForeground?: string;
|
|
128
|
+
/** 背景色 */
|
|
129
|
+
background?: string;
|
|
130
|
+
/** 深层背景色 */
|
|
131
|
+
backgroundDeep?: string;
|
|
132
|
+
/** 前景色 */
|
|
133
|
+
foreground?: string;
|
|
134
|
+
/** 卡片背景色 */
|
|
135
|
+
card?: string;
|
|
136
|
+
/** 卡片前景色 */
|
|
137
|
+
cardForeground?: string;
|
|
138
|
+
/** 边框色 */
|
|
139
|
+
border?: string;
|
|
140
|
+
/** 输入框边框色 */
|
|
141
|
+
input?: string;
|
|
142
|
+
/** 焦点环颜色 */
|
|
143
|
+
ring?: string;
|
|
144
|
+
/** 侧边栏背景色 */
|
|
145
|
+
sidebar?: string;
|
|
146
|
+
/** 侧边栏深层背景色 */
|
|
147
|
+
sidebarDeep?: string;
|
|
148
|
+
/** 头部背景色 */
|
|
149
|
+
header?: string;
|
|
150
|
+
/** 菜单背景色 */
|
|
151
|
+
menu?: string;
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* 应用自定义主题颜色
|
|
155
|
+
* @param colors - 自定义颜色配置(HSL 格式,如 '280 35% 65%' 或 'hsl(280, 35%, 65%)')
|
|
156
|
+
* @param persist - 是否持久化到 localStorage
|
|
157
|
+
*
|
|
158
|
+
* @example
|
|
159
|
+
* ```typescript
|
|
160
|
+
* // 设置自定义主色
|
|
161
|
+
* applyCustomTheme({
|
|
162
|
+
* primary: '280 35% 65%',
|
|
163
|
+
* primaryForeground: '0 0% 98%'
|
|
164
|
+
* })
|
|
165
|
+
*
|
|
166
|
+
* // 使用完整的 HSL 格式
|
|
167
|
+
* applyCustomTheme({
|
|
168
|
+
* primary: 'hsl(280, 35%, 65%)',
|
|
169
|
+
* accent: 'hsl(200, 85%, 50%)'
|
|
170
|
+
* })
|
|
171
|
+
* ```
|
|
172
|
+
*/
|
|
173
|
+
export declare function applyCustomTheme(colors: CustomThemeColors, persist?: boolean): void;
|
|
174
|
+
/**
|
|
175
|
+
* 获取存储的自定义主题颜色
|
|
176
|
+
*/
|
|
177
|
+
export declare function getStoredCustomTheme(): CustomThemeColors | null;
|
|
178
|
+
/**
|
|
179
|
+
* 清除自定义主题颜色
|
|
180
|
+
*/
|
|
181
|
+
export declare function clearCustomTheme(): void;
|
|
182
|
+
/**
|
|
183
|
+
* 恢复自定义主题颜色
|
|
184
|
+
*/
|
|
185
|
+
export declare function restoreCustomTheme(): boolean;
|
|
186
|
+
/**
|
|
187
|
+
* 从 HEX 颜色转换为 HSL
|
|
188
|
+
* @param hex - HEX 颜色字符串,如 '#8B5CF6'
|
|
189
|
+
* @returns HSL 格式字符串,如 '280 35% 65%'
|
|
190
|
+
*/
|
|
191
|
+
export declare function hexToHSL(hex: string): string;
|
|
192
|
+
/**
|
|
193
|
+
* 从 RGB 颜色转换为 HSL
|
|
194
|
+
* @param r - 红色值 (0-255)
|
|
195
|
+
* @param g - 绿色值 (0-255)
|
|
196
|
+
* @param b - 蓝色值 (0-255)
|
|
197
|
+
* @returns HSL 格式字符串,如 '280 35% 65%'
|
|
198
|
+
*/
|
|
199
|
+
export declare function rgbToHSL(r: number, g: number, b: number): string;
|
|
200
|
+
/**
|
|
201
|
+
* 生成完整的主题配色方案(基于单一主色)
|
|
202
|
+
* @param primaryColor - 主色(HEX 或 HSL 格式)
|
|
203
|
+
* @param mode - 主题模式(light 或 dark)
|
|
204
|
+
* @returns 完整的主题颜色配置
|
|
205
|
+
*
|
|
206
|
+
* @example
|
|
207
|
+
* ```typescript
|
|
208
|
+
* // 从紫色生成完整配色
|
|
209
|
+
* const colors = generateThemeFromPrimary('#8B5CF6', 'light')
|
|
210
|
+
* applyCustomTheme(colors)
|
|
211
|
+
* ```
|
|
212
|
+
*/
|
|
213
|
+
export declare function generateThemeFromPrimary(primaryColor: string, mode?: ThemeMode): CustomThemeColors;
|
|
214
|
+
/**
|
|
215
|
+
* 应用基于主色的完整主题
|
|
216
|
+
* @param primaryColor - 主色(HEX 或 HSL 格式)
|
|
217
|
+
* @param mode - 主题模式(默认使用当前模式)
|
|
218
|
+
* @param persist - 是否持久化
|
|
219
|
+
*
|
|
220
|
+
* @example
|
|
221
|
+
* ```typescript
|
|
222
|
+
* // 使用 HEX 颜色
|
|
223
|
+
* applyThemeFromPrimary('#8B5CF6')
|
|
224
|
+
*
|
|
225
|
+
* // 指定模式并持久化
|
|
226
|
+
* applyThemeFromPrimary('#8B5CF6', 'dark', true)
|
|
227
|
+
* ```
|
|
228
|
+
*/
|
|
229
|
+
export declare function applyThemeFromPrimary(primaryColor: string, mode?: ThemeMode, persist?: boolean): void;
|
|
230
|
+
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/theme/utils.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@admin-core/design",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.0",
|
|
4
4
|
"private": false,
|
|
5
5
|
"type": "module",
|
|
6
6
|
"description": "设计系统(样式、令牌)",
|
|
@@ -25,10 +25,23 @@
|
|
|
25
25
|
"import": "./dist/index.js",
|
|
26
26
|
"require": "./dist/index.cjs"
|
|
27
27
|
},
|
|
28
|
+
"./style.css": "./dist/style.css",
|
|
28
29
|
"./css": "./dist/style.css",
|
|
30
|
+
"./css/index.css": "./src/css/index.css",
|
|
31
|
+
"./tokens/light.css": "./src/tokens/light.css",
|
|
32
|
+
"./tokens/dark.css": "./src/tokens/dark.css",
|
|
29
33
|
"./umd": "./dist/index.umd.js",
|
|
34
|
+
"./theme": {
|
|
35
|
+
"types": "./src/theme/index.ts",
|
|
36
|
+
"import": "./src/theme/index.ts"
|
|
37
|
+
},
|
|
30
38
|
"./scss-bem": "./src/scss-bem/bem.scss",
|
|
31
|
-
"./scss-bem/*": "./src/scss-bem/*"
|
|
39
|
+
"./scss-bem/*": "./src/scss-bem/*",
|
|
40
|
+
"./tailwind.config": {
|
|
41
|
+
"types": "./tailwind.config.ts",
|
|
42
|
+
"import": "./tailwind.config.ts",
|
|
43
|
+
"require": "./tailwind.config.ts"
|
|
44
|
+
}
|
|
32
45
|
},
|
|
33
46
|
"main": "./dist/index.cjs",
|
|
34
47
|
"module": "./dist/index.js",
|
|
@@ -46,5 +59,13 @@
|
|
|
46
59
|
"scripts": {
|
|
47
60
|
"build": "vite build",
|
|
48
61
|
"dev": "vite build --watch"
|
|
62
|
+
},
|
|
63
|
+
"devDependencies": {
|
|
64
|
+
"@types/node": "catalog:",
|
|
65
|
+
"sass": "catalog:",
|
|
66
|
+
"tailwindcss": "catalog:",
|
|
67
|
+
"typescript": "catalog:",
|
|
68
|
+
"vite": "catalog:",
|
|
69
|
+
"vite-plugin-dts": "catalog:"
|
|
49
70
|
}
|
|
50
71
|
}
|