igniteui-angular 20.0.1 → 20.0.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 (95) hide show
  1. package/fesm2022/igniteui-angular.mjs +8 -10
  2. package/fesm2022/igniteui-angular.mjs.map +1 -1
  3. package/index.d.ts +2 -2
  4. package/lib/core/styles/components/_common/_igx-vhelper.scss +1 -0
  5. package/lib/core/styles/components/action-strip/_action-strip-theme.scss +2 -7
  6. package/lib/core/styles/components/avatar/_avatar-theme.scss +7 -8
  7. package/lib/core/styles/components/badge/_badge-theme.scss +3 -8
  8. package/lib/core/styles/components/banner/_banner-theme.scss +6 -7
  9. package/lib/core/styles/components/bottom-nav/_bottom-nav-theme.scss +17 -28
  10. package/lib/core/styles/components/button/_button-theme.scss +219 -158
  11. package/lib/core/styles/components/button/_contained-button-theme.scss +302 -0
  12. package/lib/core/styles/components/button/_fab-button-theme.scss +296 -0
  13. package/lib/core/styles/components/button/_flat-button-theme.scss +356 -0
  14. package/lib/core/styles/components/button/_outlined-button-theme.scss +419 -0
  15. package/lib/core/styles/components/button-group/_button-group-theme.scss +113 -29
  16. package/lib/core/styles/components/calendar/_calendar-theme.scss +502 -112
  17. package/lib/core/styles/components/card/_card-theme.scss +5 -16
  18. package/lib/core/styles/components/carousel/_carousel-theme.scss +103 -23
  19. package/lib/core/styles/components/checkbox/_checkbox-component.scss +1 -1
  20. package/lib/core/styles/components/checkbox/_checkbox-theme.scss +63 -11
  21. package/lib/core/styles/components/chip/_chip-theme.scss +64 -47
  22. package/lib/core/styles/components/column-actions/_column-actions-theme.scss +2 -7
  23. package/lib/core/styles/components/combo/_combo-theme.scss +54 -12
  24. package/lib/core/styles/components/dialog/_dialog-theme.scss +9 -12
  25. package/lib/core/styles/components/divider/_divider-theme.scss +1 -6
  26. package/lib/core/styles/components/drop-down/_drop-down-theme.scss +52 -32
  27. package/lib/core/styles/components/expansion-panel/_expansion-panel-theme.scss +18 -13
  28. package/lib/core/styles/components/grid/_grid-theme.scss +115 -94
  29. package/lib/core/styles/components/grid/_pivot-data-selector-theme.scss +1 -6
  30. package/lib/core/styles/components/grid-summary/_grid-summary-theme.scss +12 -13
  31. package/lib/core/styles/components/grid-toolbar/_grid-toolbar-theme.scss +7 -12
  32. package/lib/core/styles/components/highlight/highlight-theme.scss +2 -3
  33. package/lib/core/styles/components/icon/_icon-theme.scss +0 -1
  34. package/lib/core/styles/components/icon-button/_contained-icon-button-theme.scss +196 -0
  35. package/lib/core/styles/components/icon-button/_flat-icon-button-theme.scss +188 -0
  36. package/lib/core/styles/components/icon-button/_icon-button-theme.scss +45 -32
  37. package/lib/core/styles/components/icon-button/_outlined-icon-button-theme.scss +232 -0
  38. package/lib/core/styles/components/input/_input-group-theme.scss +272 -21
  39. package/lib/core/styles/components/label/_label-theme.scss +2 -4
  40. package/lib/core/styles/components/list/_list-theme.scss +42 -66
  41. package/lib/core/styles/components/navbar/_navbar-theme.scss +25 -15
  42. package/lib/core/styles/components/navdrawer/_navdrawer-theme.scss +24 -22
  43. package/lib/core/styles/components/overlay/_overlay-theme.scss +0 -1
  44. package/lib/core/styles/components/paginator/_paginator-theme.scss +2 -7
  45. package/lib/core/styles/components/progress/circular/_circular-theme.scss +3 -8
  46. package/lib/core/styles/components/progress/linear/_linear-theme.scss +1 -6
  47. package/lib/core/styles/components/query-builder/_query-builder-theme.scss +28 -11
  48. package/lib/core/styles/components/radio/_radio-theme.scss +54 -10
  49. package/lib/core/styles/components/ripple/_ripple-theme.scss +0 -1
  50. package/lib/core/styles/components/scrollbar/scrollbar-theme.scss +0 -1
  51. package/lib/core/styles/components/select/_select-theme.scss +35 -7
  52. package/lib/core/styles/components/slider/_slider-theme.scss +92 -7
  53. package/lib/core/styles/components/snackbar/_snackbar-theme.scss +3 -8
  54. package/lib/core/styles/components/splitter/_splitter-theme.scss +15 -8
  55. package/lib/core/styles/components/stepper/_stepper-theme.scss +190 -22
  56. package/lib/core/styles/components/switch/_switch-theme.scss +112 -8
  57. package/lib/core/styles/components/tabs/_tabs-theme.scss +124 -56
  58. package/lib/core/styles/components/time-picker/_time-picker-theme.scss +35 -18
  59. package/lib/core/styles/components/toast/_toast-theme.scss +9 -10
  60. package/lib/core/styles/components/tooltip/_tooltip-theme.scss +2 -7
  61. package/lib/core/styles/components/tree/_tree-theme.scss +33 -10
  62. package/lib/core/styles/components/watermark/_watermark-theme.scss +0 -1
  63. package/lib/core/styles/themes/_core.scss +6 -0
  64. package/lib/core/styles/themes/generators/_base.scss +146 -58
  65. package/migrations/migration-collection.json +5 -0
  66. package/migrations/update-20_0_2/changes/theme-changes.json +11 -0
  67. package/migrations/update-20_0_2/index.d.ts +3 -0
  68. package/migrations/update-20_0_2/index.js +18 -0
  69. package/package.json +1 -1
  70. package/styles/igniteui-angular-dark.css +1 -1
  71. package/styles/igniteui-angular.css +1 -1
  72. package/styles/igniteui-bootstrap-dark.css +1 -1
  73. package/styles/igniteui-bootstrap-light.css +1 -1
  74. package/styles/igniteui-dark-green.css +1 -1
  75. package/styles/igniteui-fluent-dark-excel.css +1 -1
  76. package/styles/igniteui-fluent-dark-word.css +1 -1
  77. package/styles/igniteui-fluent-dark.css +1 -1
  78. package/styles/igniteui-fluent-light-excel.css +1 -1
  79. package/styles/igniteui-fluent-light-word.css +1 -1
  80. package/styles/igniteui-fluent-light.css +1 -1
  81. package/styles/igniteui-indigo-dark.css +1 -1
  82. package/styles/igniteui-indigo-light.css +1 -1
  83. package/styles/maps/igniteui-angular-dark.css.map +1 -1
  84. package/styles/maps/igniteui-angular.css.map +1 -1
  85. package/styles/maps/igniteui-bootstrap-dark.css.map +1 -1
  86. package/styles/maps/igniteui-bootstrap-light.css.map +1 -1
  87. package/styles/maps/igniteui-dark-green.css.map +1 -1
  88. package/styles/maps/igniteui-fluent-dark-excel.css.map +1 -1
  89. package/styles/maps/igniteui-fluent-dark-word.css.map +1 -1
  90. package/styles/maps/igniteui-fluent-dark.css.map +1 -1
  91. package/styles/maps/igniteui-fluent-light-excel.css.map +1 -1
  92. package/styles/maps/igniteui-fluent-light-word.css.map +1 -1
  93. package/styles/maps/igniteui-fluent-light.css.map +1 -1
  94. package/styles/maps/igniteui-indigo-dark.css.map +1 -1
  95. package/styles/maps/igniteui-indigo-light.css.map +1 -1
