@design-factory/design-factory 20.0.0-next.0 → 20.0.0-next.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (91) hide show
  1. package/design-factory-initial-branding.css +1 -1
  2. package/design-factory-initial-branding.scss +1 -1
  3. package/design-factory.css +2 -2
  4. package/fesm2022/design-factory-design-factory-tokens-style-dictionary.mjs +358 -0
  5. package/fesm2022/design-factory-design-factory-tokens-style-dictionary.mjs.map +1 -0
  6. package/fesm2022/design-factory.mjs +433 -530
  7. package/fesm2022/design-factory.mjs.map +1 -1
  8. package/index.d.ts +46 -168
  9. package/package.json +14 -2
  10. package/schematics/migrations/15_0_0/remove-ngx-slider/index.js +11 -5
  11. package/schematics/migrations/16_0_0/revert-to-old-brand/index.js +2 -2
  12. package/schematics/migrations/20_0_0/colors-new-branding/index.d.ts +14 -0
  13. package/schematics/migrations/20_0_0/colors-new-branding/index.js +108 -0
  14. package/schematics/migrations/20_0_0/navbar-toggler-logo-svg/index.js +6 -5
  15. package/schematics/migrations/20_0_0/spinner-new-branding/index.d.ts +7 -0
  16. package/schematics/migrations/20_0_0/spinner-new-branding/index.js +41 -0
  17. package/schematics/migrations/helpers.js +1 -1
  18. package/schematics/migrations/migration.json +12 -0
  19. package/schematics/migrations/utils/component-resource-collector.js +2 -2
  20. package/schematics/migrations/utils/project_tsconfig_paths.js +4 -0
  21. package/schematics/migrations/utils/style-updater.js +3 -1
  22. package/schematics/migrations/utils/template-updater.js +3 -1
  23. package/schematics/migrations/utils/typescript/compiler_host.js +6 -4
  24. package/schematics/ng-add/index.js +3 -6
  25. package/styles/scss/_common.root.scss +20 -3
  26. package/styles/scss/_common.scss +1 -1
  27. package/styles/scss/_common.variables.scss +2 -1
  28. package/styles/scss/_variables.scss +1 -0
  29. package/styles/scss/agnosui/_variables.scss +1 -1
  30. package/styles/scss/bootstrap/_utilities-override.scss +14 -8
  31. package/styles/scss/bootstrap/_variables.scss +2 -2
  32. package/styles/scss/components/accordion/_accordion.scss +7 -0
  33. package/styles/scss/components/alert/_alert.scss +32 -17
  34. package/styles/scss/components/badge/_badge.mixins.scss +12 -4
  35. package/styles/scss/components/badge/_badge.scss +191 -71
  36. package/styles/scss/components/badge/_badge.variables.scss +8 -0
  37. package/styles/scss/components/brand-color/_brand-color.mixins.scss +2 -2
  38. package/styles/scss/components/breadcrumbs/_breadcrumbs.scss +4 -1
  39. package/styles/scss/components/breadcrumbs/_breadcrumbs.variables.scss +3 -1
  40. package/styles/scss/components/button/_button.scss +389 -74
  41. package/styles/scss/components/button/_button.utils.scss +20 -1
  42. package/styles/scss/components/button/_button_container.scss +22 -5
  43. package/styles/scss/components/card/_card.scss +42 -10
  44. package/styles/scss/components/card/_card.variables.scss +2 -0
  45. package/styles/scss/components/carousel/_carousel.scss +2 -2
  46. package/styles/scss/components/checkbox/_checkbox.scss +2 -1
  47. package/styles/scss/components/datepicker/_datepicker.scss +2 -1
  48. package/styles/scss/components/dropdown/_dropdown.scss +18 -1
  49. package/styles/scss/components/fonts/_font-faces.mixins.scss +108 -54
  50. package/styles/scss/components/icon/_amadeus-icon.scss +2 -2
  51. package/styles/scss/components/inputs/_inputs.mixin.scss +2 -2
  52. package/styles/scss/components/inputs/_inputs.root.scss +1 -1
  53. package/styles/scss/components/inputs/_inputs.scss +10 -4
  54. package/styles/scss/components/link/_link.mixins.scss +7 -3
  55. package/styles/scss/components/link/_link.scss +6 -0
  56. package/styles/scss/components/media/_media.scss +4 -0
  57. package/styles/scss/components/media/_media.variables.scss +1 -0
  58. package/styles/scss/components/modal/_modal.scss +54 -14
  59. package/styles/scss/components/modal/_modal.variables.scss +1 -0
  60. package/styles/scss/components/navbar/_navbar.scss +12 -0
  61. package/styles/scss/components/pagination/_pagination.scss +5 -0
  62. package/styles/scss/components/pagination/_pagination_container.scss +1 -1
  63. package/styles/scss/components/progressbar/_progressbar.variables.scss +13 -4
  64. package/styles/scss/components/rating/_rating.scss +18 -2
  65. package/styles/scss/components/rating/_rating.variables.scss +1 -1
  66. package/styles/scss/components/scrollspy/_scrollspy.scss +1 -1
  67. package/styles/scss/components/select/_select.scss +14 -19
  68. package/styles/scss/components/separator/_separator.variables.scss +1 -1
  69. package/styles/scss/components/sidenav/_sidenav.scss +3 -3
  70. package/styles/scss/components/sidenav/_sidenav.variables.scss +6 -4
  71. package/styles/scss/components/spinner/_spinner.scss +14 -0
  72. package/styles/scss/components/spinner/_spinner.variables.scss +7 -4
  73. package/styles/scss/components/stepper/_stepper.variables.scss +3 -3
  74. package/styles/scss/components/tabs/_tabs.scss +8 -1
  75. package/styles/scss/components/timepicker/_timepicker.scss +5 -0
  76. package/styles/scss/components/timepicker/_timepicker.variables.scss +1 -0
  77. package/styles/scss/components/toast/_toast.scss +21 -30
  78. package/styles/scss/components/toggle/_toggle.scss +2 -1
  79. package/styles/scss/components/toggle/_toggle.variables.scss +1 -0
  80. package/styles/scss/components/tooltip/_tooltip.scss +5 -0
  81. package/styles/scss/components/tooltip/_tooltip.variables.scss +4 -0
  82. package/styles/scss/components/tooltip/_tooltip_container.scss +17 -13
  83. package/styles/scss/df-styles.scss +1 -0
  84. package/styles/scss/themes/brand2023/_variables.scss +161 -38
  85. package/styles/scss/themes/brand2023/tokens/_mapping.gen.scss +156 -186
  86. package/styles/scss/themes/brand2023/tokens/_root.gen.scss +1708 -0
  87. package/styles/scss/themes/brand2023/tokens/_sass-vars.gen.scss +1467 -0
  88. package/styles/scss/utilities/_common.utilities.scss +3 -10
  89. package/styles/scss/utilities/_rgb.scss +10 -0
  90. package/tokens/style-dictionary/index.d.ts +60 -0
  91. package/styles/scss/themes/brand2023/tokens/_figma.gen.scss +0 -3028
