xt-element-ui 1.4.0 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (90) hide show
  1. package/CHANGELOG.md +37 -20
  2. package/README.md +39 -35
  3. package/docs/README.md +25 -15
  4. package/docs/components/base/xt-badge.md +139 -0
  5. package/docs/components/base/xt-bar.md +182 -0
  6. package/docs/components/base/xt-chart.md +183 -0
  7. package/docs/components/base/xt-date-picker.md +111 -0
  8. package/docs/components/base/xt-icon.md +154 -0
  9. package/docs/components/base/xt-line.md +145 -0
  10. package/docs/components/base/xt-multi.md +278 -0
  11. package/docs/components/base/xt-page.md +84 -0
  12. package/docs/components/base/xt-pie.md +175 -0
  13. package/docs/components/base/xt-progress.md +134 -0
  14. package/docs/components/base/xt-select-tree.md +141 -0
  15. package/docs/components/base/xt-table.md +344 -0
  16. package/docs/components/base/xt-tabs.md +197 -0
  17. package/docs/components/base/xt-upload.md +85 -0
  18. package/lib/index.common.js +479 -821
  19. package/lib/index.css +1 -1
  20. package/lib/index.umd.js +484 -827
  21. package/lib/index.umd.min.js +5 -5
  22. package/package.json +1 -1
  23. package/src/components/index.scss +2 -8
  24. package/src/components/xt-button/index.js +8 -8
  25. package/src/components/xt-button/index.vue +43 -73
  26. package/src/components/xt-button/style/index.scss +51 -787
  27. package/src/components/xt-card/index.js +7 -8
  28. package/src/components/xt-card/index.vue +61 -21
  29. package/src/components/xt-card/style/index.scss +56 -32
  30. package/src/components/xt-card-item/index.vue +3 -3
  31. package/src/components/xt-chart/index.js +8 -0
  32. package/src/components/{ex-chart → xt-chart}/index.vue +13 -13
  33. package/src/components/{ex-chart → xt-chart}/pieList.vue +1 -1
  34. package/src/components/{ex-chart → xt-chart}/utils.js +1 -1
  35. package/src/components/xt-config-provider/index.vue +1 -1
  36. package/src/components/xt-date-picker/index.js +8 -0
  37. package/src/components/{ex-date-picker → xt-date-picker}/index.vue +1 -1
  38. package/src/components/xt-icon/index.js +8 -0
  39. package/src/components/{ex-icon → xt-icon}/index.vue +4 -4
  40. package/src/components/xt-layout/ExFieldset.vue +1 -1
  41. package/src/components/xt-page/index.js +8 -0
  42. package/src/components/{ex-page → xt-page}/index.vue +1 -1
  43. package/src/components/xt-select-tree/index.js +8 -0
  44. package/src/components/{ex-select-tree → xt-select-tree}/index.vue +1 -1
  45. package/src/components/{ex-table/ExTableCell.vue → xt-table/XtTableCell.vue} +1 -1
  46. package/src/components/xt-table/index.js +8 -0
  47. package/src/components/{ex-table → xt-table}/index.vue +6 -6
  48. package/src/components/xt-upload/index.js +8 -0
  49. package/src/index.js +15 -29
  50. package/src/utils/index.js +1 -1
  51. package/docs/components/extend/ex-bar.md +0 -68
  52. package/docs/components/extend/ex-button.md +0 -62
  53. package/docs/components/extend/ex-card.md +0 -86
  54. package/docs/components/extend/ex-chart.md +0 -463
  55. package/docs/components/extend/ex-date-picker.md +0 -0
  56. package/docs/components/extend/ex-icon.md +0 -189
  57. package/docs/components/extend/ex-line.md +0 -71
  58. package/docs/components/extend/ex-multi.md +0 -156
  59. package/docs/components/extend/ex-page.md +0 -0
  60. package/docs/components/extend/ex-pie.md +0 -70
  61. package/docs/components/extend/ex-select-tree.md +0 -210
  62. package/docs/components/extend/ex-table.md +0 -591
  63. package/docs/components/extend/ex-upload.md +0 -134
  64. package/src/components/ex-button/index.js +0 -8
  65. package/src/components/ex-button/index.vue +0 -67
  66. package/src/components/ex-button/style/index.scss +0 -67
  67. package/src/components/ex-card/index.js +0 -7
  68. package/src/components/ex-card/index.vue +0 -68
  69. package/src/components/ex-card/style/index.scss +0 -73
  70. package/src/components/ex-chart/index.js +0 -8
  71. package/src/components/ex-date-picker/index.js +0 -8
  72. package/src/components/ex-icon/index.js +0 -8
  73. package/src/components/ex-page/index.js +0 -8
  74. package/src/components/ex-select-tree/index.js +0 -8
  75. package/src/components/ex-table/index.js +0 -8
  76. package/src/components/ex-upload/index.js +0 -8
  77. package/src/config/element-registry.js +0 -136
  78. /package/src/components/{ex-chart/ExBar.vue → xt-chart/XtBar.vue} +0 -0
  79. /package/src/components/{ex-chart/ExLine.vue → xt-chart/XtLine.vue} +0 -0
  80. /package/src/components/{ex-chart/ExMulti.vue → xt-chart/XtMulti.vue} +0 -0
  81. /package/src/components/{ex-chart/ExPie.vue → xt-chart/XtPie.vue} +0 -0
  82. /package/src/components/{ex-chart → xt-chart}/theme/dark.js +0 -0
  83. /package/src/components/{ex-chart → xt-chart}/theme/white.js +0 -0
  84. /package/src/components/{ex-date-picker → xt-date-picker}/SearchDate.vue +0 -0
  85. /package/src/components/{ex-date-picker → xt-date-picker}/quarter.vue +0 -0
  86. /package/src/components/{ex-icon → xt-icon}/style/index.scss +0 -0
  87. /package/src/components/{ex-table → xt-table}/VirtualElTable.vue +0 -0
  88. /package/src/components/{ex-table → xt-table}/virtualScrollData.js +0 -0
  89. /package/src/components/{ex-upload → xt-upload}/index.vue +0 -0
  90. /package/src/components/{ex-upload → xt-upload}/preview.vue +0 -0