@@ -24,6 +24,7 @@
24
24
  /// @param {Color} $hover-color [null] - The border and dot colors on hover.
25
25
  /// @param {Color} $fill-color-hover [null] - The checked dot color on hover.
26
26
  /// @param {Color} $fill-hover-border-color [null] - The checked border color on hover.
27
+ /// @param {Color} $focus-border-color [null] - The focus border color.
27
28
  /// @param {Color} $focus-outline-color [null] - The focus outlined color.
28
29
  /// @param {Color} $focus-outline-color-filled [null] - The focus outline color when radio is filled.
29
30
  /// @param {Color} $error-color [null] - The label, border and dot color in invalid state.
@@ -46,6 +47,7 @@
46
47
  $empty-fill-color: null,
47
48
  $fill-color: null,
48
49
  $fill-hover-border-color: null,
50
+ $focus-border-color: null,
49
51
  $focus-outline-color: null,
50
52
  $focus-outline-color-filled: null,
51
53
  $disabled-color: null,
@@ -67,7 +69,53 @@
67
69
  }
68
70
 
69
71
  $theme: digest-schema($radio-schema);
70
- $meta: map.get($theme, '_meta');
72
+ $variant: map.get($theme, '_meta', 'theme');
73
+
74
+ @if not($hover-color) and $empty-color {
75
+ $hover-color: hsl(from var(--empty-color) h s calc(l * 0.9));
76
+ }
77
+
78
+ @if not($fill-color-hover) and $fill-color {
79
+ $fill-color-hover: hsl(from var(--fill-color) h s calc(l * 0.9));
80
+ }
81
+
82
+ @if $variant != 'bootstrap' {
83
+ @if not($fill-hover-border-color) and $fill-color-hover {
84
+ $fill-hover-border-color: var(--fill-color-hover);
85
+ }
86
+ }
87
+
88
+ @if not($label-color-hover) and $label-color {
89
+ $label-color-hover: hsl(from var(--label-color) h s calc(l * 0.9));
90
+ }
91
+
92
+ @if not($error-color-hover) and $error-color {
93
+ $error-color-hover: hsl(from var(--error-color) h s calc(l * 0.9));
94
+ }
95
+
96
+ @if not($focus-outline-color-error) and $error-color {
97
+ $focus-outline-color-error: hsla(from var(--error-color) h s l / .5);
98
+ }
99
+
100
+ @if $variant == 'bootstrap' {
101
+ @if not($focus-border-color) and $fill-color {
102
+ $focus-border-color: var(--fill-color);
103
+ }
104
+
105
+ @if not($focus-outline-color) and $fill-color {
106
+ $focus-outline-color: hsla(from var(--fill-color) h s l / .5);
107
+ }
108
+ }
109
+
110
+ @if $variant == 'indigo' {
111
+ @if not($focus-outline-color) and $empty-color {
112
+ $focus-outline-color: hsla(from var(--empty-color) h s l / .5);
113
+ }
114
+
115
+ @if not($focus-outline-color-filled) and $fill-color {
116
+ $focus-outline-color-filled: hsla(from var(--fill-color) h s l / .5);
117
+ }
118
+ }
71
119
 