@@ -1,6 +1,25 @@
1
1
  @use 'sass:meta';
2
+ @use 'sass:map';
2
3
  @import 'button.utils';
3
4
 
5
+ // stylelint-disable scss/dollar-variable-pattern, scss/dollar-variable-default
6
+ $isBrand2023: meta.variable-exists(
7
+ $name: 'df-enableBranding2023'
8
+ )
9
+ and $df-enableBranding2023;
10
+
11
+ $mapped-theme-colors: ();
12
+ @each $color, $value in $theme-colors {
13
+ $mapped-theme-colors: map.set($mapped-theme-colors, $color, $color);
14
+ }
15
+ @if ($isBrand2023) {
16
+ $mapped-theme-colors: map.set($mapped-theme-colors, 'info', 'primary');
17
+ $mapped-theme-colors: map.remove($mapped-theme-colors, 'secondary');
18
+ $mapped-theme-colors: map.remove($mapped-theme-colors, 'light');
19
+ $mapped-theme-colors: map.remove($mapped-theme-colors, 'dark');
20
+ }
21
+ // stylelint-enable scss/dollar-variable-pattern, scss/dollar-variable-default
22
+
4
23
  .btn {
5
24
  // DF variables
6
25
  --#{$prefix}btn-cursor-disabled: #{$df-btn-cursor-disabled};
@@ -14,7 +33,7 @@
14
33
  --#{$prefix}box-shadow-color: #{$df-btn-focus-box-shadow-color};
15
34
  --#{$prefix}btn-focus-box-shadow: #{$df-btn-focus-box-shadow}; // override BS
16
35
  --#{$prefix}btn-bg: #{$df-btn-bg-color};
17
- @if meta.variable-exists($name: 'df-enableBranding2023') and $df-enableBranding2023 {
36
+ @if $isBrand2023 {
18
37
  --#{$prefix}btn-border-radius: var(--#{$prefix}button-borderRadius-main-medium);
19
38
  }
20
39
 
@@ -22,7 +41,7 @@
22
41
  align-items: center;
23
42
  justify-content: center;
24
43
 
25
- @if meta.variable-exists($name: 'df-enableBranding2023') and $df-enableBranding2023 {
44
+ @if $isBrand2023 {
26
45
  &.btn-sm {
27
46
  --#{$prefix}btn-border-radius: var(--#{$prefix}button-borderRadius-main-small);
28
47
  }
@@ -82,6 +101,8 @@
82
101
  pointer-events: none;
83
102
  }
84
103
 
104
+ //TODO: delete brand2023 => needed only for old branding
105
+ //TODO: remember to delete all usages
85
106
  &.df-btn-bg-white:not(:hover):not(:active) {
86
107
  background-color: $df-btn-bg-color-white;
87
108
  }
@@ -89,6 +110,14 @@
89
110
 
90
111
  .btn-close {
91
112
  --#{$prefix}box-shadow-width: #{$df-btn-close-focus-shadow-width};
113
+ @if $isBrand2023 {
114
+ &:hover {
115
+ background-color: var(--#{$prefix}button-text-basic-color-neutral-hovered-background);
116
+ }
117
+ &:active {
118
+ background-color: var(--#{$prefix}button-text-basic-color-neutral-pressed-background);
119
+ }
120
+ }
92
121
  }
93
122
 
94
123
  .show > .btn:not(:disabled):not(.disabled).dropdown-toggle {
@@ -136,18 +165,20 @@
136
165
  }
137
166
 
138
167
  .btn-check {
139
- &:checked {
140
- + .btn:hover {
141
- --#{$prefix}btn-active-bg: #{shades-css-var-brand2023(
142
- 'button-solid-basic-color-primary-hovered-background',
143
- 'primary',
144
- 'bg-hover-color'
145
- )};
146
- --#{$prefix}btn-active-border-color: #{shades-css-var-brand2023(
147
- 'button-solid-basic-color-primary-hovered-background',
148
- 'primary',
149
- 'bg-hover-color'
150
- )};
168
+ @if not $isBrand2023 {
169
+ &:checked {
170
+ + .btn:hover {
171
+ --#{$prefix}btn-active-bg: #{shades-css-var-brand2023(
172
+ 'button-solid-basic-color-primary-hovered-background',
173
+ 'primary',
174
+ 'bg-hover-color'
175
+ )};
176
+ --#{$prefix}btn-active-border-color: #{shades-css-var-brand2023(
177
+ 'button-solid-basic-color-primary-hovered-background',
178
+ 'primary',
179
+ 'bg-hover-color'
180
+ )};
181
+ }
151
182
  }
152
183
  }
