@carbon/element-styles 0.3.15 → 0.3.16-rc.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (79) hide show
  1. package/README.md +21 -0
  2. package/css/prebuilt/editorial.css +1 -1
  3. package/css/prebuilt/expressive.css +1 -1
  4. package/css/prebuilt/productive.css +1 -1
  5. package/package.json +2 -2
  6. package/scss/_config.scss +9 -0
  7. package/scss/elements/_heading/index.scss +7 -4
  8. package/scss/elements/_input/index.scss +50 -47
  9. package/scss/elements/_labelled-input/index.scss +44 -41
  10. package/scss/elements/_layer/index.scss +17 -14
  11. package/scss/elements/abbreviation/index.scss +7 -4
  12. package/scss/elements/address/index.scss +7 -4
  13. package/scss/elements/anchor/index.scss +33 -30
  14. package/scss/elements/block-quotation/index.scss +30 -27
  15. package/scss/elements/body/index.scss +7 -4
  16. package/scss/elements/bold-text/index.scss +5 -2
  17. package/scss/elements/button/index.scss +183 -180
  18. package/scss/elements/checkbox/index.scss +40 -37
  19. package/scss/elements/code/index.scss +9 -6
  20. package/scss/elements/color-input/index.scss +70 -67
  21. package/scss/elements/combo-box/index.scss +35 -32
  22. package/scss/elements/date-input/index.scss +24 -21
  23. package/scss/elements/date-time-input/index.scss +24 -21
  24. package/scss/elements/deleted-text/index.scss +8 -5
  25. package/scss/elements/description-list/index.scss +17 -14
  26. package/scss/elements/details/index.scss +53 -48
  27. package/scss/elements/dialog/index.scss +173 -170
  28. package/scss/elements/email-input/index.scss +16 -13
  29. package/scss/elements/fieldset/index.scss +15 -12
  30. package/scss/elements/file-input/index.scss +53 -50
  31. package/scss/elements/footer/index.scss +9 -6
  32. package/scss/elements/header-navigation/index.scss +101 -98
  33. package/scss/elements/heading-level-1/index.scss +6 -3
  34. package/scss/elements/heading-level-2/index.scss +6 -3
  35. package/scss/elements/heading-level-3/index.scss +6 -3
  36. package/scss/elements/heading-level-4/index.scss +6 -3
  37. package/scss/elements/heading-level-5/index.scss +6 -3
  38. package/scss/elements/heading-level-6/index.scss +6 -3
  39. package/scss/elements/horizontal-rule/index.scss +12 -9
  40. package/scss/elements/image/index.scss +6 -2
  41. package/scss/elements/inline-loading/index.scss +34 -31
  42. package/scss/elements/inline-quotation/index.scss +6 -3
  43. package/scss/elements/inserted-text/index.scss +9 -6
  44. package/scss/elements/italic-text/index.scss +5 -2
  45. package/scss/elements/keyboard-input/index.scss +9 -6
  46. package/scss/elements/label/index.scss +22 -19
  47. package/scss/elements/main/index.scss +7 -4
  48. package/scss/elements/marked-text/index.scss +7 -4
  49. package/scss/elements/menu/index.scss +71 -64
  50. package/scss/elements/meter/index.scss +45 -42
  51. package/scss/elements/number-input/index.scss +16 -12
  52. package/scss/elements/ordered-list/index.scss +25 -22
  53. package/scss/elements/paragraph/index.scss +8 -5
  54. package/scss/elements/password-input/index.scss +17 -13
  55. package/scss/elements/popover/index.scss +75 -72
  56. package/scss/elements/preformatted/index.scss +18 -15
  57. package/scss/elements/progress-bar/index.scss +71 -68
  58. package/scss/elements/radio-button/index.scss +35 -32
  59. package/scss/elements/range-input/index.scss +42 -39
  60. package/scss/elements/search-input/index.scss +21 -18
  61. package/scss/elements/select/index.scss +36 -33
  62. package/scss/elements/side-navigation/index.scss +141 -137
  63. package/scss/elements/small-text/index.scss +7 -4
  64. package/scss/elements/table/index.scss +93 -90
  65. package/scss/elements/tabs/index.scss +155 -152
  66. package/scss/elements/telephone-number-input/index.scss +16 -13
  67. package/scss/elements/text-area/index.scss +21 -18
  68. package/scss/elements/text-input/index.scss +16 -13
  69. package/scss/elements/tile/index.scss +49 -45
  70. package/scss/elements/time-input/index.scss +24 -21
  71. package/scss/elements/toggle/index.scss +71 -68
  72. package/scss/elements/tooltip/index.scss +16 -13
  73. package/scss/elements/tree-view/index.scss +86 -82
  74. package/scss/elements/unordered-list/index.scss +21 -18
  75. package/scss/elements/url-input/index.scss +16 -13
  76. package/scss/prebuilt/editorial/_elements.scss +37 -33
  77. package/scss/prebuilt/expressive/_elements.scss +75 -71
  78. package/scss/prebuilt/productive/_elements.scss +71 -67
  79. package/scss/utilities/_cascade-layer.scss +33 -0