72
120
  @return extend($theme, (
73
121
  name: $name,
@@ -82,16 +130,12 @@
82
130
  disabled-fill-color: $disabled-fill-color,
83
131
  hover-color: $hover-color,
84
132
  fill-color-hover: $fill-color-hover,
133
+ focus-border-color: $focus-border-color,
85
134
  focus-outline-color: $focus-outline-color,
86
135
  focus-outline-color-filled: $focus-outline-color-filled,
87
136
  error-color: $error-color,
88
137
  error-color-hover: $error-color-hover,
89
138
  focus-outline-color-error: $focus-outline-color-error,
90
- theme: map.get($schema, '_meta', 'theme'),
91
- _meta: map.merge(if($meta, $meta, ()), (
92
- variant: map.get($schema, '_meta', 'theme'),
93
- theme-variant: map.get($schema, '_meta', 'variant')
94
- )),
95
139
  ));
96
140
  }
97
141
 
@@ -102,8 +146,8 @@
102
146
  @include css-vars($theme);
103
147
  @include scale-in-out($start-scale: .9);
104
148
 
105
- $theme-variant: map.get($theme, '_meta', 'theme-variant');
106
- $variant: map.get($theme, '_meta', 'variant');
149
+ $theme-variant: map.get($theme, '_meta', 'variant');
150
+ $variant: map.get($theme, '_meta', 'theme');
107
151
  $material-theme: $variant == 'material';
108
152
  $bootstrap-theme: $variant == 'bootstrap';
109
153
  $not-bootstrap-theme: $variant != 'bootstrap';
@@ -462,7 +506,7 @@
462
506
  box-shadow: 0 0 0 rem(4px) var-get($theme, 'focus-outline-color');
463
507
 
464
508
  &::after {
465
- border-color: color($color: 'primary', $variant: 200);
509
+ border-color: var-get($theme, 'focus-border-color');
466
510
  }
467
511
  }
468
512
  }
@@ -478,7 +522,7 @@
478
522
  %igx-checkbox--focused-hovered {
479
523
  @if $variant == 'bootstrap' {
480
524
  %radio-composite:after {
481
- border-color: color($color: 'primary', $variant: 300);
525
+ border-color: hsl(from var-get($theme, 'focus-border-color') h calc(s * 1.12) calc(l * 0.82));
482
526
  }
483
527
  }
484
528
  }
@@ -37,7 +37,6 @@
37
37
  name: $name,
38
38
  selector: $selector,
39
39
  color: $color,
40
- theme: map.get($schema, '_meta', 'theme'),
41
40
  ));
42
41
  }
43
42
 
@@ -81,7 +81,6 @@
81
81
  sb-corner-bg: $sb-corner-bg,
82
82
  sb-corner-border-color: $sb-corner-border-color,
83
83
  sb-corner-border-size: $sb-corner-border-size,
84
- theme: map.get($schema, '_meta', 'theme'),
85
84
  ));
86
85
  }
87
86
 
@@ -46,7 +46,39 @@
46
46
  }
47
47
 
