@cyberpunk-vue/theme-chalk 1.14.0 → 1.14.2

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 (47) hide show
  1. package/dist/index.css +1 -1
  2. package/dist/index.css.map +1 -1
  3. package/package.json +1 -1
  4. package/src/common/var.scss +247 -247
  5. package/src/components/avatar-group.scss +113 -113
  6. package/src/components/avatar.scss +123 -123
  7. package/src/components/badge.scss +210 -210
  8. package/src/components/breadcrumb.scss +203 -203
  9. package/src/components/button.scss +975 -975
  10. package/src/components/card.scss +699 -696
  11. package/src/components/checkbox-group.scss +22 -22
  12. package/src/components/checkbox.scss +320 -320
  13. package/src/components/col.scss +43 -43
  14. package/src/components/dialog.scss +360 -360
  15. package/src/components/divider.scss +250 -250
  16. package/src/components/empty.scss +99 -99
  17. package/src/components/form-item.scss +189 -189
  18. package/src/components/form.scss +59 -59
  19. package/src/components/icon.scss +83 -83
  20. package/src/components/image-preview.scss +147 -147
  21. package/src/components/image.scss +351 -351
  22. package/src/components/input-number.scss +129 -129
  23. package/src/components/input.scss +362 -362
  24. package/src/components/loading.scss +64 -64
  25. package/src/components/notification.scss +348 -348
  26. package/src/components/pagination.scss +287 -280
  27. package/src/components/pattern-background.scss +18 -18
  28. package/src/components/popover.scss +438 -438
  29. package/src/components/progress.scss +438 -438
  30. package/src/components/radio-group.scss +22 -22
  31. package/src/components/radio.scss +286 -286
  32. package/src/components/row.scss +12 -12
  33. package/src/components/scrollbar.scss +40 -40
  34. package/src/components/segmented.scss +566 -566
  35. package/src/components/select.scss +15 -1
  36. package/src/components/slider.scss +421 -421
  37. package/src/components/status-indicator.scss +206 -206
  38. package/src/components/switch.scss +405 -405
  39. package/src/components/table.scss +474 -474
  40. package/src/components/tag.scss +416 -416
  41. package/src/components/text.scss +310 -271
  42. package/src/components/textarea.scss +106 -104
  43. package/src/components/timeline.scss +379 -379
  44. package/src/components/tree.scss +397 -397
  45. package/src/components/upload.scss +509 -509
  46. package/src/index.scss +60 -60
  47. package/src/mixins/mixins.scss +156 -156
