@lumx/core 2.0.3 → 2.1.0-alpha-css-test2

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 (37) hide show
  1. package/css/_retro-compat-v2.css +117 -0
  2. package/css/design-tokens.css +768 -92
  3. package/css/material.css +56 -57
  4. package/js/constants/design-tokens.js +3406 -414
  5. package/js/constants/design-tokens.min.js +1 -1
  6. package/js/constants/design-tokens.min.js.map +1 -1
  7. package/js/constants/design-tokens.ts +3386 -394
  8. package/lumx.css +1 -1
  9. package/lumx.min.css +1 -1
  10. package/package.json +2 -2
  11. package/scss/_design-tokens.scss +1670 -224
  12. package/scss/_retro-compat-v2.scss +95 -0
  13. package/scss/components/button/_index.scss +6 -42
  14. package/scss/components/button/_mixins.scss +144 -29
  15. package/scss/components/checkbox/_mixins.scss +9 -9
  16. package/scss/components/chip/_index.scss +2 -2
  17. package/scss/components/chip/_mixins.scss +2 -2
  18. package/scss/components/image-block/_index.scss +4 -5
  19. package/scss/components/input-helper/_mixins.scss +3 -3
  20. package/scss/components/input-label/_mixins.scss +3 -3
  21. package/scss/components/progress/_index.scss +2 -2
  22. package/scss/components/radio-button/_mixins.scss +12 -12
  23. package/scss/components/select/_index.scss +99 -10
  24. package/scss/components/select/_mixins.scss +6 -1
  25. package/scss/components/skeleton/_index.scss +2 -2
  26. package/scss/components/switch/_mixins.scss +15 -15
  27. package/scss/components/tabs/_index.scss +27 -55
  28. package/scss/components/tabs/_mixins.scss +66 -31
  29. package/scss/components/text-field/_index.scss +114 -9
  30. package/scss/components/text-field/_mixins.scss +42 -66
  31. package/scss/components/user-block/_index.scss +2 -9
  32. package/scss/core/base/_variables.scss +1 -0
  33. package/scss/core/state/_mixins.scss +11 -7
  34. package/scss/core/typography/_index.scss +9 -2
  35. package/scss/core/typography/_mixins.scss +13 -4
  36. package/scss/core/typography/_variables.scss +2 -1
  37. package/scss/lumx.scss +4 -0
@@ -5,15 +5,30 @@
5
5
  .#{$lumx-base-prefix}-select {
6
6
  $self: &;
7
7
 
8
- padding-top: var(--lumx-text-field-padding-top);
9
- padding-bottom: var(--lumx-text-field-padding-bottom);
8
+ --lumx-text-field-wrapper-padding-vertical: calc(
9
+ (var(--lumx-text-field-input-min-height) - var(--lumx-material-text-field-input-content-line-height)) / 2
10
+ );
11
+
12
+ padding-top: var(--lumx-material-text-field-padding-top);
13
+ padding-bottom: var(--lumx-material-text-field-padding-bottom);
10
14
 
11
15
  &__header {
12
- margin-bottom: var(--lumx-text-field-header-margin-bottom);
16
+ margin-bottom: var(--lumx-material-text-field-header-wrapper-margin-bottom);
13
17
  }
14
18
 
15
19
  &__label {
16
20
  @include lumx-text-field-label;
21
+
22
+ #{$self}--theme-light & {
23
+ @include lumx-text-field-label-color(
24
+ lumx-base-const('state', 'DEFAULT'),
25
+ lumx-base-const('theme', 'LIGHT')
26
+ );
27
+ }
28
+
29
+ #{$self}--theme-dark & {
30
+ @include lumx-text-field-label-color(lumx-base-const('state', 'DEFAULT'), lumx-base-const('theme', 'DARK'));
31
+ }
17
32
  }
18
33
 