48
48
  $theme: digest-schema($select-schema);
49
- $meta: map.get($theme, '_meta');
49
+ $variant: map.get($theme, '_meta', 'theme');
50
+
51
+ @if not($toggle-button-foreground) and $toggle-button-background {
52
+ $toggle-button-foreground: adaptive-contrast(var(--toggle-button-background));
53
+ }
54
+
55
+ @if not($toggle-button-foreground-filled) and $toggle-button-background {
56
+ $toggle-button-foreground-filled: adaptive-contrast(var(--toggle-button-background));
57
+ }
58
+
59
+ @if $variant == 'material' {
60
+ @if not($toggle-button-background-focus) and $toggle-button-background {
61
+ $toggle-button-background-focus: hsl(from var(--toggle-button-background) h s calc(l * 0.9));
62
+ }
63
+ } @else {
64
+ @if not($toggle-button-background-focus) and $toggle-button-background {
65
+ $toggle-button-background-focus: var(--toggle-button-background);
66
+ }
67
+ }
68
+
69
+ @if $variant == 'bootstrap' or $variant == 'indigo' {
70
+ @if not($toggle-button-background-focus--border) and $toggle-button-background {
71
+ $toggle-button-background-focus--border: var(--toggle-button-background)
72
+ }
73
+
74
+ @if not($toggle-button-foreground-focus) and $toggle-button-background-focus--border {
75
+ $toggle-button-foreground-focus: adaptive-contrast(var(--toggle-button-background-focus--border));
76
+ }
77
+ } @else {
78
+ @if not($toggle-button-foreground-focus) and $toggle-button-background-focus {
79
+ $toggle-button-foreground-focus: adaptive-contrast(var(--toggle-button-background-focus));
80
+ }
81
+ }
50
82
 
51
83
  @return extend($theme, (
52
84
  name: $name,
@@ -59,10 +91,6 @@
59
91
  toggle-button-foreground-disabled: $toggle-button-foreground-disabled,
60
92
  toggle-button-foreground-filled: $toggle-button-foreground-filled,
61
93
  toggle-button-background-focus--border: $toggle-button-background-focus--border,
62
- theme: map.get($schema, '_meta', 'theme'),
63
- _meta: map.merge(if($meta, $meta, ()), (
64
- variant: map.get($schema, '_meta', 'theme')
65
- )),
66
94
  ));
67
95
  }
68
96
 
@@ -71,7 +99,7 @@
71
99
  /// @param {Map} $theme - The theme used to style the component.