@@ -1,803 +1,67 @@
1
1
  @import '../../../styles/variables.scss';
2
2
 
3
- // 按钮基础全局变量(抽离顶层,统一管控)
4
- :root {
5
- --xt-button-divide-border-color: rgba(255, 255, 255, 0.5);
6
- }
7
-
8
- // 按钮组容器基础
9
- .xt-button-group {
10
- > .xt-button + .xt-button {
11
- margin-left: 0;
12
- }
13
-
14
- // 单个按钮(组内唯一)恢复完整圆角
15
- > .xt-button:first-child:last-child {
16
- border-radius: var(--xt-border-radius-base);
17
-
18
- &.is-round {
19
- border-radius: var(--xt-border-radius-round);
20
- }
21
- &.is-circle {
22
- border-radius: 50%;
23
- }
24
- }
25
-
26
- // 组内中间按钮 无圆角
27
- > .xt-button:not(:first-child):not(:last-child) {
28
- border-radius: 0;
29
- }
30
-
31
- // hover / focus / active / active 层级提升
32
- > .xt-button {
33
- &:hover,
34
- &:focus,
35
- &:active,
36
- &.is-active {
37
- z-index: 1;
38
- }
39
- }
40
- }
41
-
42
- // 水平按钮组
43
- .xt-button-group--horizontal {
44
- display: inline-block;
45
- vertical-align: middle;
46
-
47
- &::before,
48
- &::after {
49
- display: table;
50
- content: "";
51
- }
52
- &::after {
53
- clear: both;
54
- }
55
-
56
- > .xt-button {
57
- float: left;
58
- position: relative;
59
- }
60
-
61
- > .xt-button:first-child {
62
- border-top-right-radius: 0;
63
- border-bottom-right-radius: 0;
64
- }
65
- > .xt-button:last-child {
66
- border-top-left-radius: 0;
67
- border-bottom-left-radius: 0;
68
- }
69
- > .xt-button:not(:last-child) {
70
- margin-right: -1px;
71
- }
72
-
73
- // 各类主题分割线颜色
74
- .xt-button--primary,
75
- .xt-button--success,
76
- .xt-button--warning,
77
- .xt-button--danger,
78
- .xt-button--info {
79
- &:first-child {
80
- border-right-color: var(--xt-button-divide-border-color);
81
- }
82
- &:last-child {
83
- border-left-color: var(--xt-button-divide-border-color);
84
- }
85
- &:not(:first-child):not(:last-child) {
86
- border-left-color: var(--xt-button-divide-border-color);
87
- border-right-color: var(--xt-button-divide-border-color);
88
- }
89
- }
90
-
91
- > .el-dropdown > .xt-button {
92
- border-top-left-radius: 0;
93
- border-bottom-left-radius: 0;
94
- border-left-color: var(--xt-button-divide-border-color);
95
- }
96
- }
97
-
98
- // 垂直按钮组
99
- .xt-button-group--vertical {
100
- display: inline-flex;
101
- flex-direction: column;
102
- align-items: stretch;
103
-
104
- > .xt-button,
105
- > .el-dropdown {
106
- margin-top: -1px;
107
- }
108
-
109
- > .xt-button:first-child {
110
- border-bottom-left-radius: 0;
111
- border-bottom-right-radius: 0;
112
- }
113
- > .xt-button:last-child {
114
- border-top-left-radius: 0;
115
- border-top-right-radius: 0;
116
- }
117
-
118
- > .el-dropdown > .xt-button {
119
- border-top-left-radius: 0;
120
- border-top-right-radius: 0;
121
- border-left-color: var(--xt-button-divide-border-color);
122
- }
123
-
124
- // 各类主题分割线颜色
125
- .xt-button--primary,
126
- .xt-button--success,
127
- .xt-button--warning,
128
- .xt-button--danger,
129
- .xt-button--info {
130
- &:first-child {
131
- border-bottom-color: var(--xt-button-divide-border-color);
132
- }
133
- &:last-child {
134
- border-top-color: var(--xt-button-divide-border-color);
135
- }
136
- &:not(:first-child):not(:last-child) {
137
- border-top-color: var(--xt-button-divide-border-color);
138
- border-bottom-color: var(--xt-button-divide-border-color);
139
- }
140
- }
141
- }
142
-
143
- .xt-button {
144
- // 主题系列变量
145
- --xt-button-font-weight: var(--xt-font-weight-primary);
146
- --xt-button-border-color: var(--xt-border-color);
147
- --xt-button-bg-color: var(--xt-fill-color-blank);
148
- --xt-button-text-color: var(--xt-text-color-regular);
149
- --xt-button-disabled-text-color: var(--xt-disabled-text-color);
150
- --xt-button-disabled-bg-color: var(--xt-fill-color-blank);
151
- --xt-button-disabled-border-color: var(--xt-border-color-light);
152
- --xt-button-hover-text-color: var(--xt-color-primary);
153
- --xt-button-hover-bg-color: var(--xt-color-primary-light-9);
154
- --xt-button-hover-border-color: var(--xt-color-primary-light-7);
155
- --xt-button-active-text-color: var(--xt-button-hover-text-color);
156
- --xt-button-active-border-color: var(--xt-color-primary);
157
- --xt-button-active-bg-color: var(--xt-button-hover-bg-color);
158
- --xt-button-outline-color: var(--xt-color-primary-light-5);
159
- --xt-button-hover-link-text-color: var(--xt-text-color-secondary);
160
- --xt-button-active-color: var(--xt-text-color-primary);
161
-
162
- // 布局基础
163
- display: inline-flex;
164
- justify-content: center;
165
- align-items: center;
166
- line-height: 1.5;
167
- // 关键:取消固定 height,用 min-height + padding 自适应字体
168
- min-height: 32px;
169
- height: auto;
170
- white-space: nowrap;
171
- cursor: pointer;
172
- color: var(--xt-button-text-color);
173
- text-align: center;
174
- box-sizing: border-box;
175
- outline: none;
176
- transition: 0.1s;
177
- font-weight: var(--xt-button-font-weight);
178
- user-select: none;
179
- vertical-align: middle;
180
- -webkit-appearance: none;
181
- background-color: var(--xt-button-bg-color);
182
- border: var(--xt-border);
183
- border-color: var(--xt-button-border-color);
184
- padding: 8px 15px;
185
- font-size: var(--xt-font-size-base);
3
+ .ex-button {
4
+ padding: 8px 16px;
186
5
  border-radius: var(--xt-border-radius-base);
187
-
188
- // 相邻按钮间距
189
- & + .xt-button {
190
- margin-left: 12px;
191
- }
192
-
193
- // 内部文字容器
194
- > span {
195
- display: inline-flex;
196
- align-items: center;
197
- }
198
-
199
- // 图标 + 文字间距
200
- [class*="el-icon"] + span {
201
- margin-left: 6px;
202
- }
203
- [class*="el-icon"] svg {
204
- vertical-align: bottom;
205
- }
206
-
207
- // 清除火狐默认焦点边框
208
- &::-moz-focus-inner {
209
- border: 0;
6
+ font-size: var(--xt-font-size-base);
7
+ border: 1px solid var(--xt-border-color, #dcdfe6);
8
+ transition: all 0.3s;
9
+ &-default{
10
+ background-color: var(--el-bg-color-page, #ffffff);
11
+ border: 1px solid var(--xt-border-color, #303133);
12
+ color: var(--el-text-color-primary, #303133);
13
+ }
14
+ &-primary{
15
+ background-color: var(--el-color-primary, #ffffff);
16
+ border-color: var(--el-color-primary, #ffffff);
17
+ color: var(--el-text-color-white, #ffffff);
18
+ }
19
+ &-success{
20
+ background-color: var(--el-color-success, #ffffff);
21
+ border-color: var(--el-color-success, #ffffff);
22
+ color: var(--el-text-color-white, #ffffff);
23
+ }
24
+ &-warning{
25
+ background-color: var(--el-color-warning, #ffffff);
26
+ border-color: var(--el-color-warning, #ffffff);
27
+ color: var(--el-text-color-white, #ffffff);
28
+ }
29
+ &-danger{
30
+ background-color: var(--el-color-danger, #ffffff);
31
+ border-color: var(--el-color-danger, #ffffff);
32
+ color: var(--el-text-color-white, #ffffff);
33
+ }
34
+ &-info{
35
+ background-color: var(--el-color-info, #ffffff);
36
+ border-color: var(--el-color-info, #ffffff);
37
+ color: var(--el-text-color-white, #ffffff);
210
38
  }
211
39
 
212
- // hover / active 状态
213
40
  &:hover {
214
- color: var(--xt-button-hover-text-color);
215
- border-color: var(--xt-button-hover-border-color);
216
- background-color: var(--xt-button-hover-bg-color);
217
- outline: none;
218
- }
219
- &:active {
220
- color: var(--xt-button-active-text-color);
221
- border-color: var(--xt-button-active-border-color);
222
- background-color: var(--xt-button-active-bg-color);
223
- outline: none;
224
- }
225
-
226
- // 键盘焦点样式
227
- &:focus-visible {
228
- outline: 2px solid var(--xt-button-outline-color);
229
- outline-offset: 1px;
230
- transition: outline-offset 0s, outline 0s;
231
- }
232
-
233
- // 激活态
234
- &.is-active {
235
- color: var(--xt-button-active-text-color);
236
- border-color: var(--xt-button-active-border-color);
237
- background-color: var(--xt-button-active-bg-color);
238
- outline: none;
239
- }
240
-
241
- // 禁用态
242
- &.is-disabled {
243
- cursor: not-allowed;
244
- color: var(--xt-button-disabled-text-color);
245
- background-image: none;
246
- background-color: var(--xt-button-disabled-bg-color);
247
- border-color: var(--xt-button-disabled-border-color);
248
-
249
- &:hover {
250
- color: var(--xt-button-disabled-text-color);
251
- background-color: var(--xt-button-disabled-bg-color);
252
- border-color: var(--xt-button-disabled-border-color);
253
- }
254
- }
255
-
256
- // 加载态
257
- &.is-loading {
258
- position: relative;
259
- pointer-events: none;
260
-
261
- &::before {
262
- z-index: 1;
263
- pointer-events: none;
264
- content: "";
265
- position: absolute;
266
- left: -1px;
267
- top: -1px;
268
- right: -1px;
269
- bottom: -1px;
270
- border-radius: inherit;
271
- background-color: var(--xt-mask-color-extra-light);
272
- }
273
- }
274
-
275
- // 圆角样式
276
- &.is-round {
277
- border-radius: var(--xt-border-radius-round);
278
- }
279
-
280
- // 虚线边框
281
- &.is-dashed {
282
- border-style: dashed;
283
- --xt-button-hover-text-color: var(--xt-color-primary);
284
- --xt-button-hover-bg-color: var(--xt-fill-color-blank);
285
- --xt-button-hover-border-color: var(--xt-color-primary);
286
- }
287
-
288
- // 圆形按钮
289
- &.is-circle {
290
- width: 32px;
291
- min-height: 32px;
292
- padding: 8px;
293
- border-radius: 50%;
294
- }
295
-
296
- // 文字按钮
297
- &.is-text {
298
- border: 0 solid transparent;
299
- background-color: transparent;
300
-
301
- &.is-disabled {
302
- background-color: transparent !important;
303
- color: var(--xt-button-disabled-text-color);
304
- }
305
-
306
- &:not(.is-disabled) {
307
- &:hover {
308
- background-color: transparent;
309
- color: var(--xt-button-hover-text-color);
310
- border-color: transparent;
311
- }
312
- &:active {
313
- background-color: transparent;
314
- color: var(--xt-button-active-text-color);
315
- border-color: transparent;
316
- }
317
- }
318
- }
319
-
320
- // 链接按钮
321
- &.is-link {
322
- border-color: transparent;
323
- background: transparent;
324
- padding: 2px;
325
- min-height: auto;
326
-
327
- &:hover {
328
- color: var(--xt-button-hover-link-text-color);
329
- border-color: transparent;
330
- background-color: transparent;
331
- }
332
- &:active {
333
- color: var(--xt-button-active-color);
334
- border-color: transparent;
335
- background-color: transparent;
336
- }
337
- &.is-disabled {
338
- background-color: transparent !important;
339
- border-color: transparent !important;
340
- }
341
- }
342
-
343
- // 纯文字按钮变体(与 is-text 语义一致,保留兼容)
344
- &.xt-button--text {
345
- border-color: transparent;
346
- background: transparent;
347
- color: var(--xt-color-primary);
348
-
349
- &.is-disabled {
350
- color: var(--xt-button-disabled-text-color);
351
- }
352
- &:not(.is-disabled) {
353
- &:hover {
354
- color: var(--xt-color-primary-light-3);
355
- }
356
- &:active {
357
- color: var(--xt-color-primary-dark-2);
358
- }
359
- }
360
- }
361
-
362
- // 文字加宽效果
363
- &__text--expand {
364
- letter-spacing: 0.3em;
365
- margin-right: -0.3em;
366
- }
367
- &__link--expand {
368
- letter-spacing: 0.3em;
369
- margin-right: -0.3em;
41
+ opacity: 0.8;
370
42
  }
371
43
  }
372
44
 
373
- // 主要按钮 - primary
374
- .xt-button--primary {
375
- --xt-button-text-color: var(--xt-color-white);
376
- --xt-button-bg-color: var(--xt-color-primary);
377
- --xt-button-border-color: var(--xt-color-primary);
378
- --xt-button-outline-color: var(--xt-color-primary-light-5);
379
- --xt-button-active-color: var(--xt-color-primary-dark-2);
380
- --xt-button-hover-text-color: var(--xt-color-white);
381
- --xt-button-hover-link-text-color: var(--xt-color-primary-light-5);
382
- --xt-button-hover-bg-color: var(--xt-color-primary-light-3);
383
- --xt-button-hover-border-color: var(--xt-color-primary-light-3);
384
- --xt-button-active-bg-color: var(--xt-color-primary-dark-2);
385
- --xt-button-active-border-color: var(--xt-color-primary-dark-2);
386
- --xt-button-disabled-text-color: var(--xt-color-white);
387
- --xt-button-disabled-bg-color: var(--xt-color-primary-light-5);
388
- --xt-button-disabled-border-color: var(--xt-color-primary-light-5);
389
-
390
- &.is-plain {
391
- --xt-button-text-color: var(--xt-color-primary);
392
- --xt-button-bg-color: var(--xt-color-primary-light-9);
393
- --xt-button-border-color: var(--xt-color-primary-light-5);
394
- --xt-button-hover-text-color: var(--xt-color-white);
395
- --xt-button-hover-bg-color: var(--xt-color-primary);
396
- --xt-button-hover-border-color: var(--xt-color-primary);
397
- --xt-button-active-text-color: var(--xt-color-white);
398
- --xt-button-active-bg-color: var(--xt-color-primary);
399
- --xt-button-active-border-color: var(--xt-color-primary);
400
- }
401
- &.is-text {
402
- --xt-button-text-color: var(--xt-color-primary);
403
- --xt-button-hover-text-color: var(--xt-color-primary-light-3);
404
- --xt-button-active-text-color: var(--xt-color-primary-dark-2);
405
- --xt-button-bg-color: transparent;
406
- --xt-button-border-color: transparent;
407
- --xt-button-hover-bg-color: transparent;
408
- --xt-button-active-bg-color: transparent;
409
- }
410
- &.is-link {
411
- --xt-button-text-color: var(--xt-color-primary);
412
- --xt-button-hover-text-color: var(--xt-color-primary-light-3);
413
- --xt-button-active-text-color: var(--xt-color-primary-dark-2);
414
- --xt-button-bg-color: transparent;
415
- --xt-button-border-color: transparent;
416
- --xt-button-hover-bg-color: transparent;
417
- --xt-button-active-bg-color: transparent;
418
- }
419
- &.is-plain {
420
- &.is-disabled {
421
- color: var(--xt-color-primary-light-5);
422
- background-color: var(--xt-color-primary-light-9);
423
- border-color: var(--xt-color-primary-light-8);
424
- }
425
- }
426
- &.is-text,
427
- &.is-link {
428
- &.is-disabled {
429
- color: var(--xt-color-primary-light-5);
430
- }
431
- }
432
-
433
- &.is-dashed {
434
- --xt-button-text-color: var(--xt-color-primary);
435
- --xt-button-bg-color: var(--xt-color-primary-light-9);
436
- --xt-button-border-color: var(--xt-color-primary-light-5);
437
- --xt-button-hover-text-color: var(--xt-color-primary);
438
- --xt-button-hover-bg-color: var(--xt-color-primary-light-9);
439
- --xt-button-hover-border-color: var(--xt-color-primary-light-3);
440
- --xt-button-active-text-color: var(--xt-color-primary-dark-2);
441
- --xt-button-active-bg-color: var(--xt-color-primary-light-9);
442
- --xt-button-active-border-color: var(--xt-color-primary-dark-2);
443
-
444
- &.is-disabled {
445
- color: var(--xt-color-primary-light-5);
446
- background-color: var(--xt-color-primary-light-9);
447
- border-color: var(--xt-color-primary-light-8);
448
- }
449
- }
45
+ /* small size - 字体大小 12px */
46
+ .ex-button-mini {
47
+ padding: 2px 4px;
48
+ font-size: calc(var(--xt-font-size-base) + $xt-font-size-increment-extra-small);
450
49
  }
451
50
 
452
- // 成功按钮 - success
453
- .xt-button--success {
454
- --xt-button-text-color: var(--xt-color-white);
455
- --xt-button-bg-color: var(--xt-color-success);
456
- --xt-button-border-color: var(--xt-color-success);
457
- --xt-button-outline-color: var(--xt-color-success-light-5);
458
- --xt-button-active-color: var(--xt-color-success-dark-2);
459
- --xt-button-hover-text-color: var(--xt-color-white);
460
- --xt-button-hover-link-text-color: var(--xt-color-success-light-5);
461
- --xt-button-hover-bg-color: var(--xt-color-success-light-3);
462
- --xt-button-hover-border-color: var(--xt-color-success-light-3);
463
- --xt-button-active-bg-color: var(--xt-color-success-dark-2);
464
- --xt-button-active-border-color: var(--xt-color-success-dark-2);
465
- --xt-button-disabled-text-color: var(--xt-color-white);
466
- --xt-button-disabled-bg-color: var(--xt-color-success-light-5);
467
- --xt-button-disabled-border-color: var(--xt-color-success-light-5);
468
-
469
- &.is-plain {
470
- --xt-button-text-color: var(--xt-color-success);
471
- --xt-button-bg-color: var(--xt-color-success-light-9);
472
- --xt-button-border-color: var(--xt-color-success-light-5);
473
- --xt-button-hover-text-color: var(--xt-color-white);
474
- --xt-button-hover-bg-color: var(--xt-color-success);
475
- --xt-button-hover-border-color: var(--xt-color-success);
476
- --xt-button-active-text-color: var(--xt-color-white);
477
- --xt-button-active-bg-color: var(--xt-color-success);
478
- --xt-button-active-border-color: var(--xt-color-success);
479
- }
480
- &.is-text {
481
- --xt-button-text-color: var(--xt-color-success);
482
- --xt-button-hover-text-color: var(--xt-color-success-light-3);
483
- --xt-button-active-text-color: var(--xt-color-success-dark-2);
484
- --xt-button-bg-color: transparent;
485
- --xt-button-border-color: transparent;
486
- --xt-button-hover-bg-color: transparent;
487
- --xt-button-active-bg-color: transparent;
488
- }
489
- &.is-link {
490
- --xt-button-text-color: var(--xt-color-success);
491
- --xt-button-hover-text-color: var(--xt-color-success-light-3);
492
- --xt-button-active-text-color: var(--xt-color-success-dark-2);
493
- --xt-button-bg-color: transparent;
494
- --xt-button-border-color: transparent;
495
- --xt-button-hover-bg-color: transparent;
496
- --xt-button-active-bg-color: transparent;
497
- }
498
- &.is-plain {
499
- &.is-disabled {
500
- color: var(--xt-color-success-light-5);
501
- background-color: var(--xt-color-success-light-9);
502
- border-color: var(--xt-color-success-light-8);
503
- }
504
- }
505
- &.is-text,
506
- &.is-link {
507
- &.is-disabled {
508
- color: var(--xt-color-success-light-5);
509
- }
510
- }
511
-
512
- &.is-dashed {
513
- --xt-button-text-color: var(--xt-color-success);
514
- --xt-button-bg-color: var(--xt-color-success-light-9);
515
- --xt-button-border-color: var(--xt-color-success-light-5);
516
- --xt-button-hover-text-color: var(--xt-color-success);
517
- --xt-button-hover-bg-color: var(--xt-color-success-light-9);
518
- --xt-button-hover-border-color: var(--xt-color-success-light-3);
519
- --xt-button-active-text-color: var(--xt-color-success-dark-2);
520
- --xt-button-active-bg-color: var(--xt-color-success-light-9);
521
- --xt-button-active-border-color: var(--xt-color-success-dark-2);
522
-
523
- &.is-disabled {
524
- color: var(--xt-color-success-light-5);
525
- background-color: var(--xt-color-success-light-9);
526
- border-color: var(--xt-color-success-light-8);
527
- }
528
- }
51
+ /* small size - 字体大小 14px */
52
+ .ex-button-small {
53
+ padding: 5px 10px;
54
+ font-size: calc(var(--xt-font-size-base) + $xt-font-size-increment-base);
529
55
  }
530
56
 
531
- // 警告按钮 - warning
532
- .xt-button--warning {
533
- --xt-button-text-color: var(--xt-color-white);
534
- --xt-button-bg-color: var(--xt-color-warning);
535
- --xt-button-border-color: var(--xt-color-warning);
536
- --xt-button-outline-color: var(--xt-color-warning-light-5);
537
- --xt-button-active-color: var(--xt-color-warning-dark-2);
538
- --xt-button-hover-text-color: var(--xt-color-white);
539
- --xt-button-hover-link-text-color: var(--xt-color-warning-light-5);
540
- --xt-button-hover-bg-color: var(--xt-color-warning-light-3);
541
- --xt-button-hover-border-color: var(--xt-color-warning-light-3);
542
- --xt-button-active-bg-color: var(--xt-color-warning-dark-2);
543
- --xt-button-active-border-color: var(--xt-color-warning-dark-2);
544
- --xt-button-disabled-text-color: var(--xt-color-white);
545
- --xt-button-disabled-bg-color: var(--xt-color-warning-light-5);
546
- --xt-button-disabled-border-color: var(--xt-color-warning-light-5);
547
-
548
- &.is-plain {
549
- --xt-button-text-color: var(--xt-color-warning);
550
- --xt-button-bg-color: var(--xt-color-warning-light-9);
551
- --xt-button-border-color: var(--xt-color-warning-light-5);
552
- --xt-button-hover-text-color: var(--xt-color-white);
553
- --xt-button-hover-bg-color: var(--xt-color-warning);
554
- --xt-button-hover-border-color: var(--xt-color-warning);
555
- --xt-button-active-text-color: var(--xt-color-white);
556
- --xt-button-active-bg-color: var(--xt-color-warning);
557
- --xt-button-active-border-color: var(--xt-color-warning);
558
- &.is-disabled {
559
- color: var(--xt-color-warning-light-5);
560
- background-color: var(--xt-color-warning-light-9);
561
- border-color: var(--xt-color-warning-light-8);
562
- }
563
- }
564
- &.is-text {
565
- --xt-button-text-color: var(--xt-color-warning);
566
- --xt-button-hover-text-color: var(--xt-color-warning-light-3);
567
- --xt-button-active-text-color: var(--xt-color-warning-dark-2);
568
- --xt-button-bg-color: transparent;
569
- --xt-button-border-color: transparent;
570
- --xt-button-hover-bg-color: transparent;
571
- --xt-button-active-bg-color: transparent;
572
- &.is-disabled {
573
- color: var(--xt-color-warning-light-5);
574
- }
575
- }
576
- &.is-link {
577
- --xt-button-text-color: var(--xt-color-warning);
578
- --xt-button-hover-text-color: var(--xt-color-warning-light-3);
579
- --xt-button-active-text-color: var(--xt-color-warning-dark-2);
580
- --xt-button-bg-color: transparent;
581
- --xt-button-border-color: transparent;
582
- --xt-button-hover-bg-color: transparent;
583
- --xt-button-active-bg-color: transparent;
584
- &.is-disabled {
585
- color: var(--xt-color-warning-light-5);
586
- }
587
- }
588
-
589
- &.is-dashed {
590
- --xt-button-text-color: var(--xt-color-warning);
591
- --xt-button-bg-color: var(--xt-color-warning-light-9);
592
- --xt-button-border-color: var(--xt-color-warning-light-5);
593
- --xt-button-hover-text-color: var(--xt-color-warning);
594
- --xt-button-hover-bg-color: var(--xt-color-warning-light-9);
595
- --xt-button-hover-border-color: var(--xt-color-warning-light-3);
596
- --xt-button-active-text-color: var(--xt-color-warning-dark-2);
597
- --xt-button-active-bg-color: var(--xt-color-warning-light-9);
598
- --xt-button-active-border-color: var(--xt-color-warning-dark-2);
599
-
600
- &.is-disabled {
601
- color: var(--xt-color-warning-light-5);
602
- background-color: var(--xt-color-warning-light-9);
603
- border-color: var(--xt-color-warning-light-8);
604
- }
605
- }
57
+ /* medium size - 字体大小 16px */
58
+ .ex-button-medium {
59
+ padding: 8px 16px;
60
+ font-size: calc(var(--xt-font-size-base) + $xt-font-size-increment-medium);
606
61
  }
607
62
 
608
- // 危险按钮 - danger
609
- .xt-button--danger {
610
- --xt-button-text-color: var(--xt-color-white);
611
- --xt-button-bg-color: var(--xt-color-danger);
612
- --xt-button-border-color: var(--xt-color-danger);
613
- --xt-button-outline-color: var(--xt-color-danger-light-5);
614
- --xt-button-active-color: var(--xt-color-danger-dark-2);
615
- --xt-button-hover-text-color: var(--xt-color-white);
616
- --xt-button-hover-link-text-color: var(--xt-color-danger-light-5);
617
- --xt-button-hover-bg-color: var(--xt-color-danger-light-3);
618
- --xt-button-hover-border-color: var(--xt-color-danger-light-3);
619
- --xt-button-active-bg-color: var(--xt-color-danger-dark-2);
620
- --xt-button-active-border-color: var(--xt-color-danger-dark-2);
621
- --xt-button-disabled-text-color: var(--xt-color-white);
622
- --xt-button-disabled-bg-color: var(--xt-color-danger-light-5);
623
- --xt-button-disabled-border-color: var(--xt-color-danger-light-5);
624
-
625
- &.is-plain {
626
- --xt-button-text-color: var(--xt-color-danger);
627
- --xt-button-bg-color: var(--xt-color-danger-light-9);
628
- --xt-button-border-color: var(--xt-color-danger-light-5);
629
- --xt-button-hover-text-color: var(--xt-color-white);
630
- --xt-button-hover-bg-color: var(--xt-color-danger);
631
- --xt-button-hover-border-color: var(--xt-color-danger);
632
- --xt-button-active-text-color: var(--xt-color-white);
633
- --xt-button-active-bg-color: var(--xt-color-danger);
634
- --xt-button-active-border-color: var(--xt-color-danger);
635
- &.is-disabled {
636
- color: var(--xt-color-danger-light-5);
637
- background-color: var(--xt-color-danger-light-9);
638
- border-color: var(--xt-color-danger-light-8);
639
- }
640
- }
641
- &.is-text {
642
- --xt-button-text-color: var(--xt-color-danger);
643
- --xt-button-hover-text-color: var(--xt-color-danger-light-3);
644
- --xt-button-active-text-color: var(--xt-color-danger-dark-2);
645
- --xt-button-bg-color: transparent;
646
- --xt-button-border-color: transparent;
647
- --xt-button-hover-bg-color: transparent;
648
- --xt-button-active-bg-color: transparent;
649
- &.is-disabled {
650
- color: var(--xt-color-danger-light-5);
651
- }
652
- }
653
- &.is-link {
654
- --xt-button-text-color: var(--xt-color-danger);
655
- --xt-button-hover-text-color: var(--xt-color-danger-light-3);
656
- --xt-button-active-text-color: var(--xt-color-danger-dark-2);
657
- --xt-button-bg-color: transparent;
658
- --xt-button-border-color: transparent;
659
- --xt-button-hover-bg-color: transparent;
660
- --xt-button-active-bg-color: transparent;
661
- &.is-disabled {
662
- color: var(--xt-color-danger-light-5);
663
- }
664
- }
665
-
666
- &.is-dashed {
667
- --xt-button-text-color: var(--xt-color-danger);
668
- --xt-button-bg-color: var(--xt-color-danger-light-9);
669
- --xt-button-border-color: var(--xt-color-danger-light-5);
670
- --xt-button-hover-text-color: var(--xt-color-danger);
671
- --xt-button-hover-bg-color: var(--xt-color-danger-light-9);
672
- --xt-button-hover-border-color: var(--xt-color-danger-light-3);
673
- --xt-button-active-text-color: var(--xt-color-danger-dark-2);
674
- --xt-button-active-bg-color: var(--xt-color-danger-light-9);
675
- --xt-button-active-border-color: var(--xt-color-danger-dark-2);
676
-
677
- &.is-disabled {
678
- color: var(--xt-color-danger-light-5);
679
- background-color: var(--xt-color-danger-light-9);
680
- border-color: var(--xt-color-danger-light-8);
681
- }
682
- }
683
- }
684
-
685
- // 信息按钮 - info
686
- .xt-button--info {
687
- --xt-button-text-color: var(--xt-color-white);
688
- --xt-button-bg-color: var(--xt-color-info);
689
- --xt-button-border-color: var(--xt-color-info);
690
- --xt-button-outline-color: var(--xt-color-info-light-5);
691
- --xt-button-active-color: var(--xt-color-info-dark-2);
692
- --xt-button-hover-text-color: var(--xt-color-white);
693
- --xt-button-hover-link-text-color: var(--xt-color-info-light-5);
694
- --xt-button-hover-bg-color: var(--xt-color-info-light-3);
695
- --xt-button-hover-border-color: var(--xt-color-info-light-3);
696
- --xt-button-active-bg-color: var(--xt-color-info-dark-2);
697
- --xt-button-active-border-color: var(--xt-color-info-dark-2);
698
- --xt-button-disabled-text-color: var(--xt-color-white);
699
- --xt-button-disabled-bg-color: var(--xt-color-info-light-5);
700
- --xt-button-disabled-border-color: var(--xt-color-info-light-5);
701
-
702
- &.is-plain {
703
- --xt-button-text-color: var(--xt-color-info);
704
- --xt-button-bg-color: var(--xt-color-info-light-9);
705
- --xt-button-border-color: var(--xt-color-info-light-5);
706
- --xt-button-hover-text-color: var(--xt-color-white);
707
- --xt-button-hover-bg-color: var(--xt-color-info);
708
- --xt-button-hover-border-color: var(--xt-color-info);
709
- --xt-button-active-text-color: var(--xt-color-white);
710
- --xt-button-active-bg-color: var(--xt-color-info);
711
- --xt-button-active-border-color: var(--xt-color-info);
712
- &.is-disabled {
713
- color: var(--xt-color-info-light-5);
714
- background-color: var(--xt-color-info-light-9);
715
- border-color: var(--xt-color-info-light-8);
716
- }
717
- }
718
- &.is-text {
719
- --xt-button-text-color: var(--xt-color-info);
720
- --xt-button-hover-text-color: var(--xt-color-info-light-3);
721
- --xt-button-active-text-color: var(--xt-color-info-dark-2);
722
- --xt-button-bg-color: transparent;
723
- --xt-button-border-color: transparent;
724
- --xt-button-hover-bg-color: transparent;
725
- --xt-button-active-bg-color: transparent;
726
- &.is-disabled {
727
- color: var(--xt-color-info-light-5);
728
- }
729
- }
730
- &.is-link {
731
- --xt-button-text-color: var(--xt-color-info);
732
- --xt-button-hover-text-color: var(--xt-color-info-light-3);
733
- --xt-button-active-text-color: var(--xt-color-info-dark-2);
734
- --xt-button-bg-color: transparent;
735
- --xt-button-border-color: transparent;
736
- --xt-button-hover-bg-color: transparent;
737
- --xt-button-active-bg-color: transparent;
738
- &.is-disabled {
739
- color: var(--xt-color-info-light-5);
740
- }
741
- }
742
- &.is-dashed {
743
- --xt-button-text-color: var(--xt-color-info);
744
- --xt-button-bg-color: var(--xt-color-info-light-9);
745
- --xt-button-border-color: var(--xt-color-info-light-5);
746
- --xt-button-hover-text-color: var(--xt-color-info);
747
- --xt-button-hover-bg-color: var(--xt-color-info-light-9);
748
- --xt-button-hover-border-color: var(--xt-color-info-light-3);
749
- --xt-button-active-text-color: var(--xt-color-info-dark-2);
750
- --xt-button-active-bg-color: var(--xt-color-info-light-9);
751
- --xt-button-active-border-color: var(--xt-color-info-dark-2);
752
-
753
- &.is-disabled {
754
- color: var(--xt-color-info-light-5);
755
- background-color: var(--xt-color-info-light-9);
756
- border-color: var(--xt-color-info-light-8);
757
- }
758
- }
759
- }
760
-
761
- // 大号按钮
762
- .xt-button--large {
763
- --xt-button-size: 40px;
764
- min-height: var(--xt-button-size);
765
- padding: 12px 19px;
766
- font-size: var(--xt-font-size-base);
767
- border-radius: var(--xt-border-radius-base);
768
-
769
- [class*="el-icon"] + span {
770
- margin-left: 8px;
771
- }
772
-
773
- &.is-round {
774
- padding: 12px 19px;
775
- }
776
- &.is-circle {
777
- width: var(--xt-button-size);
778
- min-height: var(--xt-button-size);
779
- padding: 12px;
780
- }
781
- }
782
-
783
- // 小号按钮
784
- .xt-button--small {
785
- --xt-button-size: 24px;
786
- min-height: var(--xt-button-size);
787
- padding: 5px 11px;
788
- font-size: 12px;
789
- border-radius: calc(var(--xt-border-radius-base) - 1px);
790
-
791
- [class*="el-icon"] + span {
792
- margin-left: 4px;
793
- }
794
-
795
- &.is-round {
796
- padding: 5px 11px;
797
- }
798
- &.is-circle {
799
- width: var(--xt-button-size);
800
- min-height: var(--xt-button-size);
801
- padding: 5px;
802
- }
63
+ /* large size - 字体大小 18px */
64
+ .ex-button-large {
65
+ padding: 11px 22px;
66
+ font-size: calc(var(--xt-font-size-base) + $xt-font-size-increment-large);
803
67
  }