19
34
  &__wrapper {
@@ -35,19 +50,33 @@
35
50
  &__input-native {
36
51
  #{$self}--theme-light & {
37
52
  @include lumx-text-field-input-native(lumx-base-const('theme', 'LIGHT'));
53
+ @include lumx-text-field-input-content-color(
54
+ lumx-base-const('state', 'DEFAULT'),
55
+ lumx-base-const('theme', 'LIGHT')
56
+ );
38
57
  }
39
58
 
40
59
  #{$self}--theme-dark & {
41
60
  @include lumx-text-field-input-native(lumx-base-const('theme', 'DARK'));
61
+ @include lumx-text-field-input-content-color(
62
+ lumx-base-const('state', 'DEFAULT'),
63
+ lumx-base-const('theme', 'DARK')
64
+ );
42
65
  }
43
66
 
44
67
  &--placeholder {
45
68
  #{$self}--theme-light & {
46
- @include lumx-text-field-placeholder(lumx-base-const('theme', 'LIGHT'));
69
+ @include lumx-text-field-input-placeholder-color(
70
+ lumx-base-const('state', 'DEFAULT'),
71
+ lumx-base-const('theme', 'LIGHT')
72
+ );
47
73
  }
48
74
 
49
75
  #{$self}--theme-dark & {
50
- @include lumx-text-field-placeholder(lumx-base-const('theme', 'DARK'));
76
+ @include lumx-text-field-input-placeholder-color(
77
+ lumx-base-const('state', 'DEFAULT'),
78
+ lumx-base-const('theme', 'DARK')
79
+ );
51
80
  }
52
81
  }
53
82
 
@@ -87,7 +116,7 @@
87
116
  @include lumx-text-field-input-native(lumx-base-const('theme', 'LIGHT'));
88
117
 
89
118
  &::placeholder {
90
- @include lumx-text-field-placeholder(lumx-base-const('theme', 'LIGHT'));
119
+ color: lumx-color-variant('dark', 'L2');
91
120
  }
92
121
  }
93
122
  }
@@ -124,23 +153,83 @@
124
153
  }
125
154
 
126
155
  // Hover state
127
- .#{$lumx-base-prefix}-select--theme-light .#{$lumx-base-prefix}-select__wrapper:hover {
128
- @include lumx-text-field-wrapper-state(lumx-base-const('state', 'HOVER'), lumx-base-const('theme', 'LIGHT'));
156
+ .#{$lumx-base-prefix}-select--theme-light {
157
+ .#{$lumx-base-prefix}-select__wrapper:hover {
158
+ @include lumx-text-field-wrapper-state(lumx-base-const('state', 'HOVER'), lumx-base-const('theme', 'LIGHT'));
159
+ }
160
+
161
+ .#{$lumx-base-prefix}-text-field__input-native {
162
+ @include lumx-text-field-input-content-color(
163
+ lumx-base-const('state', 'HOVER'),
164
+ lumx-base-const('theme', 'LIGHT')
165
+ );
166
+
167
+ &--placeholder {
168
+ @include lumx-text-field-input-placeholder-color(
169
+ lumx-base-const('state', 'HOVER'),
170
+ lumx-base-const('theme', 'LIGHT')
171
+ );
172
+ }
173
+ }
129
174
  }
130
175
 
131
- .#{$lumx-base-prefix}-select--theme-dark .#{$lumx-base-prefix}-select__wrapper:hover {
132
- @include lumx-text-field-wrapper-state(lumx-base-const('state', 'HOVER'), lumx-base-const('theme', 'DARK'));
176
+ .#{$lumx-base-prefix}-select--theme-dark {
177
+ .#{$lumx-base-prefix}-select__wrapper:hover {
178
+ @include lumx-text-field-wrapper-state(lumx-base-const('state', 'HOVER'), lumx-base-const('theme', 'DARK'));
179
+ }
180
+
181
+ .#{$lumx-base-prefix}-text-field__input-native {
182
+ @include lumx-text-field-input-content-color(
183
+ lumx-base-const('state', 'HOVER'),
184
+ lumx-base-const('theme', 'DARK')
185
+ );
186
+
187
+ &--placeholder {
188
+ @include lumx-text-field-input-placeholder-color(
189
+ lumx-base-const('state', 'HOVER'),
190
+ lumx-base-const('theme', 'DARK')
191
+ );
192
+ }
193
+ }
133
194
  }