@@ -14,6 +14,7 @@
14
14
  @use "@carbon/styles/scss/components/content-switcher/tokens" as carbon-content-switcher;
15
15
 
16
16
  @use "../../layout";
17
+ @use "../../utilities/cascade-layer";
17
18
  @use "../../utilities/guards";
18
19
 
19
20
  $config: () !default;
@@ -30,206 +31,208 @@ $-default-config: (
30
31
  @mixin styles($config: $config) {
31
32
  $props: map.deep-merge($-default-config, $config);
32
33
 
33
- #{map.get($props, "selector")} {
34
- display: flex;
35
- flex-direction: row;
36
-
37
- & button[role="tab"] {
38
- @include layout.mode--body-compact;
39
- position: relative;
40
- appearance: none;
41
- border: none;
42
- box-shadow: none;
43
- border-radius: 0;
44
- background: none;
45
- color: theme.$text-secondary;
46
- block-size: layout.$size--block-size;
47
- padding-inline: layout.$density--padding;
48
- cursor: pointer;
49
- transition-property: color, background-color, border-color;
50
- transition-duration: layout.$mode--transition-duration;
51
- transition-timing-function: layout.$mode--transition-timing-function;
52
-
53
- @include guards.hover {
54
- &:enabled:hover:not([aria-selected="true"]) {
55
- color: theme.$text-primary;
56
- }
57
- }
58
-
59
- &:focus {
60
- @include focus-outline.focus-outline("outline");
61
- }
62
-
63
- &:disabled {
64
- cursor: not-allowed;
65
- }
66
- }
34
+ @include cascade-layer.wrap {
35
+ #{map.get($props, "selector")} {
36
+ display: flex;
37
+ flex-direction: row;
67
38
 
68
- & ~ [role="tabpanel"] {
69
- @include layout.mode--body;
70
- padding: layout.$density--padding;
71
- }
72
-
73
- @if map.get($props, "kind") == "line" {
74
39
  & button[role="tab"] {
75
- border-block-end: 0.125rem solid theme.$border-subtle;
76
- margin-inline-end: 0.0625rem;
40
+ @include layout.mode--body-compact;
41
+ position: relative;
42
+ appearance: none;
43
+ border: none;
44
+ box-shadow: none;
45
+ border-radius: 0;
46
+ background: none;
47
+ color: theme.$text-secondary;
48
+ block-size: layout.$size--block-size;
49
+ padding-inline: layout.$density--padding;
50
+ cursor: pointer;
51
+ transition-property: color, background-color, border-color;
52
+ transition-duration: layout.$mode--transition-duration;
53
+ transition-timing-function: layout.$mode--transition-timing-function;
77
54
 
78
55
  @include guards.hover {
79
56
  &:enabled:hover:not([aria-selected="true"]) {
80
- border-block-end-color: theme.$border-strong;
57
+ color: theme.$text-primary;
81
58
  }
82
59
  }
83
60
 
84
- &[aria-selected="true"] {
85
- @include layout.mode--heading-compact;
86
- color: theme.$text-primary;
87
- border-block-end-color: theme.$border-interactive;
61
+ &:focus {
62
+ @include focus-outline.focus-outline("outline");
88
63
  }
89
64
 
90
65
  &:disabled {
91
- color: theme.$text-disabled;
66
+ cursor: not-allowed;
92
67
  }
93
68
  }
94
- }
95
69
 
96
- @if map.get($props, "kind") == "contained" {
97
- & button[role="tab"] {
98
- background-color: theme.$layer-accent;
99
- border-block-start: 0.125rem solid transparent;
70
+ & ~ [role="tabpanel"] {
71
+ @include layout.mode--body;
72
+ padding: layout.$density--padding;
73
+ }
100
74
 
101
- &:not(:last-of-type, [aria-selected="true"], :has(+ [aria-selected="true"])) {
102
- border-inline-end: 0.0625rem solid theme.$border-strong;
103
- }
75
+ @if map.get($props, "kind") == "line" {
76
+ & button[role="tab"] {
77
+ border-block-end: 0.125rem solid theme.$border-subtle;
78
+ margin-inline-end: 0.0625rem;
104
79
 
105
- @include guards.hover {
106
- &:enabled:hover:not([aria-selected="true"]) {
107
- background-color: theme.$layer-accent-hover;
80
+ @include guards.hover {
81
+ &:enabled:hover:not([aria-selected="true"]) {
82
+ border-block-end-color: theme.$border-strong;
83
+ }
108
84
  }
109
- }
110
85
 
111
- &[aria-selected="true"] {
112
- @include layout.mode--heading-compact;
113
- color: theme.$text-primary;
114
- border-block-start: 0.125rem solid theme.$border-interactive;
115
- background-color: theme.$layer;
116
- }
86
+ &[aria-selected="true"] {
87
+ @include layout.mode--heading-compact;
88
+ color: theme.$text-primary;
89
+ border-block-end-color: theme.$border-interactive;
90
+ }
117
91
 
118
- &:disabled {
119
- background-color: carbon-button.$button-disabled;
120
- color: theme.$text-on-color-disabled;
92
+ &:disabled {
93
+ color: theme.$text-disabled;
94
+ }
121
95
  }
122
96
  }
123
97
 
124
- & ~ [role="tabpanel"] {
125
- background-color: theme.$layer;
126
- }
127
- }
128
-
129
- @if map.get($props, "kind") ==
130
- "content-switcher" or
131
- map.get($props, "kind") ==
132
- "content-switcher--low-contrast"
133
- {
134
- & {
135
- box-shadow: 0 0 0 0.0625rem theme.$border-inverse;
136
- border-radius: 0.25rem;
137
- display: inline-grid;
138
- grid-auto-flow: column;
139
- grid-auto-columns: 1fr;
140
- }
98
+ @if map.get($props, "kind") == "contained" {
99
+ & button[role="tab"] {
100
+ background-color: theme.$layer-accent;
101
+ border-block-start: 0.125rem solid transparent;
141
102
 
142
- & button[role="tab"] {
143
- text-align: start;
103
+ &:not(:last-of-type, [aria-selected="true"], :has(+ [aria-selected="true"])) {
104
+ border-inline-end: 0.0625rem solid theme.$border-strong;
105
+ }
144
106
 
145
- &:first-child {
146
- border-start-start-radius: inherit;
147
- border-end-start-radius: inherit;
148
- }
107
+ @include guards.hover {
108
+ &:enabled:hover:not([aria-selected="true"]) {
109
+ background-color: theme.$layer-accent-hover;
110
+ }
111
+ }
149
112
 
150
- &:last-child {
151
- border-start-end-radius: inherit;
152
- border-end-end-radius: inherit;
153
- }
113
+ &[aria-selected="true"] {
114
+ @include layout.mode--heading-compact;
115
+ color: theme.$text-primary;
116
+ border-block-start: 0.125rem solid theme.$border-interactive;
117
+ background-color: theme.$layer;
118
+ }
154
119
 
155
- @include guards.hover {
156
- &:enabled:hover:not([aria-selected="true"]) {
157
- background-color: theme.$layer-hover;
120
+ &:disabled {
121
+ background-color: carbon-button.$button-disabled;
122
+ color: theme.$text-on-color-disabled;
158
123
  }
159
124
  }
160
125
 
161
- &:enabled:active:not([aria-selected="true"]) {
162
- background-color: theme.$layer-active;
126
+ & ~ [role="tabpanel"] {
127
+ background-color: theme.$layer;
163
128
  }
129
+ }
164
130
 
165
- &[aria-selected="true"] {
166
- z-index: 1;
167
- border-radius: inherit;
168
- color: theme.$text-inverse;
169
- background-color: theme.$border-inverse;
131
+ @if map.get($props, "kind") ==
132
+ "content-switcher" or
133
+ map.get($props, "kind") ==
134
+ "content-switcher--low-contrast"
135
+ {
136
+ & {
137
+ box-shadow: 0 0 0 0.0625rem theme.$border-inverse;
138
+ border-radius: 0.25rem;
139
+ display: inline-grid;
140
+ grid-auto-flow: column;
141
+ grid-auto-columns: 1fr;
170
142
  }
171
143
 
172
- &:focus {
173
- box-shadow: inset 0 0 0 0.1875rem theme.$background;
174
- }
144
+ & button[role="tab"] {
145
+ text-align: start;
175
146
 
176
- &:disabled {
177
- color: theme.$text-disabled;
178
- }
147
+ &:first-child {
148
+ border-start-start-radius: inherit;
149
+ border-end-start-radius: inherit;
150
+ }
179
151
 
180
- &::after {
181
- content: "";
182
- display: block;
183
- position: absolute;
184
- inset-inline-end: 0;
185
- block-size: 1lh;
186
- inset-block: calc(50% - 0.5lh);
187
- inline-size: 0.0625rem;
188
- background-color: theme.$border-subtle;
189
- }
152
+ &:last-child {
153
+ border-start-end-radius: inherit;
154
+ border-end-end-radius: inherit;
155
+ }
190
156
 
191
- &[aria-selected="true"]::after,
192
- &:last-child::after,
193
- &:has(+ [aria-selected="true"])::after,
194
- &:focus::after {
195
- visibility: hidden;
196
- }
157
+ @include guards.hover {
158
+ &:enabled:hover:not([aria-selected="true"]) {
159
+ background-color: theme.$layer-hover;
160
+ }
161
+ }
197
162
 
198
- @include guards.hover {
199
- &:hover::after,
200
- &:has(+ :hover)::after {
163
+ &:enabled:active:not([aria-selected="true"]) {
164
+ background-color: theme.$layer-active;
165
+ }
166
+
167
+ &[aria-selected="true"] {
168
+ z-index: 1;
169
+ border-radius: inherit;
170
+ color: theme.$text-inverse;
171
+ background-color: theme.$border-inverse;
172
+ }
173
+
174
+ &:focus {
175
+ box-shadow: inset 0 0 0 0.1875rem theme.$background;
176
+ }
177
+
178
+ &:disabled {
179
+ color: theme.$text-disabled;
180
+ }
181
+
182
+ &::after {
183
+ content: "";
184
+ display: block;
185
+ position: absolute;
186
+ inset-inline-end: 0;
187
+ block-size: 1lh;
188
+ inset-block: calc(50% - 0.5lh);
189
+ inline-size: 0.0625rem;
190
+ background-color: theme.$border-subtle;
191
+ }
192
+
193
+ &[aria-selected="true"]::after,
194
+ &:last-child::after,
195
+ &:has(+ [aria-selected="true"])::after,
196
+ &:focus::after {
201
197
  visibility: hidden;
202
198
  }
203
- }
204
- }
205
- }
206
199
 
207
- @if map.get($props, "kind") == "content-switcher--low-contrast" {
208
- & {
209
- background-color: carbon-content-switcher.$content-switcher-background;
210
- box-shadow: 0 0 0 0.0625rem theme.$border-strong;
200
+ @include guards.hover {
201
+ &:hover::after,
202
+ &:has(+ :hover)::after {
203
+ visibility: hidden;
204
+ }
205
+ }
206
+ }
211
207
  }
212
208
 
213
- & button[role="tab"] {
214
- &:enabled:active:not([aria-selected="true"]) {
215
- background-color: carbon-content-switcher.$content-switcher-background-hover;
209
+ @if map.get($props, "kind") == "content-switcher--low-contrast" {
210
+ & {
211
+ background-color: carbon-content-switcher.$content-switcher-background;
212
+ box-shadow: 0 0 0 0.0625rem theme.$border-strong;
216
213
  }
217
214
 
218
- @include guards.hover {
219
- &:enabled:hover:not([aria-selected="true"]) {
215
+ & button[role="tab"] {
216
+ &:enabled:active:not([aria-selected="true"]) {
220
217
  background-color: carbon-content-switcher.$content-switcher-background-hover;
221
218
  }
222
- }
223
219
 
224
- &[aria-selected="true"] {
225
- @include layout.mode--heading-compact;
226
- background-color: carbon-content-switcher.$content-switcher-selected;
227
- color: theme.$text-primary;
228
- box-shadow: 0 0 0 0.0625rem theme.$border-inverse;
229
- }
220
+ @include guards.hover {
221
+ &:enabled:hover:not([aria-selected="true"]) {
222
+ background-color: carbon-content-switcher.$content-switcher-background-hover;
223
+ }
224
+ }
225
+
226
+ &[aria-selected="true"] {
227
+ @include layout.mode--heading-compact;
228
+ background-color: carbon-content-switcher.$content-switcher-selected;
229
+ color: theme.$text-primary;
230
+ box-shadow: 0 0 0 0.0625rem theme.$border-inverse;
231
+ }
230
232
 
231
- &::after {
232
- background-color: theme.$border-strong;
233
+ &::after {
234
+ background-color: theme.$border-strong;
235
+ }
233
236
  }
234
237
  }
235
238
  }
@@ -10,6 +10,7 @@
10
10
  @use "../_labelled-input";
11
11
 
12
12
  @use "../../layout";
13
+ @use "../../utilities/cascade-layer";
13
14
 
14
15
  $config: () !default;
15
16
 
@@ -25,18 +26,20 @@ $-default-config: (
25
26
  @mixin styles($config: $config) {
26
27
  $props: map.deep-merge($-default-config, $config);
27
28
 
28
- #{map.get($props, "selector")} {
29
- @include labelled-input.styles(
30
- (
31
- label: (
32
- selector: "&",
33
- axis: map.get($props, "axis"),
34
- ),
35
- input: (
36
- selector: 'input[type="tel"]',
37
- ),
38
- input-invalid-slot: "after",
39
- )
40
- );
29
+ @include cascade-layer.wrap {
30
+ #{map.get($props, "selector")} {
31
+ @include labelled-input.styles(
32
+ (
33
+ label: (
34
+ selector: "&",
35
+ axis: map.get($props, "axis"),
36
+ ),
37
+ input: (
38
+ selector: 'input[type="tel"]',
39
+ ),
40
+ input-invalid-slot: "after",
41
+ )
42
+ );
43
+ }
41
44
  }
42
45
  }
@@ -10,6 +10,7 @@
10
10
  @use "../_labelled-input";
11
11
 
12
12
  @use "../../layout";
13
+ @use "../../utilities/cascade-layer";
13
14
 
14
15
  $config: () !default;
15
16
 
@@ -23,25 +24,27 @@ $-default-config: (
23
24
  @mixin styles($config: $config) {
24
25
  $props: map.deep-merge($-default-config, $config);
25
26
 
26
- #{map.get($props, "selector")} {
27
- @include labelled-input.styles(
28
- (
29
- label: (
30
- selector: "&",
31
- axis: "block",
32
- ),
33
- input: (
34
- selector: "textarea",
35
- ),
36
- input-invalid-slot: "after",
37
- )
38
- );
39
-
40
- & textarea {
41
- min-block-size: calc(
42
- layout.$size--padding-block-start + 2lh + layout.$size--padding-block-end
27
+ @include cascade-layer.wrap {
28
+ #{map.get($props, "selector")} {
29
+ @include labelled-input.styles(
30
+ (
31
+ label: (
32
+ selector: "&",
33
+ axis: "block",
34
+ ),
35
+ input: (
36
+ selector: "textarea",
37
+ ),
38
+ input-invalid-slot: "after",
39
+ )
43
40
  );
44
- resize: vertical;
41
+
42
+ & textarea {
43
+ min-block-size: calc(
44
+ layout.$size--padding-block-start + 2lh + layout.$size--padding-block-end
45
+ );
46
+ resize: vertical;
47
+ }
45
48
  }
46
49
  }
47
50
  }
@@ -10,6 +10,7 @@
10
10
  @use "../_labelled-input";
11
11
 
12
12
  @use "../../layout";
13
+ @use "../../utilities/cascade-layer";
13
14
 
14
15
  $config: () !default;
15
16
 
@@ -25,18 +26,20 @@ $-default-config: (
25
26
  @mixin styles($config: $config) {
26
27
  $props: map.deep-merge($-default-config, $config);
27
28
 
28
- #{map.get($props, "selector")} {
29
- @include labelled-input.styles(
30
- (
31
- label: (
32
- selector: "&",
33
- axis: map.get($props, "axis"),
34
- ),
35
- input: (
36
- selector: 'input[type="text"]',
37
- ),
38
- input-invalid-slot: "after",
39
- )
40
- );
29
+ @include cascade-layer.wrap {
30
+ #{map.get($props, "selector")} {
31
+ @include labelled-input.styles(
32
+ (
33
+ label: (
34
+ selector: "&",
35
+ axis: map.get($props, "axis"),
36
+ ),
37
+ input: (
38
+ selector: 'input[type="text"]',
39
+ ),
40
+ input-invalid-slot: "after",
41
+ )
42
+ );
43
+ }
41
44
  }
42
45
  }
@@ -14,6 +14,7 @@
14
14
  @use "../_layer";
15
15
 
16
16
  @use "../../layout";
17
+ @use "../../utilities/cascade-layer";
17
18
  @use "../../utilities/icons";
18
19
  @use "../../utilities/guards";
19
20
 
@@ -29,58 +30,61 @@ $-default-config: (
29
30
  @mixin styles($config: $config) {
30
31
  $props: map.deep-merge($-default-config, $config);
31
32
 
32
- #{map.get($props, "selector")} {
33
- @include layer.styles;
34
- padding: layout.$density--padding;
35
- box-sizing: border-box;
36
-
37
- &:is(a) {
38
- position: relative;
39
- display: block;
40
- color: theme.$text-primary;
41
- text-decoration: none;
42
- padding-inline-end: spacing.$spacing-09;
43
- border: 0.0625rem solid theme.$border-tile;
44
- transition: background-color layout.$mode--transition-duration
45
- layout.$mode--transition-timing-function;
46
-
47
- &:visited {
48
- color: inherit;
49
- }
33
+ @include cascade-layer.wrap {
34
+ #{map.get($props, "selector")} {
35
+ @include layer.styles;
36
+ padding: layout.$density--padding;
37
+ box-sizing: border-box;
38
+
39
+ &:is(a) {
40
+ position: relative;
41
+ display: block;
42
+ color: theme.$text-primary;
43
+ text-decoration: none;
44
+ padding-inline-end: spacing.$spacing-09;
45
+ border: 0.0625rem solid theme.$border-tile;
46
+ transition: background-color layout.$mode--transition-duration
47
+ layout.$mode--transition-timing-function;
48
+
49
+ &:visited {
50
+ color: inherit;
51
+ }
50
52
 
51
- & svg,
52
- &:visited svg {
53
- fill: currentColor;
54
- }
53
+ & svg,
54
+ &:visited svg {
55
+ fill: currentColor;
56
+ }
55
57
 
56
- @include guards.hover {
57
- &:hover {
58
- @include layer.layer-background-hover;
59
- color: inherit;
58
+ @include guards.hover {
59
+ &:hover {
60
+ @include layer.layer-background-hover;
61
+ color: inherit;
62
+ }
60
63
  }
61
- }
62
64
 
63
- &:active {
64
- @include layer.layer-background-active;
65
- }
65
+ &:active {
66
+ @include layer.layer-background-active;
67
+ }
66
68
 
67
- &:focus {
68
- @include focus-outline.focus-outline("outline");
69
- }
69
+ &:focus {
70
+ @include focus-outline.focus-outline("outline");
71
+ }
70
72
 
71
- &::after {
72
- @include icons.arrow--right;
73
- content: "";
74
- position: absolute;
75
- color: theme.$link-primary;
76
- inset-block-end: layout.$density--padding;
77
- inset-inline-end: layout.$density--padding;
78
- transition: color layout.$mode--transition-duration layout.$mode--transition-timing-function;
79
- }
73
+ &::after {
74
+ @include icons.arrow--right;
75
+ content: "";
76
+ position: absolute;
77
+ color: theme.$link-primary;
78
+ inset-block-end: layout.$density--padding;
79
+ inset-inline-end: layout.$density--padding;
80
+ transition: color layout.$mode--transition-duration
81
+ layout.$mode--transition-timing-function;
82
+ }
80
83
 
81
- @include guards.hover {
82
- &:hover::after {
83
- color: theme.$icon-primary;
84
+ @include guards.hover {
85
+ &:hover::after {
86
+ color: theme.$icon-primary;
87
+ }
84
88
  }
85
89
  }
86
90
  }