153
184
 
@@ -304,43 +335,64 @@
304
335
  }
305
336
 
306
337
  // Modify actual button from bootstrap
307
- @each $color, $value in $theme-colors {
338
+ @each $colorClass, $color in $mapped-theme-colors {
308
339
  $bgHoverColor: shades-css-var-brand2023(
309
- 'button-solid-basic-color-' + #{$color} + '-hovered-background',
340
+ varWithDefault(
341
+ 'button-solid-basic-color-' + #{$color} + '-hovered-background',
342
+ 'color-' + #{$color} + '-main-hovered-background'
343
+ ),
310
344
  $color,
311
345
  'bg-hover-color'
312
346
  );
313
347
  $bgActiveColor: shades-css-var-brand2023(
314
- 'button-solid-basic-color-' + #{$color} + '-pressed-background',
348
+ varWithDefault(
349
+ 'button-solid-basic-color-' + #{$color} + '-pressed-background',
350
+ 'color-' + #{$color} + '-main-pressed-background'
351
+ ),
315
352
  $color,
316
353
  'bg-active-color'
317
354
  );
318
355
  $bgFocusOnlyColor: shades-css-var-brand2023(
319
- 'button-solid-basic-color-' + #{$color} + '-default-background',
356
+ varWithDefault(
357
+ 'button-solid-basic-color-' + #{$color} + '-default-background',
358
+ 'color-' + #{$color} + '-main-default-background'
359
+ ),
320
360
  $color,
321
361
  'bg-color'
322
362
  );
323
363
 
324
- .btn-#{$color} {
364
+ .btn-#{$colorClass} {
325
365
  // stylelint-disable custom-property-no-missing-var-function
326
366
  --#{$prefix}btn-color: #{shades-css-var-brand2023(
327
- 'button-solid-basic-color-' + #{$color} + '-default-foreground',
367
+ varWithDefault(
368
+ 'button-solid-basic-color-' + #{$color} + '-default-foreground',
369
+ 'color-' + #{$color} + '-main-default-foreground'
370
+ ),
328
371
  $color,
329
372
  'bg-color',
330
373
  true
331
374
  )};
332
375
  --#{$prefix}btn-bg: #{shades-css-var-brand2023(
333
- 'button-solid-basic-color-' + #{$color} + '-default-background',
376
+ varWithDefault(
377
+ 'button-solid-basic-color-' + #{$color} + '-default-background',
378
+ 'color-' + #{$color} + '-main-default-background'
379
+ ),
334
380
  $color,
335
381
  'bg-color'
336
382
  )};
337
383
  --#{$prefix}btn-border-color: #{shades-css-var-brand2023(
338
- 'button-solid-basic-color-' + #{$color} + '-default-border',
384
+ varWithDefault(
385
+ 'button-solid-basic-color-' + #{$color} + '-default-border',
386
+ 'color-' + #{$color} + '-main-default-border'
387
+ ),
339
388
  $color,
340
389
  'bg-color'
341
390
  )};
342
391
  --#{$prefix}btn-hover-color: #{shades-css-var-brand2023(
343
- 'button-solid-basic-color-' + #{$color} + '-hovered-foreground',
392
+ varWithDefault(
393
+ 'button-solid-basic-color-' + #{$color} + '-hovered-foreground',
394
+ 'color-' + #{$color} + '-main-hovered-foreground'
395
+ ),
344
396
  $color,
345
397
  'bg-hover-color',
346
398
  true
@@ -348,18 +400,37 @@
348
400
  --#{$prefix}btn-hover-bg: #{$bgHoverColor};
349
401
  --#{$prefix}btn-hover-border-color: #{$bgHoverColor}; // Should we use a border color mapping here ?
350
402
  --#{$prefix}btn-active-color: #{shades-css-var-brand2023(
351
- 'button-solid-basic-color-' + #{$color} + '-pressed-foreground',
403
+ varWithDefault(
404
+ 'button-solid-basic-color-' + #{$color} + '-pressed-foreground',
405
+ 'color-' + #{$color} + '-main-pressed-foreground'
406
+ ),
352
407
  $color,
353
408
  'bg-active-color',
354
409
  true
355
410
  )};
356
411
  --#{$prefix}btn-active-bg: #{$bgActiveColor};
357
412
  --#{$prefix}btn-active-border-color: #{$bgActiveColor};
358
- --#{$prefix}btn-disabled-color: #{$df-btn-disabled-text-color};
359
- --#{$prefix}btn-disabled-bg: #{$df-btn-disabled-bg-color};
360
- --#{$prefix}btn-disabled-border-color: #{$df-btn-disabled-border-color};
413
+
414
+ --#{$prefix}btn-disabled-color: #{variable-switch-brand2023(
415
+ 'button-solid-basic-color-disabled-foreground',
416
+ $df-btn-disabled-text-color
417
+ )};
418
+
419
+ --#{$prefix}btn-disabled-bg: #{variable-switch-brand2023(
420
+ 'button-solid-basic-color-disabled-background',
421
+ $df-btn-disabled-bg-color
422
+ )};
423
+
424
+ --#{$prefix}btn-disabled-border-color: #{variable-switch-brand2023(
425
+ 'button-solid-basic-color-disabled-background',
426
+ $df-btn-disabled-border-color
427
+ )};
428
+
361
429
  --#{$prefix}btn-focus-only-color: #{shades-css-var-brand2023(
362
- 'button-solid-basic-color-' + #{$color} + '-default-foreground',
430
+ varWithDefault(
431
+ 'button-solid-basic-color-' + #{$color} + '-default-foreground',
432
+ 'color-' + #{$color} + '-main-default-foreground'
433
+ ),
363
434
  $color,
364
435
  'bg-color',
365
436
  true