72
100
  @mixin select($theme) {
73
101
  @include css-vars($theme);
74
- $variant: map.get($theme, '_meta', 'variant');
102
+ $variant: map.get($theme, '_meta', 'theme');
75
103
 
76
104
  %igx-select {
77
105
  position: relative;
@@ -127,7 +155,7 @@
127
155
  }
128
156
 
129
157
  .igx-input-group.igx-input-group--focused:not(.igx-input-group--box) {
130
- @if $variant != 'fluent' {
158
+ @if $variant != 'fluent' and $variant != 'material' {
131
159
  %igx-select__toggle-button {
132
160
  background: var-get($theme, 'toggle-button-background-focus--border');
133
161
  }
@@ -71,10 +71,99 @@
71
71
  }
72
72
 
73
73
  $theme: digest-schema($slider-schema);
74
- $meta: map.get($theme, '_meta');
74
+ $variant: map.get($theme, '_meta', 'theme');
75
+
76
+ @if $variant == 'fluent' or $variant == 'indigo' {
77
+ @if not($thumb-border-color) and $track-color {
78
+ $thumb-border-color: var(--track-color);
79
+ }
80
+
81
+ @if not($track-color) and $thumb-border-color {
82
+ $track-color: var(--thumb-border-color);
83
+ }
84
+
85
+ @if not($thumb-border-hover-color) and $thumb-border-color {
86
+ $thumb-border-hover-color: hsl(from var(--thumb-border-color) h s calc(l * 1.1));
87
+ }
88
+
89
+ @if $variant == 'fluent' {
90
+ @if not($thumb-focus-color) and $thumb-border-color {
91
+ $thumb-focus-color: hsl(from var(--thumb-border-color) h s calc(l * 1.2));
92
+ }
93
+ } @else {
94
+ @if not($thumb-focus-color) and $thumb-border-color {
95
+ $thumb-focus-color: hsla(from var(--thumb-border-color) h s l / 0.3);
96
+ }
97
+ }
98
+ }
99
+
100
+ @if $variant == 'material' {
101
+ @if not($thumb-color) and $track-color {
102
+ $thumb-color: var(--track-color);
103
+ }
104
+
105
+ @if not($track-color) and $thumb-color {
106
+ $track-color: var(--thumb-color);
107
+ }
108
+
109
+ @if not($base-track-color) and $track-color {
110
+ $base-track-color: hsla(from var(--track-color) h s l / 0.4);
111
+ }
112
+ }
113
+
114
+ @if $variant == 'bootstrap' {
115
+ @if not($thumb-border-color) and $thumb-color {
116
+ $thumb-border-color: var(--thumb-color);
117
+ }
118
+
119
+ @if not($thumb-focus-color) and $thumb-color {
120
+ $thumb-focus-color: hsla(from var(--thumb-color) h s l / 0.5);
121
+ }
122
+ }
123
+
124
+ @if not($track-hover-color) and $track-color {
125
+ $track-hover-color: hsl(from var(--track-color) h s calc(l * 1.1));
126
+ }
127
+
128
+ @if $variant != 'bootstrap' {
129
+ @if not($label-background-color) and $track-color {
130
+ $label-background-color: var(--track-color);
131
+ }
132
+ } @else {
133
+ @if not($label-background-color) and $thumb-color {
134
+ $label-background-color: var(--thumb-color);
135
+ }
136
+ }
137
+
75
138
 
76
139
  @if not($label-text-color) and $label-background-color {
77
- $label-text-color: text-contrast($label-background-color);
140
+ $label-text-color: adaptive-contrast($label-background-color);
141
+ }
142
+
143
+ @if $variant != 'indigo' {
144
+ @if not($base-track-hover-color) and $base-track-color {
145
+ $base-track-hover-color: var(--base-track-color);
146
+ }
147
+ } @else {
148
+ @if not($base-track-hover-color) and $base-track-color {
149
+ $base-track-hover-color: hsl(from var(--base-track-color) h s calc(l * 0.8));
150
+ }
151
+ }
152
+
153
+ @if not($disabled-base-track-color) and $base-track-color {
154
+ $disabled-base-track-color: hsla(from var(--base-track-color) h s l / 0.5);
155
+ }
156
+
157
+ @if not($disabled-fill-track-color) and $track-color {
158
+ $disabled-fill-track-color: hsla(from var(--track-color) h s l / 0.5);
159
+ }
160
+
161
+ @if not($disabled-thumb-color) and $thumb-color {
162
+ $disabled-thumb-color: hsl(from var(--thumb-color) h calc(s * 0.5) calc(l * 1.2));
163
+ }
164
+
165
+ @if not($thumb-disabled-border-color) and $thumb-border-color {
166
+ $thumb-disabled-border-color: hsla(from var(--thumb-border-color) h s l / 0.5);
78
167
  }
79
168
 
80
169
  @return extend($theme, (
@@ -98,10 +187,6 @@
98
187
  disabled-fill-track-color: $disabled-fill-track-color,
99
188
  tick-label-color: $tick-label-color,
100
189
  tick-color: $tick-color,
101
- theme: map.get($schema, '_meta', 'theme'),
102
- _meta: map.merge(if($meta, $meta, ()), (
103
- variant: map.get($schema, '_meta', 'theme')
104
- )),
105
190
  ));
106
191
  }
107
192
 
@@ -111,7 +196,7 @@
111
196
  @mixin slider($theme) {
112
197
  @include css-vars($theme);
113
198
 
114
- $variant: map.get($theme, '_meta', 'variant');
199
+ $variant: map.get($theme, '_meta', 'theme');
115
200
 
116
201
  $slider-height: rem(48px);
117
202
  $ripple-size: rem(40px);
@@ -42,14 +42,13 @@
42
42
  }
43
43
 
44
44
  $theme: digest-schema($snackbar-schema);
45
- $meta: map.get($theme, '_meta');
46
45
 
47
46
  @if not($button-color) and $background {
48
- $button-color: text-contrast($background);
47
+ $button-color: adaptive-contrast(var(--background));
49
48
  }
50
49
 
51
50
  @if not($text-color) and $background {
52
- $text-color: text-contrast($background);
51
+ $text-color: adaptive-contrast(var(--background));
53
52
  }
54
53
 
55
54
  @if not($shadow) {
@@ -64,10 +63,6 @@
64
63
  text-color: $text-color,
65
64
  button-color: $button-color,
66
65
  shadow: $shadow,
67
- theme: map.get($schema, '_meta', 'theme'),
68
- _meta: map.merge(if($meta, $meta, ()), (
69
- variant: map.get($schema, '_meta', 'theme')
70
- )),
71
66
  ));
72
67
  }
73
68
 
@@ -78,7 +73,7 @@
78
73
  @include css-vars($theme);
79
74
  @include fade-in();
80
75
 
81
- $variant: map.get($theme, '_meta', 'variant');
76
+ $variant: map.get($theme, '_meta', 'theme');
82
77
 