134
195
 
135
196
  // Focus state
136
197
  .#{$lumx-base-prefix}-select--theme-light.#{$lumx-base-prefix}-select--is-open .#{$lumx-base-prefix}-select__wrapper,
137
198
  .#{$lumx-base-prefix}-select--theme-light .#{$lumx-base-prefix}-select__wrapper:focus {
138
199
  @include lumx-text-field-wrapper-state(lumx-base-const('state', 'FOCUS'), lumx-base-const('theme', 'LIGHT'));
200
+
201
+ .#{$lumx-base-prefix}-text-field__input-native {
202
+ @include lumx-text-field-input-content-color(
203
+ lumx-base-const('state', 'FOCUS'),
204
+ lumx-base-const('theme', 'LIGHT')
205
+ );
206
+
207
+ &--placeholder {
208
+ @include lumx-text-field-input-placeholder-color(
209
+ lumx-base-const('state', 'FOCUS'),
210
+ lumx-base-const('theme', 'LIGHT')
211
+ );
212
+ }
213
+ }
139
214
  }
140
215
 
141
216
  .#{$lumx-base-prefix}-select--theme-dark.#{$lumx-base-prefix}-select--is-open .#{$lumx-base-prefix}-select__wrapper,
142
217
  .#{$lumx-base-prefix}-select--theme-dark .#{$lumx-base-prefix}-select__wrapper:focus {
143
218
  @include lumx-text-field-wrapper-state(lumx-base-const('state', 'FOCUS'), lumx-base-const('theme', 'DARK'));
219
+
220
+ .#{$lumx-base-prefix}-text-field__input-native {
221
+ @include lumx-text-field-input-content-color(
222
+ lumx-base-const('state', 'FOCUS'),
223
+ lumx-base-const('theme', 'DARK')
224
+ );
225
+
226
+ &--placeholder {
227
+ @include lumx-text-field-input-placeholder-color(
228
+ lumx-base-const('state', 'FOCUS'),
229
+ lumx-base-const('theme', 'DARK')
230
+ );
231
+ }
232
+ }
144
233
  }
145
234
 