@@ -370,7 +441,10 @@
370
441
  --#{$prefix}btn-check-active-hover-bg: #{var(--#{$prefix}btn-active-bg)};
371
442
  --#{$prefix}btn-check-active-hover-border-color: #{var(--#{$prefix}btn-active-border-color)};
372
443
  --#{$prefix}btn-focus-shadow-rgb: #{shades-rgb-css-var-brand2023(
373
- 'button-solid-basic-color-' + #{$color} + '-default-border',
444
+ varWithDefault(
445
+ 'button-solid-basic-color-' + #{$color} + '-default-border',
446
+ 'color-' + #{$color} + '-main-default-border'
447
+ ),
374
448
  $color,
375
449
  'bg-color'
376
450
  )};
@@ -378,7 +452,10 @@
378
452
  &:focus-visible {
379
453
  --#{$prefix}btn-focus-box-shadow: #{$df-btn-focus-box-shadow}; // override BS
380
454
  --#{$prefix}box-shadow-color: #{variable-switch-brand2023(
381
- 'button-solid-basic-color-' + #{$color} + '-default-border',
455
+ varWithDefault(
456
+ 'button-solid-basic-color-' + #{$color} + '-default-border',
457
+ 'color-' + #{$color} + '-main-default-border'
458
+ ),
382
459
  $df-btn-focus-box-shadow-color
383
460
  )};
384
461
  box-shadow: var(--#{$prefix}btn-focus-box-shadow);
@@ -386,20 +463,26 @@
386
463
 
387
464
  &:focus-visible:hover:not(:active) {
388
465
  --#{$prefix}box-shadow-color: #{variable-switch-brand2023(
389
- 'button-solid-basic-color-' + #{$color} + '-hovered-border',
466
+ varWithDefault(
467
+ 'button-solid-basic-color-' + #{$color} + '-hovered-border',
468
+ 'color-' + #{$color} + '-main-hovered-border'
469
+ ),
390
470
  $df-btn-focus-hover-box-shadow-color
391
471
  )};
392
472
  }
393
473
 
394
474
  &:focus-visible:active {
395
475
  --#{$prefix}box-shadow-color: #{variable-switch-brand2023(
396
- 'button-solid-basic-color-' + #{$color} + '-pressed-border',
476
+ varWithDefault(
477
+ 'button-solid-basic-color-' + #{$color} + '-pressed-border',
478
+ 'color-' + #{$color} + '-main-pressed-border'
479
+ ),
397
480
  $df-btn-focus-active-box-shadow-color
398
481
  )};
399
482
  }
400
483
  }
401
484
 
402
- .df-btn-#{$color}-mirror {
485
+ .df-btn-#{$colorClass}-mirror {
403
486
  // stylelint-disable custom-property-no-missing-var-function
404
487
  --#{$prefix}btn-color: #{shades-css-var-brand2023(
405
488
  'button-solid-mirror-color-' + #{$color} + '-default-foreground',
@@ -446,9 +529,22 @@
446
529
  true
447
530
  )};
448
531
  --#{$prefix}btn-active-border-color: var(--#{$prefix}btn-active-bg);
449
- --#{$prefix}btn-disabled-color: #{$df-btn-disabled-text-color};
450
- --#{$prefix}btn-disabled-bg: #{$df-btn-disabled-bg-color};
451
- --#{$prefix}btn-disabled-border-color: #{$df-btn-disabled-border-color};
532
+
533
+ --#{$prefix}btn-disabled-color: #{variable-switch-brand2023(
534
+ 'button-solid-mirror-color-disabled-foreground',
535
+ $df-btn-disabled-text-color
536
+ )};
537
+
538
+ --#{$prefix}btn-disabled-bg: #{variable-switch-brand2023(
539
+ 'button-solid-mirror-color-disabled-background',
540
+ $df-btn-disabled-bg-color
541
+ )};
542
+
543
+ --#{$prefix}btn-disabled-border-color: #{variable-switch-brand2023(
544
+ 'button-solid-mirror-color-disabled-background',
545
+ $df-btn-disabled-border-color
546
+ )};
547
+
452
548
  --#{$prefix}btn-focus-only-color: #{shades-css-var-brand2023(
453
549
  'button-solid-mirror-color-' + #{$color} + '-default-foreground',
454
550
  $color,
@@ -487,63 +583,111 @@
487
583
  }
488
584
  }
489
585
 
490
- .btn-outline-#{$color} {
586
+ .btn-outline-#{$colorClass} {
491
587
  // stylelint-disable custom-property-no-missing-var-function
492
588
  --#{$prefix}btn-color: #{shades-css-var-brand2023(
493
- 'button-outline-basic-color-' + #{$color} + '-default-foreground',
589
+ varWithDefault(
590
+ 'button-outline-basic-color-' + #{$color} + '-default-foreground',
591
+ 'color-' + #{$color} + '-alt-default-border'
592
+ ),
494
593
  $color,
495
594
  'text-color'
496
595
  )};
596
+ @if $isBrand2023 {
597
+ --#{$prefix}btn-bg: var(--#{$prefix}button-outline-basic-color-#{$color}-default-background);
598
+ }
497
599
  --#{$prefix}btn-border-color: #{shades-css-var-brand2023(
498
- 'button-outline-basic-color-' + #{$color} + '-default-border',
600
+ varWithDefault(
601
+ 'button-outline-basic-color-' + #{$color} + '-default-border',
602
+ 'color-' + #{$color} + '-alt-default-border'
603
+ ),
499
604
  $color,
500
605
  'border-color'
501
606
  )};
502
607
  --#{$prefix}btn-hover-color: #{shades-css-var-brand2023(
503
- 'button-outline-basic-color-' + #{$color} + '-hovered-foreground',
608
+ varWithDefault(
609
+ 'button-outline-basic-color-' + #{$color} + '-hovered-foreground',
610
+ 'color-' + #{$color} + '-alt-hovered-foreground'
611
+ ),
504
612
  $color,