83
78
  $snackbar-min-height: rem(48px);
84
79
  $snackbar-padding: rem(7px) rem(24px);
@@ -42,16 +42,27 @@
42
42
  }
43
43
 
44
44
  $theme: digest-schema($splitter-schema);
45
- $meta: map.get($theme, '_meta');
45
+ $variant: map.get($theme, '_meta', 'theme');
46
46
 
47
47
  @if not($handle-color) and $bar-color {
48
- $handle-color: text-contrast($bar-color);
48
+ $handle-color: adaptive-contrast(var(--bar-color));
49
49
  }
50
50
 
51
51
  @if not($expander-color) and $bar-color {
52
- $expander-color: text-contrast($bar-color);
52
+ $expander-color: adaptive-contrast(var(--bar-color));
53
53
  }
54
54
 
55
+ @if $variant != 'indigo' {
56
+ @if not($focus-color) and $bar-color {
57
+ $focus-color: hsl(from var(--bar-color) h s calc(l * 0.7));
58
+ }
59
+ } @else {
60
+ @if not($focus-color) and $bar-color {
61
+ $focus-color: var(--bar-color);
62
+ }
63
+ }
64
+
65
+
55
66
  @return extend($theme, (
56
67
  name: $name,
57
68
  bar-color: $bar-color,
@@ -60,10 +71,6 @@
60
71
  border-radius: $border-radius,
61
72
  focus-color: $focus-color,
62
73
  size: $size,
63
- theme: map.get($schema, '_meta', 'theme'),
64
- _meta: map.merge(if($meta, $meta, ()), (
65
- variant: map.get($schema, '_meta', 'theme')
66
- )),
67
74
  ));
68
75
  }
69
76
 
@@ -77,7 +84,7 @@
77
84
  $debug-hitbox: false;
78
85
  $hitbox-debug-color: rgba(coral, .24);
79
86
 
80
- $variant: map.get($theme, '_meta', 'variant');
87
+ $variant: map.get($theme, '_meta', 'theme');
81
88
 
82
89
  //splitter-size + borders
83
90
  $splitter-size: unitless(map.get($theme, 'size')) + 2;
@@ -186,50 +186,222 @@
186
186
  }
187
187
 
188
188
  $theme: digest-schema($stepper-schema);
189
- $meta: map.get($theme, '_meta');
190
189
 