146
235
  /* Select validity
@@ -1,5 +1,10 @@
1
1
  @mixin lumx-select-input-indicator($theme) {
2
- @include lumx-text-field-input-clear;
2
+ flex-shrink: 0;
3
+ margin-top: calc(
4
+ var(--lumx-text-field-wrapper-padding-vertical) +
5
+ ((var(--lumx-material-text-field-input-content-line-height) - var(--lumx-size-s)) / 2)
6
+ );
7
+ margin-left: $lumx-spacing-unit / 2;
3
8
 
4
9
  @if $theme == lumx-base-const('theme', 'LIGHT') {
5
10
  color: lumx-color-variant('dark', 'N');
@@ -112,9 +112,9 @@ $typography-skeleton-size: (
112
112
  }
113
113
  }
114
114
 
115
- @each $key, $style in $lumx-typography-styles {
115
+ @each $key, $style in $lumx-typography-interface {
116
116
  .#{$lumx-base-prefix}-skeleton-typography--typography-#{$key} {
117
- height: map-get(map-get($lumx-typography-styles, $key), 'line-height');
117
+ height: map-get(map-get($lumx-typography-interface, $key), 'line-height');
118
118
  }
119
119
 
120
120
  .#{$lumx-base-prefix}-skeleton-typography--typography-#{$key} .#{$lumx-base-prefix}-skeleton-typography__inner {
@@ -1,7 +1,7 @@
1
1
  @mixin lumx-switch-input-wrapper() {
2
2
  position: relative;
3
- width: var(--lumx-switch-wrapper-width);
4
- height: var(--lumx-switch-wrapper-height);
3
+ width: var(--lumx-material-switch-wrapper-width);
4
+ height: var(--lumx-material-switch-wrapper-height);
5
5
  }
6
6
 
7
7
  @mixin lumx-switch-input-native() {
@@ -9,8 +9,8 @@
9
9
  z-index: 4;
10
10
  top: 0;
11
11
  left: 0;
12
- width: var(--lumx-switch-wrapper-width);
13
- height: var(--lumx-switch-wrapper-height);
12
+ width: var(--lumx-material-switch-wrapper-width);
13
+ height: var(--lumx-material-switch-wrapper-height);
14
14
  padding: 0;
15
15
  margin: 0;
16
16
  opacity: 0;
@@ -19,11 +19,11 @@
19
19
  @mixin lumx-switch-placeholder() {
20
20
  position: absolute;
21
21
  z-index: 1;
22
- top: calc(calc(var(--lumx-switch-wrapper-height) - var(--lumx-switch-control-height)) / 2);
22
+ top: calc((var(--lumx-material-switch-wrapper-height) - var(--lumx-material-switch-control-height)) / 2);
23
23
  left: 0;
24
- width: var(--lumx-switch-control-width);
25
- height: var(--lumx-switch-control-height);
26
- border-radius: calc(var(--lumx-switch-control-height) / 2);
24
+ width: var(--lumx-material-switch-control-width);
25
+ height: var(--lumx-material-switch-control-height);
26
+ border-radius: calc(var(--lumx-material-switch-control-height) / 2);
27
27
  }
28
28
 
29
29
  @mixin lumx-switch-input-background($status) {
@@ -33,7 +33,7 @@
33
33
  right: 0;
34
34
  bottom: 0;
35
35
  left: 0;
36
- border-radius: calc(var(--lumx-switch-control-height) / 2);
36
+ border-radius: calc(var(--lumx-material-switch-control-height) / 2);
37
37
 
38
38
  @if $status == 'unchecked' {
39
39
  border-width: 2px;
@@ -44,13 +44,13 @@
44
44
  @mixin lumx-switch-input-indicator($status, $theme) {
45
45
  position: absolute;
46
46
  z-index: 3;
47
- top: calc(calc(var(--lumx-switch-control-height) - var(--lumx-switch-indicator-size)) / 2);
48
- width: var(--lumx-switch-indicator-size);
49
- height: var(--lumx-switch-indicator-size);
50
- border-radius: calc(var(--lumx-switch-indicator-size) / 2);
47
+ top: calc((var(--lumx-material-switch-control-height) - var(--lumx-material-switch-indicator-size)) / 2);
48
+ width: var(--lumx-material-switch-indicator-size);
49
+ height: var(--lumx-material-switch-indicator-size);
50
+ border-radius: calc(var(--lumx-material-switch-indicator-size) / 2);
51
51
 
52
52
  @if $status == 'checked' {
53
- right: var(--lumx-switch-indicator-offset);
53
+ right: var(--lumx-material-switch-indicator-offset);
54
54
 
55
55
  @if $theme == lumx-base-const('theme', 'LIGHT') {
56
56
  background-color: lumx-color-variant('light', 'N');
@@ -58,7 +58,7 @@
58
58
  background-color: lumx-color-variant('primary', 'N');
59
59
  }
60
60
  } @else if $status == 'unchecked' {
61
- left: var(--lumx-switch-indicator-offset);
61
+ left: var(--lumx-material-switch-indicator-offset);
62
62
 
63
63
  @if $theme == lumx-base-const('theme', 'LIGHT') {
64
64
  background-color: lumx-color-variant('dark', 'N');
@@ -7,24 +7,43 @@
7
7
 
8
8
  &__links {
9
9
  #{$self}--theme-light & {
10
- @include lumx-tabs-links(lumx-base-const('theme', 'LIGHT'));
10
+ @include lumx-tabs-links;
11
11
  }
12
12
 
13
13
  #{$self}--theme-dark & {
14
- @include lumx-tabs-links(lumx-base-const('theme', 'DARK'));
14
+ @include lumx-tabs-links;
15
15
  }
16
16
  }
17
17
 
18
18
  &__link {
19
- @include lumx-tabs-link;
20
- @include lumx-state-transition;
19
+ &:not(&--is-active) {
20
+ @include lumx-tabs-link(lumx-base-const('emphasis', 'LOW'));
21
21
 
22
- #{$self}--theme-light & {
23
- @include lumx-state(lumx-base-const('state', 'DEFAULT'), lumx-base-const('emphasis', 'LOW'), 'dark');
22
+ #{$self}--theme-light & {
23
+ @include lumx-tabs-link-color(lumx-base-const('emphasis', 'LOW'), lumx-base-const('theme', 'LIGHT'));
24
+ }
25
+
26
+ #{$self}--theme-dark & {
27
+ @include lumx-tabs-link-color(lumx-base-const('emphasis', 'LOW'), lumx-base-const('theme', 'DARK'));
28
+ }
24
29
  }
25
30
 
26
- #{$self}--theme-dark & {
27
- @include lumx-state(lumx-base-const('state', 'DEFAULT'), lumx-base-const('emphasis', 'LOW'), 'light');
31
+ &--is-active {
32
+ @include lumx-tabs-link(lumx-base-const('emphasis', 'SELECTED'));
33
+
34
+ #{$self}--theme-light & {
35
+ @include lumx-tabs-link-color(
36
+ lumx-base-const('emphasis', 'SELECTED'),
37
+ lumx-base-const('theme', 'LIGHT')
38
+ );
39
+ }
40
+
41
+ #{$self}--theme-dark & {
42
+ @include lumx-tabs-link-color(
43
+ lumx-base-const('emphasis', 'SELECTED'),
44
+ lumx-base-const('theme', 'DARK')
45
+ );
46
+ }
28
47
  }
29
48
  }
30
49
  }
@@ -62,40 +81,6 @@
62
81
  /* Tabs link states
63
82
  ========================================================================== */