505
613
  'text-hover-color'
506
614
  )};
507
615
  --#{$prefix}btn-hover-border-color: #{shades-css-var-brand2023(
508
- 'button-outline-basic-color-' + #{$color} + '-hovered-border',
616
+ varWithDefault(
617
+ 'button-outline-basic-color-' + #{$color} + '-hovered-border',
618
+ 'color-' + #{$color} + '-alt-hovered-border'
619
+ ),
509
620
  $color,
510
621
  'bg-hover-color'
511
622
  )};
512
623
  --#{$prefix}btn-hover-bg: #{shades-css-var-brand2023(
513
- 'button-outline-basic-color-' + #{$color} + '-hovered-background',
624
+ varWithDefault(
625
+ 'button-outline-basic-color-' + #{$color} + '-hovered-background',
626
+ 'color-' + #{$color} + '-alt-hovered-background'
627
+ ),
514
628
  $color,
515
629
  'bg-hover-alt-color'
516
630
  )}; //bg-subtle-hover-color
517
- --#{$prefix}btn-disabled-color: #{$df-btn-outline-disabled-text-color};
518
- --#{$prefix}btn-disabled-border-color: #{$df-btn-disabled-border-color};
631
+ --#{$prefix}btn-disabled-color: #{variable-switch-brand2023(
632
+ 'button-outline-basic-color-disabled-foreground',
633
+ $df-btn-disabled-text-color
634
+ )};
635
+
636
+ @if $isBrand2023 {
637
+ --#{$prefix}btn-disabled-bg: var(--#{$prefix}button-outline-basic-color-disabled-background);
638
+ }
639
+
640
+ --#{$prefix}btn-disabled-border-color: #{variable-switch-brand2023(
641
+ 'button-outline-basic-color-disabled-border',
642
+ $df-btn-disabled-border-color
643
+ )};
644
+
519
645
  --#{$prefix}btn-active-color: #{shades-css-var-brand2023(
520
- 'button-outline-basic-color-' + #{$color} + '-pressed-foreground',
646
+ varWithDefault(
647
+ 'button-outline-basic-color-' + #{$color} + '-pressed-foreground',
648
+ 'color-' + #{$color} + '-alt-pressed-foreground'
649
+ ),
521
650
  $color,
522
651
  'bg-active-color'
523
652
  )};
524
653
  --#{$prefix}btn-active-border-color: #{shades-css-var-brand2023(
525
- 'button-outline-basic-color-' + #{$color} + '-pressed-border',
654
+ varWithDefault(
655
+ 'button-outline-basic-color-' + #{$color} + '-pressed-border',
656
+ 'color-' + #{$color} + '-alt-pressed-border'
657
+ ),
526
658
  $color,
527
659
  'bg-active-color'
528
660
  )};
529
661
  --#{$prefix}btn-active-bg: #{shades-css-var-brand2023(
530
- 'button-outline-basic-color-' + #{$color} + '-pressed-background',
662
+ varWithDefault(
663
+ 'button-outline-basic-color-' + #{$color} + '-pressed-background',
664
+ 'color-' + #{$color} + '-alt-pressed-background'
665
+ ),
531
666
  $color,
532
667
  'bg-active-alt-color'
533
668
  )}; //bg-subtle-active-color
534
669
  --#{$prefix}btn-focus-only-color: #{shades-css-var-brand2023(
535
- 'button-outline-basic-color-' + #{$color} + '-default-foreground',
670
+ varWithDefault(
671
+ 'button-outline-basic-color-' + #{$color} + '-default-foreground',
672
+ 'color-' + #{$color} + '-alt-default-foreground'
673
+ ),
536
674
  $color,
537
675
  'text-color'
538
676
  )};
539
677
  --#{$prefix}btn-focus-only-bg: #{var(--#{$prefix}btn-bg)};
540
678
  --#{$prefix}btn-focus-only-border-color: #{shades-css-var-brand2023(
541
- 'button-outline-basic-color-' + #{$color} + '-default-border',
679
+ varWithDefault(
680
+ 'button-outline-basic-color-' + #{$color} + '-default-border',
681
+ 'color-' + #{$color} + '-alt-default-border'
682
+ ),
542
683
  $color,
543
684
  'border-color'
544
685
  )};
545
686
  --#{$prefix}btn-check-active-hover-color: #{shades-css-var-brand2023(
546
- 'button-outline-basic-color-' + #{$color} + '-activeHovered-foreground',
687
+ varWithDefault(
688
+ 'button-outline-basic-color-' + #{$color} + '-activeHovered-foreground',
689
+ 'color-' + #{$color} + '-alt-activeHovered-foreground'
690
+ ),
547
691
  $color,
548
692
  'bg-active-color',
549
693
  true
@@ -551,7 +695,10 @@
551
695
  --#{$prefix}btn-check-active-hover-bg: #{$bgHoverColor};
552
696
  --#{$prefix}btn-check-active-hover-border-color: #{var(--#{$prefix}btn-active-border-color)};
553
697
  --#{$prefix}btn-focus-shadow-rgb: #{shades-rgb-css-var-brand2023(
554
- 'df-button-outline-basic-color-#{$color}-default-border',
698
+ varWithDefault(
699
+ 'df-button-outline-basic-color-#{$color}-default-border',
700
+ 'color-' + #{$color} + '-alt-default-border'
701
+ ),
555
702
  $color,
556
703
  'bg-color'
557
704
  )};
@@ -559,7 +706,10 @@
559
706
  &:focus-visible {
560
707
  --#{$prefix}btn-focus-box-shadow: #{$df-btn-focus-box-shadow}; // override BS
561
708
  --#{$prefix}box-shadow-color: #{variable-switch-brand2023(
562
- 'button-outline-basic-color-' + #{$color} + '-default-border',
709
+ varWithDefault(
710
+ 'button-outline-basic-color-' + #{$color} + '-default-border',
711
+ 'color-' + #{$color} + '-alt-default-border'
712
+ ),
563
713
  $df-btn-outline-focus-box-shadow-color
564
714
  )};
