@gct-paas/scss 0.0.1-dev.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/CHANGELOG.md ADDED
@@ -0,0 +1,14 @@
1
+ # 版本变更日志
2
+
3
+ 这个项目的所有关键变化都将记录在此文件中.
4
+
5
+ 此日志格式基于 [Keep a Changelog](https://keepachangelog.com/zh-CN/1.1.0/),
6
+ 并且此项目遵循 [Semantic Versioning](https://semver.org/lang/zh-CN/).
7
+
8
+ ## [Unreleased]
9
+
10
+ ## [0.0.1] - 2025-01-07
11
+
12
+ ### Added
13
+
14
+ - 初始化项目.
package/README.md ADDED
@@ -0,0 +1 @@
1
+
package/package.json ADDED
@@ -0,0 +1,35 @@
1
+ {
2
+ "name": "@gct-paas/scss",
3
+ "version": "0.0.1-dev.0",
4
+ "type": "module",
5
+ "description": "paas 平台样式框架包",
6
+ "files": [
7
+ "style",
8
+ "CHANGELOG.md",
9
+ "README.md"
10
+ ],
11
+ "keywords": [
12
+ "paas",
13
+ "gct",
14
+ "bem",
15
+ "style",
16
+ "scss"
17
+ ],
18
+ "repository": {
19
+ "type": "git",
20
+ "url": "https://git.gct-china.com/paas/frontend/paas-package.git"
21
+ },
22
+ "license": "MIT",
23
+ "author": "gct",
24
+ "scripts": {
25
+ "publish:next": "npm publish --access public --tag=next --registry=https://registry.npmjs.org/",
26
+ "publish:dev": "npm publish --access public --tag=dev --registry=https://registry.npmjs.org/",
27
+ "publish:alpha": "npm publish --access public --tag=alpha --registry=https://registry.npmjs.org/",
28
+ "publish:beta": "npm publish --access public --tag=beta --registry=https://registry.npmjs.org/",
29
+ "publish:npm": "npm publish --access public --registry=https://registry.npmjs.org/"
30
+ },
31
+ "dependencies": {
32
+ "normalize.css": "^8.0.1",
33
+ "sass": "^1.83.1"
34
+ }
35
+ }
@@ -0,0 +1 @@
1
+ // 用于重置覆盖 ant-design-vue 的样式
@@ -0,0 +1,3 @@
1
+ /** 重置标准化样式、框大小定义等,例如 normalize.css、reset.css **/
2
+ @import './ant-design-vue';
3
+ @import './reset';
@@ -0,0 +1 @@
1
+ @import 'normalize.css/normalize.css'
@@ -0,0 +1,12 @@
1
+ @use './settings/config.scss' as *;
2
+ @forward './settings/config';
3
+ @use './tools/function.scss' as *;
4
+ @forward './tools/function';
5
+ @use './tools/utils.scss' as *;
6
+ @forward './tools/utils';
7
+ @use './tools/mixin.scss' as *;
8
+ @forward './tools/mixin';
9
+ @use './settings/var.scss' as *;
10
+ @forward './settings/var';
11
+ @use './tools/css-var.scss' as *;
12
+ @forward './tools/css-var';
@@ -0,0 +1,8 @@
1
+ /* 引用基础包 */
2
+ @import './global';
3
+
4
+ /* 重置标准样式 */
5
+ @import './generic/index';
6
+
7
+ /* 默认主题 */
8
+ @import './theme/index';
@@ -0,0 +1,5 @@
1
+ $namespace: 'gct' !default;
2
+ $common-separator: '-' !default;
3
+ $element-separator: '__' !default;
4
+ $modifier-separator: '--' !default;
5
+ $state-prefix: 'is-' !default;
@@ -0,0 +1,6 @@
1
+ /* Element Chalk Variables */
2
+ @use 'sass:math';
3
+ @use 'sass:map';
4
+ @use 'sass:color';
5
+
6
+ // 后续所有样式规范均参考 semi: https://semi.design/zh-CN/basic/tokens
@@ -0,0 +1,637 @@
1
+ :root.default {
2
+ // 红色
3
+ #{getCssVarName(red, 0)}: 108, 9, 10;
4
+ #{getCssVarName(red, 1)}: 144, 17, 16;
5
+ #{getCssVarName(red, 2)}: 181, 31, 25;
6
+ #{getCssVarName(red, 3)}: 215, 51, 35;
7
+ #{getCssVarName(red, 4)}: 251, 73, 49;
8
+ #{getCssVarName(red, 5)}: 252, 114, 90;
9
+ #{getCssVarName(red, 6)}: 253, 153, 131;
10
+ #{getCssVarName(red, 7)}: 254, 190, 172;
11
+ #{getCssVarName(red, 8)}: 254, 224, 213;
12
+ #{getCssVarName(red, 9)}: 255, 243, 239;
13
+
14
+ // 粉色
15
+ #{getCssVarName(pink, 0)}: 92, 7, 47;
16
+ #{getCssVarName(pink, 1)}: 128, 15, 66;
17
+ #{getCssVarName(pink, 2)}: 164, 23, 81;
18
+ #{getCssVarName(pink, 3)}: 199, 34, 97;
19
+ #{getCssVarName(pink, 4)}: 235, 47, 112;
20
+ #{getCssVarName(pink, 5)}: 239, 86, 134;
21
+ #{getCssVarName(pink, 6)}: 243, 126, 159;
22
+ #{getCssVarName(pink, 7)}: 247, 168, 188;
23
+ #{getCssVarName(pink, 8)}: 251, 211, 220;
24
+ #{getCssVarName(pink, 9)}: 253, 239, 241;
25
+
26
+ // 紫色
27
+ #{getCssVarName(purple, 0)}: 74, 16, 97;
28
+ #{getCssVarName(purple, 1)}: 94, 23, 118;
29
+ #{getCssVarName(purple, 2)}: 115, 31, 138;
30
+ #{getCssVarName(purple, 3)}: 137, 40, 159;
31
+ #{getCssVarName(purple, 4)}: 160, 51, 179;
32
+ #{getCssVarName(purple, 5)}: 181, 83, 194;
33
+ #{getCssVarName(purple, 6)}: 202, 120, 209;
34
+ #{getCssVarName(purple, 7)}: 221, 160, 225;
35
+ #{getCssVarName(purple, 8)}: 239, 206, 240;
36
+ #{getCssVarName(purple, 9)}: 247, 235, 247;
37
+
38
+ // 紫罗兰色
39
+ #{getCssVarName(violet, 0)}: 64, 27, 119;
40
+ #{getCssVarName(violet, 1)}: 76, 36, 140;
41
+ #{getCssVarName(violet, 2)}: 88, 46, 160;
42
+ #{getCssVarName(violet, 3)}: 100, 57, 180;
43
+ #{getCssVarName(violet, 4)}: 113, 70, 201;
44
+ #{getCssVarName(violet, 5)}: 136, 101, 212;
45
+ #{getCssVarName(violet, 6)}: 162, 136, 223;
46
+ #{getCssVarName(violet, 7)}: 190, 173, 233;
47
+ #{getCssVarName(violet, 8)}: 221, 212, 243;
48
+ #{getCssVarName(violet, 9)}: 240, 238, 250;
49
+
50
+ // 靛蓝
51
+ #{getCssVarName(indigo, 0)}: 23, 30, 101;
52
+ #{getCssVarName(indigo, 1)}: 32, 41, 122;
53
+ #{getCssVarName(indigo, 2)}: 41, 54, 142;
54
+ #{getCssVarName(indigo, 3)}: 52, 68, 163;
55
+ #{getCssVarName(indigo, 4)}: 64, 83, 183;
56
+ #{getCssVarName(indigo, 5)}: 95, 113, 197;
57
+ #{getCssVarName(indigo, 6)}: 129, 145, 212;
58
+ #{getCssVarName(indigo, 7)}: 167, 180, 226;
59
+ #{getCssVarName(indigo, 8)}: 209, 216, 241;
60
+ #{getCssVarName(indigo, 9)}: 237, 239, 248;
61
+
62
+ // 蓝色
63
+ #{getCssVarName(blue, 0)}: 6, 49, 112;
64
+ #{getCssVarName(blue, 1)}: 8, 70, 148;
65
+ #{getCssVarName(blue, 2)}: 19, 92, 184;
66
+ #{getCssVarName(blue, 3)}: 28, 117, 219;
67
+ #{getCssVarName(blue, 4)}: 41, 143, 255;
68
+ #{getCssVarName(blue, 5)}: 84, 169, 255;
69
+ #{getCssVarName(blue, 6)}: 127, 193, 255;
70
+ #{getCssVarName(blue, 7)}: 169, 215, 255;
71
+ #{getCssVarName(blue, 8)}: 211, 237, 255;
72
+ #{getCssVarName(blue, 9)}: 239, 248, 255;
73
+
74
+ // 浅蓝色
75
+ #{getCssVarName(light, blue, 0)}: 1, 55, 97;
76
+ #{getCssVarName(light, blue, 1)}: 0, 77, 133;
77
+ #{getCssVarName(light, blue, 2)}: 2, 102, 169;
78
+ #{getCssVarName(light, blue, 3)}: 7, 129, 204;
79
+ #{getCssVarName(light, blue, 4)}: 19, 159, 239;
80
+ #{getCssVarName(light, blue, 5)}: 64, 180, 243;
81
+ #{getCssVarName(light, blue, 6)}: 111, 200, 245;
82
+ #{getCssVarName(light, blue, 7)}: 157, 220, 249;
83
+ #{getCssVarName(light, blue, 8)}: 206, 238, 252;
84
+ #{getCssVarName(light, blue, 9)}: 235, 248, 254;
85
+
86
+ // 青色
87
+ #{getCssVarName(cyan, 0)}: 5, 52, 61;
88
+ #{getCssVarName(cyan, 1)}: 6, 79, 92;
89
+ #{getCssVarName(cyan, 2)}: 8, 108, 123;
90
+ #{getCssVarName(cyan, 3)}: 13, 137, 153;
91
+ #{getCssVarName(cyan, 4)}: 20, 168, 183;
92
+ #{getCssVarName(cyan, 5)}: 56, 187, 198;
93
+ #{getCssVarName(cyan, 6)}: 98, 205, 212;
94
+ #{getCssVarName(cyan, 7)}: 145, 223, 227;
95
+ #{getCssVarName(cyan, 8)}: 198, 239, 241;
96
+ #{getCssVarName(cyan, 9)}: 231, 247, 248;
97
+
98
+ // 蓝绿色
99
+ #{getCssVarName(teal, 0)}: 2, 60, 57;
100
+ #{getCssVarName(teal, 1)}: 5, 90, 85;
101
+ #{getCssVarName(teal, 2)}: 8, 119, 111;
102
+ #{getCssVarName(teal, 3)}: 12, 149, 136;
103
+ #{getCssVarName(teal, 4)}: 13, 179, 161;
104
+ #{getCssVarName(teal, 5)}: 51, 194, 176;
105
+ #{getCssVarName(teal, 6)}: 95, 209, 193;
106
+ #{getCssVarName(teal, 7)}: 142, 225, 211;
107
+ #{getCssVarName(teal, 8)}: 196, 240, 232;
108
+ #{getCssVarName(teal, 9)}: 230, 247, 244;
109
+
110
+ // 绿色
111
+ #{getCssVarName(green, 0)}: 18, 60, 25;
112
+ #{getCssVarName(green, 1)}: 27, 90, 37;
113
+ #{getCssVarName(green, 2)}: 39, 119, 49;
114
+ #{getCssVarName(green, 3)}: 51, 149, 61;
115
+ #{getCssVarName(green, 4)}: 62, 179, 72;
116
+ #{getCssVarName(green, 5)}: 92, 194, 100;
117
+ #{getCssVarName(green, 6)}: 127, 209, 132;
118
+ #{getCssVarName(green, 7)}: 165, 225, 168;
119
+ #{getCssVarName(green, 8)}: 208, 240, 208;
120
+ #{getCssVarName(green, 9)}: 236, 246, 236;
121
+
122
+ // 浅绿色
123
+ #{getCssVarName(light, green, 0)}: 38, 61, 19;
124
+ #{getCssVarName(light, green, 1)}: 58, 92, 28;
125
+ #{getCssVarName(light, green, 2)}: 81, 123, 41;
126
+ #{getCssVarName(light, green, 3)}: 103, 153, 51;
127
+ #{getCssVarName(light, green, 4)}: 127, 184, 64;
128
+ #{getCssVarName(light, green, 5)}: 151, 198, 95;
129
+ #{getCssVarName(light, green, 6)}: 176, 212, 129;
130
+ #{getCssVarName(light, green, 7)}: 201, 228, 167;
131
+ #{getCssVarName(light, green, 8)}: 227, 241, 209;
132
+ #{getCssVarName(light, green, 9)}: 243, 248, 237;
133
+
134
+ // 清柠色
135
+ #{getCssVarName(lime, 0)}: 48, 70, 2;
136
+ #{getCssVarName(lime, 1)}: 75, 105, 6;
137
+ #{getCssVarName(lime, 2)}: 103, 141, 9;
138
+ #{getCssVarName(lime, 3)}: 132, 176, 9;
139
+ #{getCssVarName(lime, 4)}: 162, 211, 16;
140
+ #{getCssVarName(lime, 5)}: 174, 220, 58;
141
+ #{getCssVarName(lime, 6)}: 189, 229, 102;
142
+ #{getCssVarName(lime, 7)}: 207, 237, 150;
143
+ #{getCssVarName(lime, 8)}: 229, 246, 201;
144
+ #{getCssVarName(lime, 9)}: 242, 252, 233;
145
+
146
+ // 黄色
147
+ #{getCssVarName(yellow, 0)}: 84, 73, 2;
148
+ #{getCssVarName(yellow, 1)}: 126, 108, 6;
149
+ #{getCssVarName(yellow, 2)}: 168, 142, 12;
150
+ #{getCssVarName(yellow, 3)}: 211, 175, 15;
151
+ #{getCssVarName(yellow, 4)}: 252, 206, 22;
152
+ #{getCssVarName(yellow, 5)}: 253, 222, 68;
153
+ #{getCssVarName(yellow, 6)}: 253, 235, 113;
154
+ #{getCssVarName(yellow, 7)}: 255, 245, 160;
155
+ #{getCssVarName(yellow, 8)}: 254, 251, 207;
156
+ #{getCssVarName(yellow, 9)}: 255, 254, 236;
157
+
158
+ // 琥珀色
159
+ #{getCssVarName(amber, 0)}: 81, 46, 10;
160
+ #{getCssVarName(amber, 1)}: 121, 76, 15;
161
+ #{getCssVarName(amber, 2)}: 161, 107, 22;
162
+ #{getCssVarName(amber, 3)}: 201, 143, 31;
163
+ #{getCssVarName(amber, 4)}: 242, 183, 38;
164
+ #{getCssVarName(amber, 5)}: 245, 201, 79;
165
+ #{getCssVarName(amber, 6)}: 248, 219, 122;
166
+ #{getCssVarName(amber, 7)}: 249, 234, 166;
167
+ #{getCssVarName(amber, 8)}: 252, 246, 210;
168
+ #{getCssVarName(amber, 9)}: 255, 251, 237;
169
+
170
+ // 橙色
171
+ #{getCssVarName(orange, 0)}: 230, 81, 0;
172
+ #{getCssVarName(orange, 1)}: 239, 108, 0;
173
+ #{getCssVarName(orange, 2)}: 245, 124, 2;
174
+ #{getCssVarName(orange, 3)}: 250, 141, 0;
175
+ #{getCssVarName(orange, 4)}: 255, 152, 0;
176
+ #{getCssVarName(orange, 5)}: 255, 167, 38;
177
+ #{getCssVarName(orange, 6)}: 255, 183, 77;
178
+ #{getCssVarName(orange, 7)}: 255, 204, 128;
179
+ #{getCssVarName(orange, 8)}: 255, 223, 177;
180
+ #{getCssVarName(orange, 9)}: 255, 243, 224;
181
+
182
+ // 灰色
183
+ #{getCssVarName(grey, 0)}: 29, 31, 35;
184
+ #{getCssVarName(grey, 1)}: 46, 50, 55;
185
+ #{getCssVarName(grey, 2)}: 65, 70, 76;
186
+ #{getCssVarName(grey, 3)}: 85, 91, 97;
187
+ #{getCssVarName(grey, 4)}: 107, 112, 116;
188
+ #{getCssVarName(grey, 5)}: 136, 141, 145;
189
+ #{getCssVarName(grey, 6)}: 167, 171, 175;
190
+ #{getCssVarName(grey, 7)}: 198, 202, 205;
191
+ #{getCssVarName(grey, 8)}: 230, 232, 234;
192
+ #{getCssVarName(grey, 9)}: 249, 249, 249;
193
+
194
+ // 蓝青色
195
+ #{getCssVarName(blue, cyan, 0)}: 16, 41, 68;
196
+ #{getCssVarName(blue, cyan, 1)}: 26, 52, 79;
197
+ #{getCssVarName(blue, cyan, 2)}: 36, 65, 96;
198
+ #{getCssVarName(blue, cyan, 3)}: 48, 81, 115;
199
+ #{getCssVarName(blue, cyan, 4)}: 70, 107, 144;
200
+ #{getCssVarName(blue, cyan, 5)}: 85, 125, 165;
201
+ #{getCssVarName(blue, cyan, 6)}: 105, 148, 190;
202
+ #{getCssVarName(blue, cyan, 7)}: 131, 171, 212;
203
+ #{getCssVarName(blue, cyan, 8)}: 164, 201, 238;
204
+ #{getCssVarName(blue, cyan, 9)}: 217, 236, 255;
205
+
206
+ // 深紫色
207
+ #{getCssVarName(dark, purple, 0)}: 0, 0, 0;
208
+ #{getCssVarName(dark, purple, 1)}: 4, 3, 6;
209
+ #{getCssVarName(dark, purple, 2)}: 17, 16, 26;
210
+ #{getCssVarName(dark, purple, 3)}: 31, 31, 47;
211
+ #{getCssVarName(dark, purple, 4)}: 43, 43, 64;
212
+ #{getCssVarName(dark, purple, 5)}: 79, 79, 105;
213
+ #{getCssVarName(dark, purple, 6)}: 115, 116, 142;
214
+ #{getCssVarName(dark, purple, 7)}: 157, 158, 180;
215
+ #{getCssVarName(dark, purple, 8)}: 204, 205, 217;
216
+ #{getCssVarName(dark, purple, 9)}: 255, 255, 255;
217
+
218
+ // 黑、白色
219
+ #{getCssVarName(white)}: 255, 255, 255;
220
+ #{getCssVarName(black)}: 0, 0, 0;
221
+
222
+ // 功能色
223
+ #{getCssVarName(color, white)}: rgba(
224
+ var(#{getCssVarName(white)}),
225
+ 1
226
+ ); // 浅色模式下深色背景内容Inverse
227
+
228
+ #{getCssVarName(color, black)}: rgba(
229
+ var(#{getCssVarName(black)}),
230
+ 1
231
+ ); // 深色模式下浅色背景内容Inverse
232
+
233
+ // 主要颜色
234
+ #{getCssVarName(color, primary)}: rgba(
235
+ var(#{getCssVarName(blue, 4)}),
236
+ 1
237
+ ); // 主要颜色。仅在需要非常强调的情况下使用。
238
+
239
+ #{getCssVarName(color, primary, hover)}: rgba(
240
+ var(#{getCssVarName(blue, 6)}),
241
+ 1
242
+ ); // 主要颜色悬浮态
243
+
244
+ #{getCssVarName(color, primary, active)}: rgba(
245
+ var(#{getCssVarName(blue, 3)}),
246
+ 1
247
+ ); // 主要颜色激活态
248
+
249
+ #{getCssVarName(color, primary, disabled)}: rgba(
250
+ var(#{getCssVarName(blue, 2)}),
251
+ 1
252
+ ); // 主要颜色禁用态
253
+
254
+ #{getCssVarName(color, primary, light, default)}: rgba(
255
+ var(#{getCssVarName(blue, 5)}),
256
+ 0.2
257
+ ); // 浅版主要颜色(多用于背景)。仅在需要非常强调的情况下使用。
258
+
259
+ #{getCssVarName(color, primary, light, hover)}: rgba(
260
+ var(#{getCssVarName(blue, 5)}),
261
+ 0.3
262
+ ); // 浅版主要颜色悬浮态
263
+
264
+ #{getCssVarName(color, primary, light, active)}: rgba(
265
+ var(#{getCssVarName(blue, 5)}),
266
+ 0.4
267
+ ); // 浅版主要颜色激活态
268
+
269
+ // todo 次要颜色 未确定颜色,需后续调整
270
+ #{getCssVarName(color, secondary)}: rgba(
271
+ var(#{getCssVarName(light, blue, 5)}),
272
+ 1
273
+ ); // 次要颜色。强调作用次于主要颜色,但仍然具有强调作用。
274
+
275
+ #{getCssVarName(color, secondary, hover)}: rgba(
276
+ var(#{getCssVarName(light, blue, 6)}),
277
+ 1
278
+ ); // 次要颜色悬浮态
279
+
280
+ #{getCssVarName(color, secondary, active)}: rgba(
281
+ var(#{getCssVarName(light, blue, 7)}),
282
+ 1
283
+ ); // 次要颜色激活态
284
+
285
+ #{getCssVarName(color, secondary, disabled)}: rgba(
286
+ var(#{getCssVarName(light, blue, 2)}),
287
+ 1
288
+ ); // 次要颜色禁用态
289
+
290
+ #{getCssVarName(color, secondary, light, default)}: rgba(
291
+ var(#{getCssVarName(light, blue, 0)}),
292
+ 1
293
+ ); // 浅版次要颜色(多用于背景)。强调作用次于主要颜色,但仍然具有强调作用。
294
+
295
+ #{getCssVarName(color, secondary, light, hover)}: rgba(
296
+ var(#{getCssVarName(light, blue, 1)}),
297
+ 1
298
+ ); // 浅版次要颜色悬浮态
299
+
300
+ #{getCssVarName(color, secondary, light, active)}: rgba(
301
+ var(#{getCssVarName(light, blue, 2)}),
302
+ 1
303
+ ); // 浅版次要颜色激活态
304
+
305
+ // 第三颜色
306
+ #{getCssVarName(color, tertiary)}: rgba(
307
+ var(#{getCssVarName(dark, purple, 4)}),
308
+ 1
309
+ ); // 第三颜色,可以在页面上多次使用
310
+
311
+ #{getCssVarName(color, tertiary, hover)}: rgba(
312
+ var(#{getCssVarName(dark, purple, 6)}),
313
+ 1
314
+ ); // 第三颜色悬浮态
315
+
316
+ #{getCssVarName(color, tertiary, active)}: rgba(
317
+ var(#{getCssVarName(dark, purple, 5)}),
318
+ 1
319
+ ); // 第三颜色激活态
320
+
321
+ #{getCssVarName(color, tertiary, light, default)}: rgba(
322
+ var(#{getCssVarName(dark, purple, 5)}),
323
+ 0.2
324
+ ); // 浅版第三颜色(多用于背景),可以在页面上多次使用
325
+
326
+ #{getCssVarName(color, tertiary, light, hover)}: rgba(
327
+ var(#{getCssVarName(dark, purple, 5)}),
328
+ 0.3
329
+ ); // 浅版第三颜色悬浮态
330
+
331
+ #{getCssVarName(color, tertiary, light, active)}: rgba(
332
+ var(#{getCssVarName(dark, purple, 5)}),
333
+ 0.4
334
+ ); // 浅版第三颜色激活态
335
+
336
+ // 信息色
337
+ #{getCssVarName(color, info)}: rgba(
338
+ var(#{getCssVarName(blue, 4)}),
339
+ 1
340
+ ); // 信息色, 通常用于表达客观、中立信息
341
+
342
+ #{getCssVarName(color, info, hover)}: rgba(
343
+ var(#{getCssVarName(blue, 6)}),
344
+ 1
345
+ ); // 信息色悬浮态
346
+
347
+ #{getCssVarName(color, info, active)}: rgba(
348
+ var(#{getCssVarName(blue, 3)}),
349
+ 1
350
+ ); // 信息色激活态
351
+
352
+ #{getCssVarName(color, info, disabled)}: rgba(
353
+ var(#{getCssVarName(blue, 2)}),
354
+ 1
355
+ ); // 信息色禁用态
356
+
357
+ #{getCssVarName(color, info, light, default)}: rgba(
358
+ var(#{getCssVarName(blue, 5)}),
359
+ 0.2
360
+ ); // 浅版信息色(多用于背景),通常用于表达客观、中立信息
361
+
362
+ #{getCssVarName(color, info, light, hover)}: rgba(
363
+ var(#{getCssVarName(blue, 5)}),
364
+ 0.3
365
+ ); // 浅版信息色悬浮态
366
+
367
+ #{getCssVarName(color, info, light, active)}: rgba(
368
+ var(#{getCssVarName(blue, 5)}),
369
+ 0.4
370
+ ); // 浅版信息色激活态
371
+
372
+ // 成功色
373
+ #{getCssVarName(color, success)}: rgba(
374
+ var(#{getCssVarName(green, 5)}),
375
+ 1
376
+ ); // 成功色,表示安全、成功、开启的状态
377
+
378
+ #{getCssVarName(color, success, hover)}: rgba(
379
+ var(#{getCssVarName(green, 6)}),
380
+ 1
381
+ ); // 成功色悬浮态
382
+
383
+ #{getCssVarName(color, success, active)}: rgba(
384
+ var(#{getCssVarName(green, 4)}),
385
+ 1
386
+ ); // 成功色激活态
387
+
388
+ #{getCssVarName(color, success, disabled)}: rgba(
389
+ var(#{getCssVarName(green, 2)}),
390
+ 1
391
+ ); // 成功色禁用态
392
+
393
+ #{getCssVarName(color, success, light, default)}: rgba(
394
+ var(#{getCssVarName(green, 5)}),
395
+ 0.2
396
+ ); // 浅版成功色(多用于背景),表示安全、成功、开启的状态
397
+
398
+ #{getCssVarName(color, success, light, hover)}: rgba(
399
+ var(#{getCssVarName(green, 5)}),
400
+ 0.3
401
+ ); // 浅版成功色悬浮态
402
+
403
+ #{getCssVarName(color, success, light, active)}: rgba(
404
+ var(#{getCssVarName(green, 5)}),
405
+ 0.4
406
+ ); // 浅版成功色激活态
407
+
408
+ // 警示色
409
+ #{getCssVarName(color, warning)}: rgba(
410
+ var(#{getCssVarName(orange, 5)}),
411
+ 1
412
+ ); // 警示色,表示警告、不安全的状态
413
+
414
+ #{getCssVarName(color, warning, hover)}: rgba(
415
+ var(#{getCssVarName(orange, 6)}),
416
+ 1
417
+ ); // 警示色悬浮态
418
+
419
+ #{getCssVarName(color, warning, active)}: rgba(
420
+ var(#{getCssVarName(orange, 4)}),
421
+ 1
422
+ ); // 警示色激活态
423
+
424
+ #{getCssVarName(color, warning, light, default)}: rgba(
425
+ var(#{getCssVarName(orange, 5)}),
426
+ 0.2
427
+ ); // 浅版警示色(多用于背景),表示警告、不安全的状态
428
+
429
+ #{getCssVarName(color, warning, light, hover)}: rgba(
430
+ var(#{getCssVarName(orange, 5)}),
431
+ 0.3
432
+ ); // 浅版警示色悬浮态
433
+
434
+ #{getCssVarName(color, warning, light, active)}: rgba(
435
+ var(#{getCssVarName(orange, 5)}),
436
+ 0.4
437
+ ); // 浅版警示色激活态
438
+
439
+ // 危险色
440
+ #{getCssVarName(color, danger)}: rgba(
441
+ var(#{getCssVarName(red, 5)}),
442
+ 1
443
+ ); // 危险色,表示危险的操作、或需要特别注意的危险信息
444
+
445
+ #{getCssVarName(color, danger, hover)}: rgba(
446
+ var(#{getCssVarName(red, 6)}),
447
+ 1
448
+ ); // 危险色悬浮态
449
+
450
+ #{getCssVarName(color, danger, active)}: rgba(
451
+ var(#{getCssVarName(red, 4)}),
452
+ 1
453
+ ); // 危险色激活态
454
+
455
+ #{getCssVarName(color, danger, light, default)}: rgba(
456
+ var(#{getCssVarName(red, 5)}),
457
+ 0.2
458
+ ); // 浅版危险色(多用于背景),表示危险的操作、或需要特别注意的危险信息
459
+
460
+ #{getCssVarName(color, danger, light, hover)}: rgba(
461
+ var(#{getCssVarName(red, 5)}),
462
+ 0.3
463
+ ); // 浅版危险色悬浮态
464
+
465
+ #{getCssVarName(color, danger, light, active)}: rgba(
466
+ var(#{getCssVarName(red, 5)}),
467
+ 0.4
468
+ ); // 浅版危险色激活态
469
+
470
+ // 文本/图标颜色
471
+ #{getCssVarName(color, text, 0)}: rgba(
472
+ var(#{getCssVarName(dark, purple, 9)}),
473
+ 1
474
+ ); // 文本/图标颜色 - 最主要
475
+
476
+ #{getCssVarName(color, text, 1)}: rgba(
477
+ var(#{getCssVarName(dark, purple, 8)}),
478
+ 1
479
+ ); // 文本/图标颜色 - 稍次要
480
+
481
+ #{getCssVarName(color, text, 2)}: rgba(
482
+ var(#{getCssVarName(grey, 9)}),
483
+ 0.6
484
+ ); // 文本/图标颜色 - 次要
485
+
486
+ #{getCssVarName(color, text, 3)}: rgba(
487
+ var(#{getCssVarName(grey, 9)}),
488
+ 0.35
489
+ ); // 文本/图标颜色 - 最次要
490
+
491
+ // 链接颜色
492
+ #{getCssVarName(color, link)}: rgba(
493
+ var(#{getCssVarName(blue, 4)}),
494
+ 1
495
+ ); // 链接颜色
496
+
497
+ #{getCssVarName(color, link, hover)}: rgba(
498
+ var(#{getCssVarName(blue, 6)}),
499
+ 1
500
+ ); // 链接颜色 - 悬浮态
501
+
502
+ #{getCssVarName(color, link, active)}: rgba(
503
+ var(#{getCssVarName(blue, 3)}),
504
+ 1
505
+ ); // 链接颜色 - 激活态
506
+
507
+ #{getCssVarName(color, link, visited)}: rgba(
508
+ var(#{getCssVarName(blue, 2)}),
509
+ 1
510
+ ); // 链接颜色 - 已访问
511
+
512
+ // 背景色
513
+ #{getCssVarName(color, bg, 0)}: rgb(
514
+ 18 18 18 / 100%
515
+ ); // 背景色 - 最下层(底部页面)
516
+
517
+ #{getCssVarName(color, bg, 1)}: rgb(
518
+ 28 28 28 / 100%
519
+ ); // 背景色 - 次下层(页面中需要提升的内容)
520
+
521
+ #{getCssVarName(color, bg, 2)}: rgb(
522
+ 53 54 60 / 100%
523
+ ); // 背景色 - 中间层(模态等容器)
524
+
525
+ #{getCssVarName(color, bg, 3)}: rgb(
526
+ 67 68 74 / 100%
527
+ ); // 背景色 - 次上层(通知,Toast等)
528
+
529
+ #{getCssVarName(color, bg, 4)}: rgb(
530
+ 79 81 89 / 100%
531
+ ); // 背景色 - 最上层(特殊)
532
+
533
+ // 填充色
534
+ #{getCssVarName(color, fill, 0)}: rgba(
535
+ var(#{getCssVarName(dark, purple, 4)}),
536
+ 1
537
+ ); // 填充色 - 默认态
538
+
539
+ #{getCssVarName(color, fill, 1)}: rgba(
540
+ var(#{getCssVarName(white)}),
541
+ 0.16
542
+ ); // 填充色 - 悬浮态
543
+
544
+ #{getCssVarName(color, fill, 2)}: rgba(
545
+ var(#{getCssVarName(white)}),
546
+ 0.2
547
+ ); // 填充色 - 激活态
548
+
549
+ // 边框
550
+ #{getCssVarName(color, border)}: rgba(
551
+ var(#{getCssVarName(white)}),
552
+ 0.08
553
+ ); // 默认描边颜色
554
+
555
+ // 禁用态
556
+ #{getCssVarName(color, disabled, text)}: rgba(
557
+ var(#{getCssVarName(grey, 9)}),
558
+ 0.35
559
+ ); // 禁用态 - 文字
560
+
561
+ #{getCssVarName(color, disabled, border)}: rgba(
562
+ var(#{getCssVarName(grey, 1)}),
563
+ 1
564
+ ); // 禁用态 - 描边
565
+
566
+ #{getCssVarName(color, disabled, bg)}: rgba(
567
+ var(#{getCssVarName(grey, 1)}),
568
+ 1
569
+ ); // 禁用态 - 背景
570
+
571
+ #{getCssVarName(color, disabled, fill)}: rgba(
572
+ var(#{getCssVarName(grey, 8)}),
573
+ 0.04
574
+ ); // 禁用态 - 填充
575
+
576
+ // 阴影
577
+ #{getCssVarName(color, shadow)}: rgba(
578
+ var(#{getCssVarName(black)}),
579
+ 0.04
580
+ ); // 用于模拟描边的阴影颜色
581
+
582
+ #{getCssVarName(shadow, elevated)}:
583
+ 0 0 1px rgba(0 0 0 / 30%),
584
+ 0 4px 14px rgba(0 0 0 / 10%); // 用于toast, modal, popover等需要提升层级的界面元素
585
+
586
+ // 字号
587
+ #{getCssVarName('font-size', 'small')}: 12px;
588
+ #{getCssVarName('font-size', 'regular')}: 14px;
589
+ #{getCssVarName('font-size', 'header-6')}: 16px;
590
+ #{getCssVarName('font-size', 'header-5')}: 18px;
591
+ #{getCssVarName('font-size', 'header-4')}: 20px;
592
+ #{getCssVarName('font-size', 'header-3')}: 24px;
593
+ #{getCssVarName('font-size', 'header-2')}: 28px;
594
+ #{getCssVarName('font-size', 'header-1')}: 32px;
595
+
596
+ // 字重
597
+ #{getCssVarName('font-weight', 'light')}: 200;
598
+ #{getCssVarName('font-weight', 'regular')}: 400;
599
+ #{getCssVarName('font-weight', 'bold')}: 800;
600
+
601
+ // 圆角
602
+ #{getCssVarName(border, radius, extra, small)}: 2px; // 超小圆角,用于 checkbox 内圆角
603
+ #{getCssVarName(border, radius, small)}: 4px; // 小圆角, 用于 button、tag、tabs 等大多数组件, 比较常用
604
+ #{getCssVarName(border, radius, medium)}: 8px; // 中圆角, 用于 dropdown、scrollist、transfer 等菜单类组件
605
+ #{getCssVarName(border, radius, large)}: 12px; // 大圆角, 用于 modal
606
+ #{getCssVarName(border, radius, circle)}: 50%; // 全圆角, 用于 avatar, badge 等组件
607
+ #{getCssVarName(border, radius, full)}: 9999px; // 用于创建全尺寸圆角,如胶囊标签等
608
+
609
+ // 高度
610
+ #{getCssVarName('height-control', 'small')}: 24px;
611
+ #{getCssVarName('height-control', 'default')}: 32px;
612
+ #{getCssVarName('height-control', 'large')}: 40px;
613
+
614
+ // 描边尺寸
615
+ #{getCssVarName('border-thickness')}: 0;
616
+ #{getCssVarName('border-thickness', 'control')}: 1px;
617
+ #{getCssVarName('border-thickness', 'control-focus')}: 1px;
618
+
619
+ // 图标尺寸
620
+ #{getCssVarName('width-icon', 'extra-small')}: 8px;
621
+ #{getCssVarName('width-icon', 'small')}: 12px;
622
+ #{getCssVarName('width-icon', 'medium')}: 16px;
623
+ #{getCssVarName('width-icon', 'large')}: 20px;
624
+ #{getCssVarName('width-icon', 'extra-large')}: 24px;
625
+
626
+ // 间距
627
+ #{getCssVarName('spacing', 'none')}: 0;
628
+ #{getCssVarName('spacing', 'super-tight')}: 2px;
629
+ #{getCssVarName('spacing', 'extra-tight')}: 4px;
630
+ #{getCssVarName('spacing', 'tight')}: 8px;
631
+ #{getCssVarName('spacing', 'base-tight')}: 12px;
632
+ #{getCssVarName('spacing', 'base')}: 16px;
633
+ #{getCssVarName('spacing', 'base-loose')}: 20px;
634
+ #{getCssVarName('spacing', 'loose')}: 24px;
635
+ #{getCssVarName('spacing', 'extra-loose')}: 32px;
636
+ #{getCssVarName('spacing', 'super-loose')}: 40px;
637
+ }
@@ -0,0 +1 @@
1
+ @import './default/default-theme';
@@ -0,0 +1,62 @@
1
+ /* stylelint-disable scss/no-global-function-names */
2
+ @use 'sass:map';
3
+ @use 'function.scss' as *;
4
+ @use '../settings/var.scss' as *;
5
+
6
+ // set css var value, because we need translate value to string
7
+ // for example:
8
+ // @include set-css-var-value(('color', 'primary'), red);
9
+ // --ibiz-color-primary: red;
10
+ @mixin set-css-var-value($name, $value) {
11
+ #{joinVarName($name)}: #{$value};
12
+ }
13
+
14
+ // @include set-css-var-type('color', 'primary', $map);
15
+ // --ibiz-color-primary: #{map.get($map, 'primary')};
16
+ @mixin set-css-var-type($name, $type, $variables) {
17
+ #{getCssVarName($name, $type)}: #{map.get($variables, $type)};
18
+ }
19
+
20
+ @mixin set-css-color-type($colors, $type) {
21
+ @include set-css-var-value(('color', $type), map.get($colors, $type, 'base'));
22
+
23
+ @each $i in (1, 2, 3, 4, 5, 6, 7, 8, 9) {
24
+ @include set-css-var-value(
25
+ ('color', $type, 'light', $i),
26
+ map.get($colors, $type, 'light-#{$i}')
27
+ );
28
+ }
29
+ }
30
+
31
+ // set all css var for component by map
32
+ @mixin set-component-css-var($name, $variables) {
33
+ @each $attribute, $value in $variables {
34
+ @if $attribute == 'default' {
35
+ #{getCssVarName($name)}: #{$value};
36
+ } @else {
37
+ #{getCssVarName($name, $attribute)}: #{$value};
38
+ }
39
+ }
40
+ }
41
+
42
+ @mixin set-css-color-rgb($type) {
43
+ $color: map.get($colors, $type, 'base');
44
+
45
+ @include set-css-var-value(
46
+ ('color', $type, 'rgb'),
47
+ #{red($color),
48
+ green($color),
49
+ blue($color)}
50
+ );
51
+ }
52
+
53
+ // generate css var from existing css var
54
+ // for example:
55
+ // @include css-var-from-global(('button', 'text-color'), ('color', $type))
56
+ // --ibiz-button-text-color: var(--ibiz-color-#{$type});
57
+ @mixin css-var-from-global($var, $gVar) {
58
+ $varName: joinVarName($var);
59
+ $gVarName: joinVarName($gVar);
60
+
61
+ #{$varName}: var(#{$gVarName});
62
+ }
@@ -0,0 +1,112 @@
1
+ /* stylelint-disable scss/no-global-function-names */
2
+ @use 'sass:meta';
3
+ @use 'sass:string';
4
+ @use 'sass:list';
5
+ @use "sass:math";
6
+ @use '../settings/config.scss' as *;
7
+
8
+ // BEM support Func
9
+ @function selectorToString($selector) {
10
+ $selector: meta.inspect($selector);
11
+ $selector: string.slice($selector, 2, -2);
12
+
13
+ @return $selector;
14
+ }
15
+
16
+ @function containsModifier($selector) {
17
+ $selector: selectorToString($selector);
18
+
19
+ @if string.index($selector, $modifier-separator) {
20
+ @return true;
21
+ } @else {
22
+ @return false;
23
+ }
24
+ }
25
+
26
+ @function containWhenFlag($selector) {
27
+ $selector: selectorToString($selector);
28
+
29
+ @if string.index($selector, '.' + $state-prefix) {
30
+ @return true;
31
+ } @else {
32
+ @return false;
33
+ }
34
+ }
35
+
36
+ @function containPseudoClass($selector) {
37
+ $selector: selectorToString($selector);
38
+
39
+ @if string.index($selector, ':') {
40
+ @return true;
41
+ } @else {
42
+ @return false;
43
+ }
44
+ }
45
+
46
+ @function hitAllSpecialNestRule($selector) {
47
+ @return containsModifier($selector) or containWhenFlag($selector) or containPseudoClass($selector);
48
+ }
49
+
50
+ // join var name
51
+ // joinVarName(('button', 'text-color')) => '--ibiz-button-text-color'
52
+ @function joinVarName($list) {
53
+ $name: '--' + $namespace;
54
+
55
+ @each $item in $list {
56
+ @if $item != '' {
57
+ $name: $name + '-' + $item;
58
+ }
59
+ }
60
+
61
+ @return $name;
62
+ }
63
+
64
+ // getCssVarName('button', 'text-color') => '--ibiz-button-text-color'
65
+ @function getCssVarName($args...) {
66
+ @return joinVarName($args);
67
+ }
68
+
69
+ // getCssVar('button', 'text-color') => var(--ibiz-button-text-color)
70
+ @function getCssVar($args...) {
71
+ @return var(#{joinVarName($args)});
72
+ }
73
+
74
+ // getCssVarWithDefault(('button', 'text-color'), red) => var(--ibiz-button-text-color, red)
75
+ @function getCssVarWithDefault($args, $default) {
76
+ @return var(#{joinVarName($args)}, #{$default});
77
+ }
78
+
79
+ /* bem('block', 'element', 'modifier') => 'ibiz-block__element--modifier' */
80
+ @function bem($block, $element: '', $modifier: '') {
81
+ $name: $namespace + $common-separator + $block;
82
+
83
+ @if $element != '' {
84
+ $name: $name + $element-separator + $element;
85
+ }
86
+
87
+ @if $modifier != '' {
88
+ $name: $name + $modifier-separator + $modifier;
89
+ }
90
+
91
+ @return $name;
92
+ }
93
+
94
+ // 输出rem值,默认根字体大小为16px做转换。rem(10px 10rem 0 auto) => 0.625rem 10rem 0 auto
95
+ @function rem($values) {
96
+ $root: 16px;
97
+ $unit: rem;
98
+ $list: ();
99
+
100
+ @each $v in $values {
101
+ $res: 0;
102
+
103
+ @if $v == 0 or $v == auto or unit($v) == rem or unit($v) == em or unit($v) == vw or unit($v) == vh{
104
+ $res: $v;
105
+ } @else{
106
+ $res: math.div($v, $root) + $unit;
107
+ }
108
+ $list: list.append($list , $res);
109
+ }
110
+
111
+ @return $list;
112
+ }
@@ -0,0 +1,69 @@
1
+ @use '../settings/config.scss' as config;
2
+ @use './function.scss' as *;
3
+
4
+ // BEM
5
+ @mixin b($block) {
6
+ $B: config.$namespace + '-' + $block !global;
7
+
8
+ .#{$B} {
9
+ @content;
10
+ }
11
+ }
12
+
13
+ @mixin e($element) {
14
+ $E: $element !global;
15
+ $selector: &;
16
+ $currentSelector: '';
17
+
18
+ @each $unit in $element {
19
+ $currentSelector: #{$currentSelector + '.' + $B + config.$element-separator + $unit + ','};
20
+ }
21
+
22
+ @if hitAllSpecialNestRule($selector) {
23
+ @at-root {
24
+ #{$selector} {
25
+ #{$currentSelector} {
26
+ @content;
27
+ }
28
+ }
29
+ }
30
+ } @else {
31
+ @at-root {
32
+ #{$currentSelector} {
33
+ @content;
34
+ }
35
+ }
36
+ }
37
+ }
38
+
39
+ @mixin m($modifier) {
40
+ $selector: &;
41
+ $currentSelector: '';
42
+
43
+ @each $unit in $modifier {
44
+ $currentSelector: #{$currentSelector + $selector + config.$modifier-separator + $unit + ','};
45
+ }
46
+
47
+ @at-root {
48
+ #{$currentSelector} {
49
+ @content;
50
+ }
51
+ }
52
+ }
53
+
54
+ @mixin when($state) {
55
+ @at-root {
56
+ &.#{config.$state-prefix + $state} {
57
+ @content;
58
+ }
59
+ }
60
+ }
61
+
62
+ // dark
63
+ @mixin dark($block) {
64
+ html.dark {
65
+ @include b($block) {
66
+ @content;
67
+ }
68
+ }
69
+ }
@@ -0,0 +1,61 @@
1
+ // 完全容器居中
2
+ @mixin flex-center {
3
+ display: flex;
4
+ align-items: center;
5
+ justify-content: center;
6
+ }
7
+
8
+ // 文字出省略号
9
+ @mixin utils-ellipsis {
10
+ overflow: hidden;
11
+ text-overflow: ellipsis;
12
+ white-space: nowrap;
13
+ }
14
+
15
+ // flex样式复用
16
+ @mixin flex(
17
+ $direction: row,
18
+ $horizontal: initial,
19
+ $vertical: initial,
20
+ $wrap: nowrap
21
+ ) {
22
+ display: flex;
23
+
24
+ @if $direction != row {
25
+ flex-flow: $direction $wrap;
26
+ }
27
+
28
+ @if $wrap != nowrap {
29
+ flex-wrap: $wrap;
30
+ }
31
+
32
+ @if $vertical != initial {
33
+ align-items: $vertical;
34
+ }
35
+
36
+ @if $horizontal != initial {
37
+ justify-content: $horizontal;
38
+ }
39
+ }
40
+
41
+ // mask样式复用
42
+ @mixin mask($bg-color) {
43
+ position: absolute;
44
+ inset: 0;
45
+ color: #fff;
46
+ background: $bg-color;
47
+ }
48
+
49
+ // 分隔符样式复用,相邻不重复显示,父元素第一个不显示
50
+ @mixin no-repeat {
51
+ & + &,
52
+ &:first-child {
53
+ display: none;
54
+ }
55
+ }
56
+
57
+ // 超出自动换行,识别换行空白符
58
+ @mixin overflow-wrap{
59
+ word-break: break-word;
60
+ white-space: pre-wrap;
61
+ }