@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 +14 -0
- package/README.md +1 -0
- package/package.json +35 -0
- package/style/generic/ant-design-vue.scss +1 -0
- package/style/generic/index.scss +3 -0
- package/style/generic/reset.scss +1 -0
- package/style/global.scss +12 -0
- package/style/index.scss +8 -0
- package/style/settings/config.scss +5 -0
- package/style/settings/var.scss +6 -0
- package/style/theme/default/default-theme.scss +637 -0
- package/style/theme/index.scss +1 -0
- package/style/tools/css-var.scss +62 -0
- package/style/tools/function.scss +112 -0
- package/style/tools/mixin.scss +69 -0
- package/style/tools/utils.scss +61 -0
package/CHANGELOG.md
ADDED
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 @@
|
|
|
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';
|
package/style/index.scss
ADDED
|
@@ -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
|
+
}
|