565
715
  box-shadow: var(--#{$prefix}btn-focus-box-shadow);
@@ -567,7 +717,10 @@
567
717
 
568
718
  &:focus-visible:hover:not(:active):not(.active) {
569
719
  --#{$prefix}box-shadow-color: #{variable-switch-brand2023(
570
- 'button-outline-basic-color-' + #{$color} + '-hovered-border',
720
+ varWithDefault(
721
+ 'button-outline-basic-color-' + #{$color} + '-hovered-border',
722
+ 'color-' + #{$color} + '-alt-hovered-border'
723
+ ),
571
724
  $df-btn-outline-focus-hover-box-shadow-color
572
725
  )};
573
726
  }
@@ -575,13 +728,16 @@
575
728
  &:focus-visible:active,
576
729
  &.active:focus-visible {
577
730
  --#{$prefix}box-shadow-color: #{variable-switch-brand2023(
578
- 'button-outline-basic-color-' + #{$color} + '-pressed-border',
731
+ varWithDefault(
732
+ 'button-outline-basic-color-' + #{$color} + '-pressed-border',
733
+ 'color-' + #{$color} + '-alt-pressed-border'
734
+ ),
579
735
  $df-btn-outline-focus-active-box-shadow-color
580
736
  )};
581
737
  }
582
738
  }
583
739
 
584
- .df-btn-outline-#{$color}-mirror {
740
+ .df-btn-outline-#{$colorClass}-mirror {
585
741
  // stylelint-disable custom-property-no-missing-var-function
586
742
  --#{$prefix}btn-color: #{shades-css-var-brand2023(
587
743
  'button-outline-mirror-color-' + #{$color} + '-default-foreground',
@@ -590,6 +746,9 @@
590
746
  false,
591
747
  true
592
748
  )};
749
+ @if $isBrand2023 {
750
+ --#{$prefix}btn-bg: var(--#{$prefix}button-outline-mirror-color-#{$color}-default-background);
751
+ }
593
752
  --#{$prefix}btn-border-color: var(--#{$prefix}btn-color);
594
753
  --#{$prefix}btn-hover-color: #{shades-css-var-brand2023(
595
754
  'button-outline-mirror-color-' + #{$color} + '-hovered-foreground',
@@ -606,8 +765,19 @@
606
765
  false,
607
766
  true
608
767
  )};
609
- --#{$prefix}btn-disabled-color: #{$df-btn-outline-disabled-text-color};
610
- --#{$prefix}btn-disabled-border-color: #{$df-btn-disabled-border-color};
768
+
769
+ --#{$prefix}btn-disabled-color: #{variable-switch-brand2023(
770
+ 'button-outline-mirror-color-disabled-foreground',
771
+ $df-btn-outline-disabled-text-color
772
+ )};
773
+ @if $isBrand2023 {
774
+ --#{$prefix}btn-disabled-bg: var(--#{$prefix}button-outline-mirror-color-disabled-background);
775
+ }
776
+ --#{$prefix}btn-disabled-border-color: #{variable-switch-brand2023(
777
+ 'button-outline-mirror-color-disabled-border',
778
+ $df-btn-disabled-border-color
779
+ )};
780
+
611
781
  --#{$prefix}btn-active-color: #{shades-css-var-brand2023(
612
782
  'button-outline-mirror-color-' + #{$color} + '-pressed-foreground',
613
783
  $color,
@@ -658,38 +828,77 @@
658
828
  }
659
829
  }
660
830
 
661
- .btn-outline-#{$color}.df-btn-tertiary {
662
- --#{$prefix}btn-color: var(--#{$prefix}button-text-basic-color-#{$color}-default-foreground);
831
+ .btn-outline-#{$colorClass}.df-btn-tertiary {
832
+ --#{$prefix}btn-color: var(
833
+ --#{$prefix}button-text-basic-color-#{$color}-default-foreground,
834
+ var(--#{$prefix}color-#{$color}-alt-default-foreground)
835
+ );
836
+ @if $isBrand2023 {
837
+ --#{$prefix}btn-bg: transparent;
838
+ }
839
+
663
840
  --#{$prefix}btn-border-color: transparent;
664
841
 
665
- --#{$prefix}btn-hover-color: var(--#{$prefix}button-text-basic-color-#{$color}-hovered-foreground);
666
- --#{$prefix}btn-hover-bg: var(--#{$prefix}button-text-basic-color-#{$color}-hovered-background);
667
- --#{$prefix}btn-hover-border-color: var(--#{$prefix}button-text-basic-color-#{$color}-hovered-background);
842
+ --#{$prefix}btn-hover-color: var(
843
+ --#{$prefix}button-text-basic-color-#{$color}-hovered-foreground,
844
+ var(--#{$prefix}color-#{$color}-alt-hovered-foreground)
845
+ );
846
+ --#{$prefix}btn-hover-bg: var(
847
+ --#{$prefix}button-text-basic-color-#{$color}-hovered-background,
848
+ var(--#{$prefix}color-#{$color}-alt-hovered-background)
849
+ );
850
+ --#{$prefix}btn-hover-border-color: var(
851
+ --#{$prefix}button-text-basic-color-#{$color}-hovered-background,
852
+ var(--#{$prefix}color-#{$color}-alt-hovered-background)
853
+ );
668
854
 
