|
55 | 55 | @button-danger-color: var(--td-button-danger-color, @font-white-1); |
56 | 56 | @button-danger-border-color: var(--td-button-danger-border-color, @error-color); |
57 | 57 | @button-danger-bg-color: var(--td-button-danger-bg-color, @error-color); |
58 | | -@button-danger-disabled-color: var(--td-button-danger-disabled-color, @font-white-1); |
| 58 | +@button-danger-disabled-color: var(--td-button-danger-disabled-color, @error-color-disabled); |
59 | 59 | @button-danger-disabled-bg: var(--td-button-danger-disabled-bg, @error-color-3); |
60 | 60 | @button-danger-disabled-border-color: var(--td-button-danger-disabled-border-color, @error-color-3); |
61 | 61 | // default + outline |
|
94 | 94 | // ghost 优先级高于 theme,固定透明背景,白色边框,白色字体 |
95 | 95 | @button-ghost-color: var(--td-button-ghost-color, @bg-color-container); |
96 | 96 | @button-ghost-border-color: var(--td-button-ghost-border-color, @button-ghost-color); |
97 | | -@button-ghost-disabled-color: var(--td-button-ghost-disabled-color, rgba(255, 255, 255, 0.35)); |
| 97 | +@button-ghost-disabled-color: var(--td-button-ghost-disabled-color, @font-white-4); |
| 98 | +@button-ghost-hover-color: var(--td-button-ghost-hover-color, @font-white-2); |
98 | 99 | @button-ghost-primary-color: var(--td-button-ghost-primary-color, @brand-color); |
99 | 100 | @button-ghost-primary-border-color: var(--td-button-ghost-primary-border-color, @brand-color); |
| 101 | +@button-ghost-primary-hover-color: var(--td-button-ghost-primary-hover-color, @brand-color-active); |
100 | 102 | @button-ghost-danger-color: var(--td-button-ghost-danger-color, @error-color); |
101 | 103 | @button-ghost-danger-border-color: var(--td-button-ghost-danger-border-color, @error-color); |
| 104 | +@button-ghost-danger-hover-color: var(--td-button-ghost-danger-hover-color, @error-color-active); |
102 | 105 |
|
103 | 106 | // 激活态背景和边框色 |
104 | 107 | @button-default-active-bg-color: var(--td-button-default-active-bg-color, @bg-color-component-active); |
|
194 | 197 | .button-theme(light); |
195 | 198 | .button-theme(danger); |
196 | 199 |
|
| 200 | +.ghost-theme(@theme) { |
| 201 | + @color: 'button-ghost-@{theme}-color'; |
| 202 | + @hoverColor: 'button-ghost-@{theme}-hover-color'; |
| 203 | + @borderColor: 'button-ghost-@{theme}-border-color'; |
| 204 | + |
| 205 | + &.@{button}--@{theme} when (@theme = primary), (@theme = danger) { |
| 206 | + color: @@color; |
| 207 | + |
| 208 | + &, |
| 209 | + &::after { |
| 210 | + border-color: @@borderColor; |
| 211 | + } |
| 212 | + |
| 213 | + &.@{button}--hover { |
| 214 | + color: @@hoverColor; |
| 215 | + |
| 216 | + &, |
| 217 | + &::after { |
| 218 | + background-color: transparent; |
| 219 | + border-color: @@hoverColor; |
| 220 | + } |
| 221 | + } |
| 222 | + } |
| 223 | + |
| 224 | + &.@{button}--@{theme} { |
| 225 | + &.@{button}--text.@{button}--hover, |
| 226 | + &.@{button}--text.@{button}--hover::after { |
| 227 | + background-color: @gray-color-10; |
| 228 | + } |
| 229 | + |
| 230 | + &.@{button}--disabled { |
| 231 | + background-color: transparent; |
| 232 | + color: @button-ghost-disabled-color; |
| 233 | + |
| 234 | + &, |
| 235 | + &::after { |
| 236 | + border-color: @button-ghost-disabled-color; |
| 237 | + } |
| 238 | + } |
| 239 | + } |
| 240 | +} |
| 241 | + |
197 | 242 | .@{button} { |
198 | 243 | display: inline-flex; |
199 | 244 | align-items: center; |
|
222 | 267 |
|
223 | 268 | &--text { |
224 | 269 | color: @button-default-color; |
225 | | - background-color: @bg-color-container; |
| 270 | + background-color: transparent; |
226 | 271 |
|
227 | 272 | &, |
228 | 273 | &::after { |
|
236 | 281 |
|
237 | 282 | &.@{button}--primary { |
238 | 283 | color: @button-primary-text-color; |
239 | | - background-color: @bg-color-container; |
| 284 | + background-color: transparent; |
240 | 285 |
|
241 | 286 | &.@{button}--hover, |
242 | 287 | &.@{button}--hover::after { |
|
251 | 296 |
|
252 | 297 | &.@{button}--danger { |
253 | 298 | color: @button-danger-text-color; |
254 | | - background-color: @bg-color-container; |
| 299 | + background-color: transparent; |
255 | 300 |
|
256 | 301 | &.@{button}--hover, |
257 | 302 | &.@{button}--hover::after { |
|
266 | 311 |
|
267 | 312 | &.@{button}--light { |
268 | 313 | color: @button-light-text-color; |
269 | | - background-color: @bg-color-container; |
| 314 | + background-color: transparent; |
270 | 315 |
|
271 | 316 | &.@{button}--hover, |
272 | 317 | &.@{button}--hover::after { |
|
279 | 324 | } |
280 | 325 | } |
281 | 326 |
|
282 | | - &--ghost { |
283 | | - background-color: transparent; |
284 | | - color: @button-ghost-color; |
285 | | - |
286 | | - &, |
287 | | - &::after { |
288 | | - border-color: @button-ghost-border-color; |
289 | | - } |
290 | | - |
291 | | - &.@{button}--hover, |
292 | | - &.@{button}--hover::after { |
293 | | - background: none; |
294 | | - } |
295 | | - |
296 | | - &.@{button}--primary { |
297 | | - color: @button-ghost-primary-color; |
298 | | - |
299 | | - &, |
300 | | - &::after { |
301 | | - border-color: @button-ghost-primary-border-color; |
302 | | - } |
303 | | - } |
304 | | - |
305 | | - &.@{button}--danger { |
306 | | - color: @button-ghost-danger-color; |
307 | | - |
308 | | - &, |
309 | | - &::after { |
310 | | - border-color: @button-ghost-danger-border-color; |
311 | | - } |
312 | | - } |
313 | | - |
314 | | - &.@{button}--disabled { |
315 | | - background-color: transparent; |
316 | | - color: @button-ghost-disabled-color; |
317 | | - |
318 | | - &, |
319 | | - &::after { |
320 | | - border-color: @button-ghost-disabled-color; |
321 | | - } |
322 | | - } |
323 | | - } |
324 | | - |
325 | 327 | &--outline { |
326 | 328 | color: @button-default-outline-color; |
327 | 329 | background-color: @bg-color-container; |
|
438 | 440 | border-style: dashed; |
439 | 441 | border-width: 2rpx; |
440 | 442 |
|
| 443 | + &::after { |
| 444 | + border: 0; |
| 445 | + } |
| 446 | + |
441 | 447 | &.@{button}--hover, |
442 | 448 | &.@{button}--hover::after { |
443 | 449 | background-color: @button-default-outline-active-bg-color; |
|
447 | 453 | &.@{button}--primary { |
448 | 454 | color: @button-primary-dashed-color; |
449 | 455 |
|
| 456 | + &, |
450 | 457 | &::after { |
451 | 458 | border-color: @button-primary-dashed-border-color; |
452 | | - border: 0; |
453 | 459 | } |
454 | | - border-color: @button-primary-dashed-border-color; |
455 | 460 |
|
456 | 461 | &.@{button}--disabled { |
457 | 462 | background-color: @bg-color-container; |
458 | 463 | color: @button-primary-dashed-disabled-color; |
459 | 464 |
|
| 465 | + &, |
460 | 466 | &::after { |
461 | 467 | border-color: @button-primary-dashed-disabled-color; |
462 | 468 | } |
463 | | - border-color: @button-primary-dashed-disabled-color; |
464 | 469 | } |
465 | 470 | } |
466 | 471 |
|
467 | 472 | &.@{button}--danger { |
468 | 473 | color: @button-danger-dashed-color; |
469 | 474 |
|
| 475 | + &, |
470 | 476 | &::after { |
471 | 477 | border-color: @button-danger-dashed-border-color; |
472 | 478 | } |
473 | | - border-color: @button-danger-dashed-border-color; |
474 | 479 |
|
475 | 480 | &.@{button}--disabled { |
476 | 481 | background-color: transparent; |
|
483 | 488 | } |
484 | 489 | } |
485 | 490 |
|
| 491 | + &--ghost { |
| 492 | + background-color: transparent; |
| 493 | + color: @button-ghost-color; |
| 494 | + |
| 495 | + &, |
| 496 | + &::after { |
| 497 | + border-color: @button-ghost-border-color; |
| 498 | + } |
| 499 | + |
| 500 | + &.@{button}--default.@{button}--hover { |
| 501 | + color: @button-ghost-hover-color; |
| 502 | + |
| 503 | + &, |
| 504 | + &::after { |
| 505 | + background-color: transparent; |
| 506 | + border-color: @button-ghost-hover-color; |
| 507 | + } |
| 508 | + } |
| 509 | + |
| 510 | + // 不考虑 ghost + light 场景 |
| 511 | + .ghost-theme(primary); |
| 512 | + .ghost-theme(danger); |
| 513 | + .ghost-theme(default); |
| 514 | + } |
| 515 | + |
486 | 516 | &__loading + &__content:not(:empty), |
487 | 517 | &__icon + &__content:not(:empty) { |
488 | 518 | margin-left: 8rpx; |
|
0 commit comments