64
83
 
65
- // Hover state
66
- .#{$lumx-base-prefix}-tabs__link:hover {
67
- .#{$lumx-base-prefix}-tabs--theme-light & {
68
- @include lumx-state(lumx-base-const('state', 'HOVER'), lumx-base-const('emphasis', 'LOW'), 'dark');
69
- }
70
-
71
- .#{$lumx-base-prefix}-tabs--theme-dark & {
72
- @include lumx-state(lumx-base-const('state', 'HOVER'), lumx-base-const('emphasis', 'LOW'), 'light');
73
- }
74
- }
75
-
76
- // Active state
77
- /* stylelint-disable-next-line no-descending-specificity */
78
- .#{$lumx-base-prefix}-tabs__link:active {
79
- .#{$lumx-base-prefix}-tabs--theme-light & {
80
- @include lumx-state(lumx-base-const('state', 'ACTIVE'), lumx-base-const('emphasis', 'LOW'), 'dark');
81
- }
82
-
83
- .#{$lumx-base-prefix}-tabs--theme-dark & {
84
- @include lumx-state(lumx-base-const('state', 'ACTIVE'), lumx-base-const('emphasis', 'LOW'), 'light');
85
- }
86
- }
87
-
88
- // Focus state
89
- .#{$lumx-base-prefix}-tabs__link[data-focus-visible-added] {
90
- .#{$lumx-base-prefix}-tabs--theme-light & {
91
- @include lumx-state(lumx-base-const('state', 'FOCUS'), lumx-base-const('emphasis', 'LOW'), 'dark', null, true);
92
- }
93
-
94
- .#{$lumx-base-prefix}-tabs--theme-dark & {
95
- @include lumx-state(lumx-base-const('state', 'FOCUS'), lumx-base-const('emphasis', 'LOW'), 'light', null, true);
96
- }
97
- }
98
-
99
84
  // Disabled state