191
- @if not($indicator-background) and $step-background {
192
- $indicator-background: text-contrast($step-background);
190
+ //default step
191
+ @if not($step-hover-background) and $step-background {
192
+ $step-hover-background: hsl(from var(--step-background) h s calc(l * 0.8));
193
193
  }
194
194
 
195
- @if not($indicator-color) and $indicator-background {
196
- $indicator-color: text-contrast($indicator-background);
195
+ @if not($step-focus-background) and $step-background {
196
+ $step-focus-background: hsl(from var(--step-background) h s calc(l * 0.9));
197
197
  }
198
198
 
199
- @if not($complete-indicator-color) and $complete-indicator-background {
200
- $complete-indicator-color: text-contrast($complete-indicator-background);
199
+ @if not($indicator-background) and $step-background {
200
+ $indicator-background: hsla(from adaptive-contrast(var(--step-background)) h s l / .6);
201
201
  }
202
202
 
203
- @if not($invalid-indicator-color) and $invalid-indicator-background {
204
- $invalid-indicator-color: text-contrast($invalid-indicator-background);
203
+ @if not($indicator-outline) and $indicator-background {
204
+ $indicator-outline: var(--indicator-background);
205
205
  }
206
206
 
207
- @if not($current-indicator-color) and $current-indicator-background {
208
- $current-indicator-color: text-contrast($current-indicator-background);
207
+ @if not($indicator-color) and $indicator-background {
208
+ $indicator-color: adaptive-contrast(var(--indicator-background));
209
209
  }
210
210
 
211
211
  @if not($title-color) and $step-background {
212
- $title-color: text-contrast($step-background);
212
+ $title-color: adaptive-contrast(var(--step-background));
213
213
  }
214
214
 
215
215
  @if not($subtitle-color) and $step-background {
216
- $subtitle-color: text-contrast($step-background);
216
+ $subtitle-color: adaptive-contrast(var(--step-background));
217
217
  }
218
218
 
219
219
  @if not($title-hover-color) and $step-hover-background {
220
- $title-hover-color: text-contrast($step-hover-background);
220
+ $title-hover-color: adaptive-contrast(var(--step-hover-background));
221
221
  }
222
222
 
223
223
  @if not($subtitle-hover-color) and $step-hover-background {
224
- $subtitle-hover-color: text-contrast($step-hover-background);
224
+ $subtitle-hover-color: adaptive-contrast(var(--step-hover-background));
225
225
  }
226
226
 
227
227
  @if not($title-focus-color) and $step-focus-background {
228
- $title-focus-color: text-contrast($step-focus-background);
228
+ $title-focus-color: adaptive-contrast(var(--step-focus-background));
229
229
  }
230
230
 
231
231
  @if not($subtitle-focus-color) and $step-focus-background {
232
- $subtitle-focus-color: text-contrast($step-focus-background);
232
+ $subtitle-focus-color: adaptive-contrast(var(--step-focus-background));
233
+ }
234
+
235
+ //current step
236
+ @if not($current-step-background) and $step-background {
237
+ $current-step-background: var(--step-background);
238
+ }
239
+
240
+ @if not($current-step-hover-background) and $current-step-background {
241
+ $current-step-hover-background: hsl(from var(--current-step-background) h s calc(l * 0.8));
242
+ }
243
+
244
+ @if not($current-step-focus-background) and $current-step-background {
245
+ $current-step-focus-background: hsl(from var(--current-step-background) h s calc(l * 0.9));
246
+ }
247
+
248
+ @if not($current-indicator-background) and $current-step-background {
249
+ $current-indicator-background: hsl(from var(--current-step-background) h s calc(l * 0.6));
250
+ }
251
+
252
+ @if not($current-indicator-outline) and $current-indicator-background {
253
+ $current-indicator-outline: var(--current-indicator-background);
254
+ }
255
+
256
+ @if not($current-indicator-color) and $current-indicator-background {
257
+ $current-indicator-color: adaptive-contrast(var(--current-indicator-background));
258
+ }
259
+
260
+ @if not($current-title-color) and $current-step-background {
261
+ $current-title-color: adaptive-contrast(var(--current-step-background));
262
+ }
263
+
264
+ @if not($current-subtitle-color) and $current-step-background {
265
+ $current-subtitle-color: adaptive-contrast(var(--current-step-background));
266
+ }
267
+
268
+ @if not($current-title-hover-color) and $current-step-hover-background {
269
+ $current-title-hover-color: adaptive-contrast(var(--current-step-hover-background));
270
+ }
271
+
272
+ @if not($current-subtitle-hover-color) and $current-step-hover-background {
273
+ $current-subtitle-hover-color: adaptive-contrast(var(--current-step-hover-background));
274
+ }
275
+
276
+ @if not($current-title-focus-color) and $current-step-focus-background {
277
+ $current-title-focus-color: adaptive-contrast(var(--current-step-focus-background));
278
+ }
279
+
280
+ @if not($current-subtitle-focus-color) and $current-step-focus-background {
281
+ $current-subtitle-focus-color: adaptive-contrast(var(--current-step-focus-background));
282
+ }
283
+
284
+ //invalid step
285
+ @if not($invalid-step-background) and $step-background {
286
+ $invalid-step-background: var(--step-background);
287
+ }
288
+
289
+ @if not($invalid-step-hover-background) and $invalid-step-background {
290
+ $invalid-step-hover-background: hsl(from var(--invalid-step-background) h s calc(l * 0.8));
291
+ }
292
+
293
+ @if not($invalid-step-focus-background) and $invalid-step-background {
294
+ $invalid-step-focus-background: hsl(from var(--invalid-step-background) h s calc(l * 0.9));
295
+ }
296
+
297
+ @if not($invalid-indicator-background) and not($step-background) and $invalid-step-background {
298
+ $invalid-indicator-background: adaptive-contrast(var(--invalid-step-background));
299
+ }
300
+
301
+ @if not($invalid-indicator-outline) and $invalid-indicator-background {
302
+ $invalid-indicator-outline: var(--invalid-indicator-background);
303
+ }
304
+
305
+ @if not($invalid-indicator-color) and not($step-background) and $invalid-indicator-background {
306
+ $invalid-indicator-color: adaptive-contrast(var(--invalid-indicator-background));
307
+ }
308
+
309
+ @if not($invalid-title-color) and $invalid-indicator-background {
310
+ $invalid-title-color: var(--invalid-indicator-background);
311
+ }
312
+
313
+ @if not($invalid-subtitle-color) and $invalid-indicator-background {
314
+ $invalid-subtitle-color: var(--invalid-indicator-background);
315
+ }
316
+
317
+ @if not($invalid-title-hover-color) and $invalid-indicator-background {
318
+ $invalid-title-hover-color: var(--invalid-indicator-background);
319
+ }
320
+
321
+ @if not($invalid-subtitle-hover-color) and $invalid-indicator-background {
322
+ $invalid-subtitle-hover-color: var(--invalid-indicator-background);
323
+ }
324
+
325
+ @if not($invalid-title-focus-color) and $invalid-indicator-background {
326
+ $invalid-title-focus-color: var(--invalid-indicator-background);
327
+ }
328
+
329
+ @if not($invalid-subtitle-focus-color) and $invalid-indicator-background {
330
+ $invalid-subtitle-focus-color: var(--invalid-indicator-background);
331
+ }
332
+
333
+ //completed step
334
+ @if not($complete-step-background) and $step-background {
335
+ $complete-step-background: var(--step-background);
336
+ }
337
+
338
+ @if not($complete-step-hover-background) and $complete-step-background {
339
+ $complete-step-hover-background: hsl(from var(--complete-step-background) h s calc(l * 0.8));
340
+ }
341
+
342
+ @if not($complete-step-focus-background) and $complete-step-background {
343
+ $complete-step-focus-background: hsl(from var(--complete-step-background) h s calc(l * 0.9));
344
+ }
345
+
346
+ @if not($complete-indicator-background) and $complete-step-background {
347
+ $complete-indicator-background: adaptive-contrast(var(--complete-step-background));
348
+ }
349
+
350
+ @if not($complete-indicator-color) and $complete-indicator-background {
351
+ $complete-indicator-color: adaptive-contrast(var(--complete-indicator-background));
352
+ }
353
+
354
+ @if not($complete-title-color) and $complete-step-background {
355
+ $complete-title-color: adaptive-contrast(var(--complete-step-background));
356
+ }
357
+
358
+ @if not($complete-subtitle-color) and $complete-step-background {
359
+ $complete-subtitle-color: adaptive-contrast(var(--complete-step-background));
360
+ }
361
+
362
+ @if not($complete-title-hover-color) and $complete-step-hover-background {
363
+ $complete-title-hover-color: adaptive-contrast(var(--complete-step-hover-background));
364
+ }
365
+
366
+ @if not($complete-subtitle-hover-color) and $complete-step-hover-background {
367
+ $complete-subtitle-hover-color: adaptive-contrast(var(--complete-step-hover-background));
368
+ }
369
+
370
+ @if not($complete-title-focus-color) and $complete-step-focus-background {
371
+ $complete-title-focus-color: adaptive-contrast(var(--complete-step-focus-background));
372
+ }
373
+
374
+ @if not($complete-subtitle-focus-color) and $complete-step-focus-background {
375
+ $complete-subtitle-focus-color: adaptive-contrast(var(--complete-step-focus-background));
376
+ }
377
+
378
+ //disabled step
379
+ @if not($disabled-indicator-background) and $step-background {
380
+ $disabled-indicator-background: hsla(from (adaptive-contrast(var(--step-background)) h s l / 0.5));
381
+ }
382
+
383
+ @if not($disabled-indicator-color) and $disabled-indicator-background {
384
+ $disabled-indicator-color: hsla(from (adaptive-contrast(var(--disabled-indicator-background)) h s l / 0.5));
385
+ }
386
+
387
+ @if not($disabled-indicator-outline) and $disabled-indicator-background {
388
+ $disabled-indicator-outline: var(--disabled-indicator-background);
389
+ }
390
+
391
+ @if not($disabled-title-color) and $step-background {
392
+ $disabled-title-color: hsla(from (adaptive-contrast(var(--step-background)) h s l / 0.3));
393
+ }
394
+
395
+ @if not($disabled-subtitle-color) and $step-background {
396
+ $disabled-subtitle-color: hsla(from (adaptive-contrast(var(--step-background)) h s l / 0.3));
397
+ }
398
+
399
+ @if not($step-separator-color) and $step-background {
400
+ $step-separator-color: var(--step-background);
401
+ }
402
+
403
+ @if not($step-separator-color) and $indicator-background {
404
+ $step-separator-color: var(--indicator-background);
233
405
  }
234
406
 
235
407
  @if not($border-radius-indicator) {
@@ -318,10 +490,6 @@
318
490
  // Border-radius
319
491
  border-radius-indicator: $border-radius-indicator,
320
492
  border-radius-step-header: $border-radius-step-header,
321
- theme: map.get($schema, '_meta', 'theme'),
322
- _meta: map.merge(if($meta, $meta, ()), (
323
- variant: map.get($schema, '_meta', 'theme')
324
- )),
325
493
  ));
326
494
  }
327
495
 
@@ -331,7 +499,7 @@
331
499
  @mixin stepper($theme) {
332
500
  @include css-vars($theme);
333
501
 
334
- $variant: map.get($theme, '_meta', 'variant');
502
+ $variant: map.get($theme, '_meta', 'theme');
335
503
 
336
504
  $indicator-size: map.get((
337
505
  'material': rem(24px),