669
- --#{$prefix}btn-active-color: var(--#{$prefix}button-text-basic-color-#{$color}-pressed-foreground);
670
- --#{$prefix}btn-active-bg: var(--#{$prefix}button-text-basic-color-#{$color}-pressed-background);
671
- --#{$prefix}btn-active-border-color: var(--#{$prefix}button-text-basic-color-#{$color}-pressed-background);
855
+ --#{$prefix}btn-active-color: var(
856
+ --#{$prefix}button-text-basic-color-#{$color}-pressed-foreground,
857
+ var(--#{$prefix}color-#{$color}-alt-pressed-foreground)
858
+ );
859
+ --#{$prefix}btn-active-bg: var(
860
+ --#{$prefix}button-text-basic-color-#{$color}-pressed-background,
861
+ var(--#{$prefix}color-#{$color}-alt-pressed-background)
862
+ );
863
+ --#{$prefix}btn-active-border-color: var(
864
+ --#{$prefix}button-text-basic-color-#{$color}-pressed-background,
865
+ var(--#{$prefix}color-#{$color}-alt-pressed-background)
866
+ );
672
867
 
673
868
  --#{$prefix}btn-disabled-color: var(--#{$prefix}button-text-basic-color-disabled-foreground);
674
869
  --#{$prefix}btn-disabled-bg: var(--#{$prefix}button-text-basic-color-disabled-background);
675
870
  --#{$prefix}btn-disabled-border-color: var(--#{$prefix}button-text-basic-color-disabled-background);
676
871
 
677
- --#{$prefix}btn-focus-only-color: var(--#{$prefix}button-text-basic-color-#{$color}-default-foreground);
872
+ --#{$prefix}btn-focus-only-color: var(
873
+ --#{$prefix}button-text-basic-color-#{$color}-default-foreground,
874
+ var(--#{$prefix}color-#{$color}-alt-default-foreground)
875
+ );
678
876
  --#{$prefix}btn-focus-only-border-color: transparent;
679
877
  --#{$prefix}btn-check-active-hover-color: var(
680
- --#{$prefix}button-text-basic-color-#{$color}-activeHovered-foreground
878
+ --#{$prefix}button-text-basic-color-#{$color}-activeHovered-foreground,
879
+ var(--#{$prefix}color-#{$color}-alt-activeHovered-foreground)
880
+ );
881
+ --#{$prefix}btn-check-active-hover-bg: var(
882
+ --#{$prefix}button-text-basic-color-#{$color}-activeHovered-background,
883
+ var(--#{$prefix}color-#{$color}-alt-activeHovered-background)
681
884
  );
682
- --#{$prefix}btn-check-active-hover-bg: var(--#{$prefix}button-text-basic-color-#{$color}-activeHovered-background);
683
885
  --#{$prefix}btn-check-active-hover-border-color: var(
684
- --#{$prefix}button-text-basic-color-#{$color}-activeHovered-background
886
+ --#{$prefix}button-text-basic-color-#{$color}-activeHovered-background,
887
+ var(--#{$prefix}color-#{$color}-alt-activeHovered-background)
685
888
  );
686
889
 
687
890
  --#{$prefix}box-shadow-color: #{variable-switch-brand2023(
688
- 'button-text-basic-color-#{$color}-default-foreground',
891
+ varWithDefault(
892
+ 'button-text-basic-color-#{$color}-default-foreground',
893
+ 'color-' + #{$color} + '-alt-default-foreground'
894
+ ),
689
895
  var(--#{$prefix}color-#{$color}-main-default-border)
690
896
  )};
691
897
  --#{$prefix}btn-focus-shadow-rgb: #{shades-rgb-css-var-brand2023(
692
- 'button-text-basic-color-#{$color}-default-foreground',
898
+ varWithDefault(
899
+ 'button-text-basic-color-#{$color}-default-foreground',
900
+ 'color-' + #{$color} + '-alt-default-foreground'
901
+ ),
693
902
  $color,
694
903
  'bg-color'
695
904
  )};
@@ -700,14 +909,20 @@
700
909
 
701
910
  &:focus-visible:hover:not(:active):not(.active) {
702
911
  --#{$prefix}box-shadow-color: #{variable-switch-brand2023(
703
- 'button-outline-basic-color-' + #{$color} + '-hovered-foreground',
912
+ varWithDefault(
913
+ 'button-outline-basic-color-' + #{$color} + '-hovered-border',
914
+ 'color-' + #{$color} + '-alt-hovered-border'
915
+ ),
704
916
  $df-btn-outline-focus-hover-box-shadow-color
705
917
  )};
706
918
  }
707
919
  }
708
920
 
709
- .df-btn-outline-#{$color}-mirror.df-btn-tertiary {
921
+ .df-btn-outline-#{$colorClass}-mirror.df-btn-tertiary {
710
922
  --#{$prefix}btn-color: var(--#{$prefix}button-text-mirror-color-#{$color}-default-foreground);
923
+ @if $isBrand2023 {
924
+ --#{$prefix}btn-bg: transparent;
925
+ }
711
926
  --#{$prefix}btn-border-color: transparent;
712
927
 
713
928
  --#{$prefix}btn-hover-color: var(--#{$prefix}button-text-mirror-color-#{$color}-hovered-foreground);
@@ -749,9 +964,109 @@
749
964
  }
750
965
 