100
85
  .#{$lumx-base-prefix}-tabs__link--is-disabled {
101
86
  .#{$lumx-base-prefix}-tabs--theme-light & {
@@ -107,19 +92,6 @@
107
92
  }
108
93
  }
109
94
 
110
- /* Tabs link active
111
- ========================================================================== */
112
-
113
- .#{$lumx-base-prefix}-tabs__link--is-active {
114
- .#{$lumx-base-prefix}-tabs--theme-light & {
115
- @include lumx-tabs-link-active(lumx-base-const('theme', 'LIGHT'));
116
- }
117
-
118
- .#{$lumx-base-prefix}-tabs--theme-dark & {
119
- @include lumx-tabs-link-active(lumx-base-const('theme', 'DARK'));
120
- }
121
- }
122
-
123
95
  /* Tab panel
124
96
  ========================================================================== */
125
97
 
@@ -1,21 +1,6 @@
1
- @mixin lumx-tabs-links($theme) {
1
+ @mixin lumx-tabs-links() {
2
2
  position: relative;
3
3
  display: flex;
4
-
5
- &::after {
6
- position: absolute;
7
- right: 0;
8
- bottom: 0;
9
- left: 0;
10
- height: 2px;
11
- content: '';
12
-
13
- @if $theme == lumx-base-const('theme', 'LIGHT') {
14
- background-color: lumx-color-variant('dark', $lumx-divider-color-variant);
15
- } @else if $theme == lumx-base-const('theme', 'DARK') {
16
- background-color: lumx-color-variant('light', $lumx-divider-color-variant);
17
- }
18
- }
19
4
  }
20
5
 
21
6
  @mixin lumx-tabs-links-position($position) {
@@ -28,26 +13,50 @@
28
13
  }
29
14
  }
30
15
 