@@ -1,250 +1,250 @@
1
- // Cyberpunk Vue Design Tokens
2
- // 赛博朋克配色系统 - 扩展版
3
-
4
- @use 'sass:map';
5
-
6
- // ===== 核心色彩 =====
7
- $cp-colors: (
8
- 'primary': #00f0ff,
9
- // 赛博青 - 主色调
10
- 'success': #39ff14,
11
- // 霓虹绿 - 成功
12
- 'warning': #ff9f1c,
13
- // 橙黄 - 警告
14
- 'error': #ff0055,
15
- // 洋红 - 错误
16
- 'info': #7b68ee,
17
- // 紫罗兰 - 信息
18
- );
19
-
20
- // 需要深色文字的亮色类型 (用于组件自动判断)
21
- $cp-bright-colors: (primary, success, warning);
22
-
23
- // ===== 中性色 =====
24
- $cp-neutrals: (
25
- 'bg-deep': #0a0a0e,
26
- 'bg-base': #101014,
27
- 'bg-elevated': #18181c,
28
- 'border': #282830,
29
- 'text-primary': #ffffff,
30
- 'text-secondary': #a0a0b0,
31
- 'text-muted': #606070,
32
- );
33
-
34
- // ===== 语义表面色 (Surface) =====
35
- $cp-semantic: (
36
- 'surface': #101014,
37
- 'surface-variant': #18181c,
38
- 'surface-bright': #282830,
39
- 'overlay': rgba(0, 0, 0, 0.5),
40
- 'scrim': rgba(10, 10, 14, 0.8),
41
- );
42
-
43
- // ===== 文字层级 (Typography) =====
44
- $cp-typography: (
45
- 'on-bright': #0a0a0f, // 亮色背景上的文字
46
- 'on-dark': #ffffff, // 深色背景上的文字
47
- 'disabled': #606070,
48
- 'placeholder': #808090,
49
- 'inverse': #0a0a0f, // 反转文字
50
- );
51
-
52
- // ===== 边框状态 (Borders) =====
53
- $cp-borders: (
54
- 'default': #2a2a3a,
55
- 'active': #00f0ff, // 映射到 primary
56
- 'inactive': #404050,
57
- 'focus': #00f0ff, // 映射到 primary
58
- 'hover': #505060,
59
- 'error': #ff0055,
60
- 'disabled': #303040,
61
- );
62
-
63
- // ===== 交互状态 (States) =====
64
- $cp-states: (
65
- 'hover': rgba(255, 255, 255, 0.05),
66
- 'pressed': rgba(255, 255, 255, 0.1),
67
- 'disabled': rgba(128, 128, 128, 0.3),
68
- );
69
-
70
- // ===== 尺寸 =====
71
- $cp-sizes: (
72
- 'sm': 28px,
73
- 'md': 36px,
74
- 'lg': 44px,
75
- );
76
-
77
- // Button 专属高度变量
78
- $cp-button-height-sm: map.get($cp-sizes, 'sm');
79
- $cp-button-height-md: map.get($cp-sizes, 'md');
80
- $cp-button-height-lg: map.get($cp-sizes, 'lg');
81
-
82
- $cp-font-sizes: (
83
- 'sm': 12px,
84
- 'md': 14px,
85
- 'lg': 16px,
86
- );
87
-
88
- $cp-spacing: (
89
- 'xs': 4px,
90
- 'sm': 8px,
91
- 'md': 12px,
92
- 'lg': 16px,
93
- 'xl': 24px,
94
- );
95
-
96
- $cp-radius: (
97
- 'sm': 4px,
98
- 'md': 6px,
99
- 'lg': 8px,
100
- );
101
-
102
- // ===== CSS 变量生成 =====
103
- :root {
104
-
105
- // 颜色
106
- @each $name, $value in $cp-colors {
107
- --cp-color-#{$name}: #{$value};
108
- --cp-color-#{$name}-light: color-mix(in srgb, var(--cp-color-#{$name}) 20%, transparent);
109
- --cp-color-#{$name}-dark: color-mix(in srgb, var(--cp-color-#{$name}) 85%, black);
110
-
111
- }
112
-
113
- // 中性色
114
- @each $name, $value in $cp-neutrals {
115
- --cp-#{$name}: #{$value};
116
- }
117
-
118
- // 语义表面色
119
- @each $name, $value in $cp-semantic {
120
- --cp-#{$name}: #{$value};
121
- }
122
-
123
- // 文字层级
124
- @each $name, $value in $cp-typography {
125
- --cp-text-#{$name}: #{$value};
126
- }
127
-
128
- // 边框状态
129
- @each $name, $value in $cp-borders {
130
- --cp-border-#{$name}: #{$value};
131
- }
132
-
133
- // 交互状态
134
- @each $name, $value in $cp-states {
135
- --cp-state-#{$name}: #{$value};
136
- }
137
- --cp-state-selected: color-mix(in srgb, var(--cp-color-primary) 15%, transparent);
138
- --cp-state-focus-ring: color-mix(in srgb, var(--cp-color-primary) 40%, transparent);
139
-
140
- // 尺寸
141
- @each $name, $value in $cp-sizes {
142
- --cp-size-#{$name}: #{$value};
143
- }
144
-
145
- // Button 尺寸
146
- --cp-button-height-sm: #{$cp-button-height-sm};
147
- --cp-button-height-md: #{$cp-button-height-md};
148
- --cp-button-height-lg: #{$cp-button-height-lg};
149
-
150
- @each $name, $value in $cp-font-sizes {
151
- --cp-font-size-#{$name}: #{$value};
152
- }
153
-
154
- // 字体族与可变字重
155
- --cp-font-family-ui:
156
- "Inter Variable",
157
- "Noto Sans SC Variable",
158
- "Inter",
159
- "Noto Sans SC",
160
- "PingFang SC",
161
- "Hiragino Sans GB",
162
- "Microsoft YaHei",
163
- "Rajdhani",
164
- system-ui,
165
- -apple-system,
166
- "Segoe UI",
167
- sans-serif;
168
- --cp-font-family-display:
169
- "Orbitron",
170
- "Rajdhani",
171
- "Inter Variable",
172
- "Noto Sans SC Variable",
173
- sans-serif;
174
- --cp-font-family-mono:
175
- "Rajdhani",
176
- "Inter Variable",
177
- "Noto Sans SC Variable",
178
- monospace;
179
- --cp-font-weight-light: 350;
180
- --cp-font-weight-normal: 450;
181
- --cp-font-weight-medium: 520;
182
- --cp-font-weight-semibold: 620;
183
- --cp-font-weight-bold: 700;
184
- --cp-font-weight-transition-fast: 0.2s cubic-bezier(0.22, 1, 0.36, 1);
185
- --cp-font-weight-transition-normal: 0.25s cubic-bezier(0.22, 1, 0.36, 1);
186
-
187
- @each $name, $value in $cp-spacing {
188
- --cp-spacing-#{$name}: #{$value};
189
- }
190
-
191
- @each $name, $value in $cp-radius {
192
- --cp-radius-#{$name}: #{$value};
193
- }
194
-
195
- // ===== 每个主题色的配套变量 =====
196
- // primary (亮色 - 用深色文字)
197
- --cp-color-primary-text: var(--cp-text-on-bright);
198
- --cp-color-primary-border: var(--cp-color-primary);
199
- --cp-color-primary-hover: color-mix(in srgb, var(--cp-color-primary) 10%, transparent);
200
-
201
- // success (亮色 - 用深色文字)
202
- --cp-color-success-text: var(--cp-text-on-bright);
203
- --cp-color-success-border: var(--cp-color-success);
204
- --cp-color-success-hover: color-mix(in srgb, var(--cp-color-success) 10%, transparent);
205
-
206
- // warning (亮色 - 用深色文字)
207
- --cp-color-warning-text: var(--cp-text-on-bright);
208
- --cp-color-warning-border: var(--cp-color-warning);
209
- --cp-color-warning-hover: color-mix(in srgb, var(--cp-color-warning) 10%, transparent);
210
-
211
- // error (深色 - 用亮色文字)
212
- --cp-color-error-text: var(--cp-text-on-dark);
213
- --cp-color-error-border: var(--cp-color-error);
214
- --cp-color-error-hover: color-mix(in srgb, var(--cp-color-error) 10%, transparent);
215
-
216
- // info (深色 - 用亮色文字)
217
- --cp-color-info-text: var(--cp-text-on-dark);
218
- --cp-color-info-border: var(--cp-color-info);
219
- --cp-color-info-hover: color-mix(in srgb, var(--cp-color-info) 10%, transparent);
220
-
221
- // 特效
222
- --cp-glow-primary: 0 0 10px var(--cp-color-primary),
223
- 0 0 20px var(--cp-color-primary-light);
224
- --cp-transition-fast: 0.15s ease;
225
- --cp-transition-normal: 0.25s ease;
226
-
227
- // Layout
228
- --cp-layout-header-height: 60px;
229
- --cp-layout-footer-height: 60px;
230
- --cp-layout-header-bg: rgba(24, 24, 28, 0.72);
231
- --cp-layout-footer-bg: rgba(24, 24, 28, 0.68);
232
- --cp-layout-glass-blur: 12px;
233
- --cp-main-under-header-offset: var(--cp-layout-header-height);
234
- --cp-main-under-footer-offset: var(--cp-layout-footer-height);
235
- --cp-aside-under-header-offset: var(--cp-layout-header-height);
236
- --cp-aside-under-footer-offset: var(--cp-layout-footer-height);
237
- --cp-main-scrollbar-safe-top: 0px;
238
- --cp-main-scrollbar-safe-bottom: 0px;
239
- --cp-aside-scrollbar-safe-top: 0px;
240
- --cp-aside-scrollbar-safe-bottom: 0px;
241
- --cp-main-body-header-placeholder-height: var(--cp-layout-header-height);
242
- --cp-main-body-footer-placeholder-height: var(--cp-layout-footer-height);
243
- --cp-aside-sidebar-header-placeholder-height: var(--cp-layout-header-height);
244
- --cp-aside-sidebar-footer-placeholder-height: var(--cp-layout-footer-height);
245
- }
246
-
247
- // ===== 暗色/亮色主题切换 =====
1
+ // Cyberpunk Vue Design Tokens
2
+ // 赛博朋克配色系统 - 扩展版
3
+
4
+ @use 'sass:map';
5
+
6
+ // ===== 核心色彩 =====
7
+ $cp-colors: (
8
+ 'primary': #00f0ff,
9
+ // 赛博青 - 主色调
10
+ 'success': #39ff14,
11
+ // 霓虹绿 - 成功
12
+ 'warning': #ff9f1c,
13
+ // 橙黄 - 警告
14
+ 'error': #ff0055,
15
+ // 洋红 - 错误
16
+ 'info': #7b68ee,
17
+ // 紫罗兰 - 信息
18
+ );
19
+
20
+ // 需要深色文字的亮色类型 (用于组件自动判断)
21
+ $cp-bright-colors: (primary, success, warning);
22
+
23
+ // ===== 中性色 =====
24
+ $cp-neutrals: (
25
+ 'bg-deep': #0a0a0e,
26
+ 'bg-base': #101014,
27
+ 'bg-elevated': #18181c,
28
+ 'border': #282830,
29
+ 'text-primary': #ffffff,
30
+ 'text-secondary': #a0a0b0,
31
+ 'text-muted': #606070,
32
+ );
33
+
34
+ // ===== 语义表面色 (Surface) =====
35
+ $cp-semantic: (
36
+ 'surface': #101014,
37
+ 'surface-variant': #18181c,
38
+ 'surface-bright': #282830,
39
+ 'overlay': rgba(0, 0, 0, 0.5),
40
+ 'scrim': rgba(10, 10, 14, 0.8),
41
+ );
42
+
43
+ // ===== 文字层级 (Typography) =====
44
+ $cp-typography: (
45
+ 'on-bright': #0a0a0f, // 亮色背景上的文字
46
+ 'on-dark': #ffffff, // 深色背景上的文字
47
+ 'disabled': #606070,
48
+ 'placeholder': #808090,
49
+ 'inverse': #0a0a0f, // 反转文字
50
+ );
51
+
52
+ // ===== 边框状态 (Borders) =====
53
+ $cp-borders: (
54
+ 'default': #2a2a3a,
55
+ 'active': #00f0ff, // 映射到 primary
56
+ 'inactive': #404050,
57
+ 'focus': #00f0ff, // 映射到 primary
58
+ 'hover': #505060,
59
+ 'error': #ff0055,
60
+ 'disabled': #303040,
61
+ );
62
+
63
+ // ===== 交互状态 (States) =====
64
+ $cp-states: (
65
+ 'hover': rgba(255, 255, 255, 0.05),
66
+ 'pressed': rgba(255, 255, 255, 0.1),
67
+ 'disabled': rgba(128, 128, 128, 0.3),
68
+ );
69
+
70
+ // ===== 尺寸 =====
71
+ $cp-sizes: (
72
+ 'sm': 28px,
73
+ 'md': 36px,
74
+ 'lg': 44px,
75
+ );
76
+
77
+ // Button 专属高度变量
78
+ $cp-button-height-sm: map.get($cp-sizes, 'sm');
79
+ $cp-button-height-md: map.get($cp-sizes, 'md');
80
+ $cp-button-height-lg: map.get($cp-sizes, 'lg');
81
+
82
+ $cp-font-sizes: (
83
+ 'sm': 12px,
84
+ 'md': 14px,
85
+ 'lg': 16px,
86
+ );
87
+
88
+ $cp-spacing: (
89
+ 'xs': 4px,
90
+ 'sm': 8px,
91
+ 'md': 12px,
92
+ 'lg': 16px,
93
+ 'xl': 24px,
94
+ );
95
+
96
+ $cp-radius: (
97
+ 'sm': 4px,
98
+ 'md': 6px,
99
+ 'lg': 8px,
100
+ );
101
+
102
+ // ===== CSS 变量生成 =====
103
+ :root {
104
+
105
+ // 颜色
106
+ @each $name, $value in $cp-colors {
107
+ --cp-color-#{$name}: #{$value};
108
+ --cp-color-#{$name}-light: color-mix(in srgb, var(--cp-color-#{$name}) 20%, transparent);
109
+ --cp-color-#{$name}-dark: color-mix(in srgb, var(--cp-color-#{$name}) 85%, black);
110
+
111
+ }
112
+
113
+ // 中性色
114
+ @each $name, $value in $cp-neutrals {
115
+ --cp-#{$name}: #{$value};
116
+ }
117
+
118
+ // 语义表面色
119
+ @each $name, $value in $cp-semantic {
120
+ --cp-#{$name}: #{$value};
121
+ }
122
+
123
+ // 文字层级
124
+ @each $name, $value in $cp-typography {
125
+ --cp-text-#{$name}: #{$value};
126
+ }
127
+
128
+ // 边框状态
129
+ @each $name, $value in $cp-borders {
130
+ --cp-border-#{$name}: #{$value};
131
+ }
132
+
133
+ // 交互状态
134
+ @each $name, $value in $cp-states {
135
+ --cp-state-#{$name}: #{$value};
136
+ }
137
+ --cp-state-selected: color-mix(in srgb, var(--cp-color-primary) 15%, transparent);
138
+ --cp-state-focus-ring: color-mix(in srgb, var(--cp-color-primary) 40%, transparent);
139
+
140
+ // 尺寸
141
+ @each $name, $value in $cp-sizes {
142
+ --cp-size-#{$name}: #{$value};
143
+ }
144
+
145
+ // Button 尺寸
146
+ --cp-button-height-sm: #{$cp-button-height-sm};
147
+ --cp-button-height-md: #{$cp-button-height-md};
148
+ --cp-button-height-lg: #{$cp-button-height-lg};
149
+
150
+ @each $name, $value in $cp-font-sizes {
151
+ --cp-font-size-#{$name}: #{$value};
152
+ }
153
+
154
+ // 字体族与可变字重
155
+ --cp-font-family-ui:
156
+ "Inter Variable",
157
+ "Noto Sans SC Variable",
158
+ "Inter",
159
+ "Noto Sans SC",
160
+ "PingFang SC",
161
+ "Hiragino Sans GB",
162
+ "Microsoft YaHei",
163
+ "Rajdhani",
164
+ system-ui,
165
+ -apple-system,
166
+ "Segoe UI",
167
+ sans-serif;
168
+ --cp-font-family-display:
169
+ "Orbitron",
170
+ "Rajdhani",
171
+ "Inter Variable",
172
+ "Noto Sans SC Variable",
173
+ sans-serif;
174
+ --cp-font-family-mono:
175
+ "Rajdhani",
176
+ "Inter Variable",
177
+ "Noto Sans SC Variable",
178
+ monospace;
179
+ --cp-font-weight-light: 350;
180
+ --cp-font-weight-normal: 450;
181
+ --cp-font-weight-medium: 520;
182
+ --cp-font-weight-semibold: 620;
183
+ --cp-font-weight-bold: 700;
184
+ --cp-font-weight-transition-fast: 0.2s cubic-bezier(0.22, 1, 0.36, 1);
185
+ --cp-font-weight-transition-normal: 0.25s cubic-bezier(0.22, 1, 0.36, 1);
186
+
187
+ @each $name, $value in $cp-spacing {
188
+ --cp-spacing-#{$name}: #{$value};
189
+ }
190
+
191
+ @each $name, $value in $cp-radius {
192
+ --cp-radius-#{$name}: #{$value};
193
+ }
194
+
195
+ // ===== 每个主题色的配套变量 =====
196
+ // primary (亮色 - 用深色文字)
197
+ --cp-color-primary-text: var(--cp-text-on-bright);
198
+ --cp-color-primary-border: var(--cp-color-primary);
199
+ --cp-color-primary-hover: color-mix(in srgb, var(--cp-color-primary) 10%, transparent);
200
+
201
+ // success (亮色 - 用深色文字)
202
+ --cp-color-success-text: var(--cp-text-on-bright);
203
+ --cp-color-success-border: var(--cp-color-success);
204
+ --cp-color-success-hover: color-mix(in srgb, var(--cp-color-success) 10%, transparent);
205
+
206
+ // warning (亮色 - 用深色文字)
207
+ --cp-color-warning-text: var(--cp-text-on-bright);
208
+ --cp-color-warning-border: var(--cp-color-warning);
209
+ --cp-color-warning-hover: color-mix(in srgb, var(--cp-color-warning) 10%, transparent);
210
+
211
+ // error (深色 - 用亮色文字)
212
+ --cp-color-error-text: var(--cp-text-on-dark);
213
+ --cp-color-error-border: var(--cp-color-error);
214
+ --cp-color-error-hover: color-mix(in srgb, var(--cp-color-error) 10%, transparent);
215
+
216
+ // info (深色 - 用亮色文字)
217
+ --cp-color-info-text: var(--cp-text-on-dark);
218
+ --cp-color-info-border: var(--cp-color-info);
219
+ --cp-color-info-hover: color-mix(in srgb, var(--cp-color-info) 10%, transparent);
220
+
221
+ // 特效
222
+ --cp-glow-primary: 0 0 10px var(--cp-color-primary),
223
+ 0 0 20px var(--cp-color-primary-light);
224
+ --cp-transition-fast: 0.15s ease;
225
+ --cp-transition-normal: 0.25s ease;
226
+
227
+ // Layout
228
+ --cp-layout-header-height: 60px;
229
+ --cp-layout-footer-height: 60px;
230
+ --cp-layout-header-bg: rgba(24, 24, 28, 0.72);
231
+ --cp-layout-footer-bg: rgba(24, 24, 28, 0.68);
232
+ --cp-layout-glass-blur: 12px;
233
+ --cp-main-under-header-offset: var(--cp-layout-header-height);
234
+ --cp-main-under-footer-offset: var(--cp-layout-footer-height);
235
+ --cp-aside-under-header-offset: var(--cp-layout-header-height);
236
+ --cp-aside-under-footer-offset: var(--cp-layout-footer-height);
237
+ --cp-main-scrollbar-safe-top: 0px;
238
+ --cp-main-scrollbar-safe-bottom: 0px;
239
+ --cp-aside-scrollbar-safe-top: 0px;
240
+ --cp-aside-scrollbar-safe-bottom: 0px;
241
+ --cp-main-body-header-placeholder-height: var(--cp-layout-header-height);
242
+ --cp-main-body-footer-placeholder-height: var(--cp-layout-footer-height);
243
+ --cp-aside-sidebar-header-placeholder-height: var(--cp-layout-header-height);
244
+ --cp-aside-sidebar-footer-placeholder-height: var(--cp-layout-footer-height);
245
+ }
246
+
247
+ // ===== 暗色/亮色主题切换 =====
248
248
  [data-theme="light"] {
249
249
  // 亮色主题使用独立语义色板,不沿用暗色霓虹色的降明度版本。
250
250
  --cp-color-primary: #0077ff;