751
966
  .btn-check {
967
+ @if $isBrand2023 {
968
+ &:checked {
969
+ + .btn-#{$colorClass} {
970
+ --#{$prefix}btn-active-color: var(--#{$prefix}button-solid-basic-color-#{$color}-active-foreground);
971
+ --#{$prefix}btn-active-bg: var(--#{$prefix}button-solid-basic-color-#{$color}-active-background);
972
+ --#{$prefix}btn-active-border-color: var(--#{$prefix}button-solid-basic-color-#{$color}-active-border);
973
+
974
+ &:hover {
975
+ --#{$prefix}btn-active-color: var(--#{$prefix}button-solid-basic-color-#{$color}-activeHovered-foreground);
976
+ --#{$prefix}btn-active-bg: var(--#{$prefix}button-solid-basic-color-#{$color}-activeHovered-background);
977
+ --#{$prefix}btn-active-border-color: var(
978
+ --#{$prefix}button-solid-basic-color-#{$color}-activeHovered-border
979
+ );
980
+ }
981
+
982
+ &:active {
983
+ --#{$prefix}btn-active-color: var(--#{$prefix}button-solid-basic-color-#{$color}-activePressed-foreground);
984
+ --#{$prefix}btn-active-bg: var(--#{$prefix}button-solid-basic-color-#{$color}-activePressed-background);
985
+ --#{$prefix}btn-active-border-color: var(
986
+ --#{$prefix}button-solid-basic-color-#{$color}-activePressed-border
987
+ );
988
+ }
989
+ }
990
+
991
+ + .df-btn-#{$colorClass}-mirror {
992
+ --#{$prefix}btn-active-color: var(--#{$prefix}button-solid-mirror-color-#{$color}-active-foreground);
993
+ --#{$prefix}btn-active-bg: var(--#{$prefix}button-solid-mirror-color-#{$color}-active-background);
994
+ --#{$prefix}btn-active-border-color: var(--#{$prefix}button-solid-mirror-color-#{$color}-active-border);
995
+
996
+ &:hover {
997
+ --#{$prefix}btn-active-color: var(--#{$prefix}button-solid-mirror-color-#{$color}-activeHovered-foreground);
998
+ --#{$prefix}btn-active-bg: var(--#{$prefix}button-solid-mirror-color-#{$color}-activeHovered-background);
999
+ --#{$prefix}btn-active-border-color: var(
1000
+ --#{$prefix}button-solid-mirror-color-#{$color}-activeHovered-border
1001
+ );
1002
+ }
1003
+
1004
+ &:active {
1005
+ --#{$prefix}btn-active-color: var(--#{$prefix}button-solid-mirror-color-#{$color}-activePressed-foreground);
1006
+ --#{$prefix}btn-active-bg: var(--#{$prefix}button-solid-mirror-color-#{$color}-activePressed-background);
1007
+ --#{$prefix}btn-active-border-color: var(
1008
+ --#{$prefix}button-solid-mirror-color-#{$color}-activePressed-border
1009
+ );
1010
+ }
1011
+ }
1012
+
1013
+ + .btn-outline-#{$colorClass} {
1014
+ --#{$prefix}btn-active-color: var(--#{$prefix}button-outline-basic-color-#{$color}-active-foreground);
1015
+ --#{$prefix}btn-active-bg: var(--#{$prefix}button-outline-basic-color-#{$color}-active-background);
1016
+ --#{$prefix}btn-active-border-color: var(--#{$prefix}button-outline-basic-color-#{$color}-active-border);
1017
+
1018
+ &:hover {
1019
+ --#{$prefix}btn-active-color: var(
1020
+ --#{$prefix}button-outline-basic-color-#{$color}-activeHovered-foreground
1021
+ );
1022
+ --#{$prefix}btn-active-bg: var(--#{$prefix}button-outline-basic-color-#{$color}-activeHovered-background);
1023
+ --#{$prefix}btn-active-border-color: var(
1024
+ --#{$prefix}button-outline-basic-color-#{$color}-activeHovered-border
1025
+ );
1026
+ }
1027
+
1028
+ &:active {
1029
+ --#{$prefix}btn-active-color: var(
1030
+ --#{$prefix}button-outline-basic-color-#{$color}-activePressed-foreground
1031
+ );
1032
+ --#{$prefix}btn-active-bg: var(--#{$prefix}button-outline-basic-color-#{$color}-activePressed-background);
1033
+ --#{$prefix}btn-active-border-color: var(
1034
+ --#{$prefix}button-outline-basic-color-#{$color}-activePressed-border
1035
+ );
1036
+ }
1037
+ }
1038
+
1039
+ + .df-btn-outline-#{$colorClass}-mirror {
1040
+ --#{$prefix}btn-active-color: var(--#{$prefix}button-outline-mirror-color-#{$color}-active-foreground);
1041
+ --#{$prefix}btn-active-bg: var(--#{$prefix}button-outline-mirror-color-#{$color}-active-background);
1042
+ --#{$prefix}btn-active-border-color: var(--#{$prefix}button-outline-mirror-color-#{$color}-active-border);
1043
+
1044
+ &:hover {
1045
+ --#{$prefix}btn-active-color: var(
1046
+ --#{$prefix}button-outline-mirror-color-#{$color}-activeHovered-foreground
1047
+ );
1048
+ --#{$prefix}btn-active-bg: var(--#{$prefix}button-outline-mirror-color-#{$color}-activeHovered-background);
1049
+ --#{$prefix}btn-active-border-color: var(
1050
+ --#{$prefix}button-outline-mirror-color-#{$color}-activeHovered-border
1051
+ );
1052
+ }
1053
+
1054
+ &:active {
1055
+ --#{$prefix}btn-active-color: var(
1056
+ --#{$prefix}button-outline-mirror-color-#{$color}-activePressed-foreground
1057
+ );
1058
+ --#{$prefix}btn-active-bg: var(--#{$prefix}button-outline-mirror-color-#{$color}-activePressed-background);
1059
+ --#{$prefix}btn-active-border-color: var(
1060
+ --#{$prefix}button-outline-mirror-color-#{$color}-activePressed-border
1061
+ );
1062
+ }
1063
+ }
1064
+ }
1065
+ }
1066
+
752
1067
  // override default behavior of outline in case of btn-check
753
1068
  &:checked {
754
- + .btn-outline-#{$color} {
1069
+ + .btn-outline-#{$colorClass} {
755
1070
  --#{$prefix}btn-active-color: #{shades-css-var-brand2023(
756
1071
  'button-solid-basic-color-' + #{$color} + '-pressed-foreground',
757
1072
  $color,