31
- @mixin lumx-tabs-link() {
16
+ @mixin lumx-tabs-link($emphasis) {
32
17
  position: relative;
33
18
  display: flex;
34
- height: 48px;
19
+ height: var(--lumx-tabs-link-height);
35
20
  align-items: center;
36
21
  justify-content: center;
37
22
  padding: 0 $lumx-spacing-unit * 3;
38
23
  border: none;
39
- background: none;
24
+ border-radius: var(--lumx-tabs-link-border-radius);
40
25
  cursor: pointer;
41
26
  outline: none;
42
- text-transform: var(--lumx-button-text-transform);
27
+ transition-duration: $lumx-state-transition-duration;
28
+ transition-property: border-radius, background-color, color;
43
29
 
44
30
  &::after {
45
31
  position: absolute;
32
+ top: 0;
46
33
  right: 0;
47
34
  bottom: 0;
48
35
  left: 0;
49
- height: 2px;
36
+ border-style: solid;
37
+ border-top-width: var(--lumx-tabs-link-#{$emphasis}-state-default-border-top-width);
38
+ border-right-width: var(--lumx-tabs-link-#{$emphasis}-state-default-border-right-width);
39
+ border-bottom-width: var(--lumx-tabs-link-#{$emphasis}-state-default-border-bottom-width);
40
+ border-left-width: var(--lumx-tabs-link-#{$emphasis}-state-default-border-left-width);
41
+ border-radius: var(--lumx-tabs-link-border-radius);
50
42
  content: '';
43
+ pointer-events: none;
44
+ transition-duration: $lumx-state-transition-duration;
45
+ transition-property: border-radius, border-width, border-color;
46
+ }
47
+
48
+ &:hover::after {
49
+ border-top-width: var(--lumx-tabs-link-#{$emphasis}-state-hover-border-top-width);
50
+ border-right-width: var(--lumx-tabs-link-#{$emphasis}-state-hover-border-right-width);
51
+ border-bottom-width: var(--lumx-tabs-link-#{$emphasis}-state-hover-border-bottom-width);
52
+ border-left-width: var(--lumx-tabs-link-#{$emphasis}-state-hover-border-left-width);
53
+ }
54
+
55
+ &:active::after {
56
+ border-top-width: var(--lumx-tabs-link-#{$emphasis}-state-active-border-top-width);
57
+ border-right-width: var(--lumx-tabs-link-#{$emphasis}-state-active-border-right-width);
58
+ border-bottom-width: var(--lumx-tabs-link-#{$emphasis}-state-active-border-bottom-width);
59
+ border-left-width: var(--lumx-tabs-link-#{$emphasis}-state-active-border-left-width);
51
60
  }
52
61
 
53
62
  i {
@@ -55,24 +64,50 @@
55
64
  }
56
65
 
57
66
  span {
58
- @include lumx-typography('subtitle1');
67
+ font-family: var(--lumx-typography-custom-button-size-m-font-family);
68
+ font-size: var(--lumx-typography-custom-button-size-m-font-size);
69
+ font-weight: var(--lumx-typography-custom-button-size-m-font-weight);
70
+ text-transform: var(--lumx-material-button-text-transform);
59
71
  }
60
72
  }
61
73
 
62
- @mixin lumx-tabs-link-layout($layout) {
63
- @if $layout == 'fixed' {
64
- flex: 1 1 auto;
74
+ @mixin lumx-tabs-link-color($emphasis, $theme) {
75
+ background-color: var(--lumx-tabs-link-#{$emphasis}-state-default-#{$theme}-background-color);
76
+ color: var(--lumx-tabs-link-#{$emphasis}-state-default-#{$theme}-color);
77
+
78
+ &::after {
79
+ border-color: var(--lumx-tabs-link-#{$emphasis}-state-default-#{$theme}-border-color);
65
80
  }
66
- }
67
81
 
68
- @mixin lumx-tabs-link-active($theme) {
69
- @if $theme == lumx-base-const('theme', 'LIGHT') {
82
+ &:hover {
83
+ background-color: var(--lumx-tabs-link-#{$emphasis}-state-hover-#{$theme}-background-color);
84
+ color: var(--lumx-tabs-link-#{$emphasis}-state-hover-#{$theme}-color);
85
+
70
86
  &::after {
71
- background-color: lumx-color-variant('primary', 'N');
87
+ border-color: var(--lumx-tabs-link-#{$emphasis}-state-hover-#{$theme}-border-color);
72
88
  }
73
- } @else if $theme == lumx-base-const('theme', 'DARK') {
89
+ }
90
+
91
+ &:active {
92
+ background-color: var(--lumx-tabs-link-#{$emphasis}-state-active-#{$theme}-background-color);
93
+ color: var(--lumx-tabs-link-#{$emphasis}-state-active-#{$theme}-color);
94
+
74
95
  &::after {
75
- background-color: lumx-color-variant('light', 'N');
96
+ border-color: var(--lumx-tabs-link-#{$emphasis}-state-active-#{$theme}-border-color);
97
+ }
98
+ }
99
+
100
+ &[data-focus-visible-added] {
101
+ @if $theme == lumx-base-const('theme', 'LIGHT') {
102
+ @include lumx-state-low(lumx-base-const('state', 'FOCUS'), 'dark');
103
+ } @else if $theme == lumx-base-const('theme', 'DARK') {
104
+ @include lumx-state-low(lumx-base-const('state', 'FOCUS'), 'light');
76
105
  }
77
106
  }
78
107
  }
108
+
109
+ @mixin lumx-tabs-link-layout($layout) {
110
+ @if $layout == 'fixed' {
111
+ flex: 1 1 auto;
112
+ }
113
+ }