@carbon/styles 0.7.0 → 0.9.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 (35) hide show
  1. package/package.json +9 -9
  2. package/scss/_feature-flags.scss +8 -1
  3. package/scss/_spacing.scss +1 -0
  4. package/scss/_type.scss +1 -0
  5. package/scss/components/_index.scss +1 -0
  6. package/scss/components/button/_button.scss +9 -0
  7. package/scss/components/checkbox/_checkbox.scss +1 -0
  8. package/scss/components/code-snippet/_code-snippet.scss +3 -3
  9. package/scss/components/data-table/_data-table.scss +1 -0
  10. package/scss/components/data-table/expandable/_data-table-expandable.scss +2 -2
  11. package/scss/components/date-picker/_date-picker.scss +1 -1
  12. package/scss/components/date-picker/_flatpickr.scss +39 -38
  13. package/scss/components/dropdown/_dropdown.scss +4 -4
  14. package/scss/components/file-uploader/_file-uploader.scss +4 -1
  15. package/scss/components/form/_form.scss +15 -6
  16. package/scss/components/list-box/_list-box.scss +34 -4
  17. package/scss/components/notification/_actionable-notification.scss +5 -2
  18. package/scss/components/notification/_inline-notification.scss +7 -4
  19. package/scss/components/notification/_toast-notification.scss +13 -8
  20. package/scss/components/number-input/_number-input.scss +3 -3
  21. package/scss/components/overflow-menu/_overflow-menu.scss +4 -4
  22. package/scss/components/popover/_popover.scss +232 -199
  23. package/scss/components/progress-indicator/_progress-indicator.scss +6 -0
  24. package/scss/components/radio-button/_radio-button.scss +11 -9
  25. package/scss/components/search/_search.scss +7 -7
  26. package/scss/components/stack/_index.scss +11 -0
  27. package/scss/components/stack/_stack.scss +34 -0
  28. package/scss/components/structured-list/_structured-list.scss +7 -4
  29. package/scss/components/tabs/_tabs.scss +4 -1
  30. package/scss/components/tile/_tile.scss +4 -3
  31. package/scss/components/toggle/_toggle.scss +80 -18
  32. package/scss/components/tooltip/_tooltip.scss +14 -727
  33. package/scss/components/treeview/_treeview.scss +17 -17
  34. package/scss/components/ui-shell/header/_header.scss +19 -0
  35. package/scss/utilities/_convert.scss +13 -4
@@ -9,7 +9,7 @@
9
9
  @use '../../config' as *;
10
10
  @use '../../motion' as *;
11
11
  @use '../../spacing' as *;
12
- @use '../../compat/theme' as *;
12
+ @use '../../theme' as *;
13
13
  @use '../../type' as *;
14
14
  @use '../../utilities/skeleton' as *;
15
15
  @use '../../utilities/button-reset';
@@ -280,7 +280,7 @@
280
280
  .#{$prefix}--number__invalid
281
281
  + .#{$prefix}--number__controls
282
282
  .#{$prefix}--number__rule-divider:first-of-type {
283
- background-color: $decorative-01;
283
+ background-color: $border-subtle-02;
284
284
  }
285
285
 
286
286
  .#{$prefix}--number
@@ -385,7 +385,7 @@
385
385
  .#{$prefix}--number--light .#{$prefix}--number__control-btn:hover,
386
386
  .#{$prefix}--number--light .#{$prefix}--number__control-btn:hover::before,
387
387
  .#{$prefix}--number--light .#{$prefix}--number__control-btn:hover::after {
388
- background-color: $hover-light-ui;
388
+ background-color: $layer-hover-02;
389
389
  }
390
390
 
391
391
  .#{$prefix}--number--light .#{$prefix}--number__control-btn:focus::before,
@@ -8,7 +8,7 @@
8
8
  @use '../../config' as *;
9
9
  @use '../../motion' as *;
10
10
  @use '../../spacing' as *;
11
- @use '../../compat/theme' as *;
11
+ @use '../../theme' as *;
12
12
  @use '../../type' as *;
13
13
  @use '../button/tokens' as button;
14
14
  @use '../../utilities/box-shadow' as *;
@@ -230,7 +230,7 @@
230
230
  }
231
231
 
232
232
  .#{$prefix}--overflow-menu--light .#{$prefix}--overflow-menu--divider {
233
- border-top: 1px solid $decorative-01;
233
+ border-top: 1px solid $border-subtle-02;
234
234
  }
235
235
 
236
236
  a.#{$prefix}--overflow-menu-options__btn::before {
@@ -252,7 +252,7 @@
252
252
  padding: 0 $spacing-05;
253
253
  border: none;
254
254
  background-color: transparent;
255
- color: $text-02;
255
+ color: $text-secondary;
256
256
  cursor: pointer;
257
257
  font-family: inherit;
258
258
  font-weight: 400;
@@ -262,7 +262,7 @@
262
262
  color $duration-fast-02 motion(entrance, productive);
263
263
 
264
264
  &:hover {
265
- color: $text-01;
265
+ color: $text-primary;
266
266
  }
267
267
 
268
268
  &:focus {
@@ -5,319 +5,352 @@
5
5
  // LICENSE file in the root directory of this source tree.
6
6
  //
7
7
 
8
- @use '../../theme' as *;
9
8
  @use '../../config' as *;
10
- @use '../../compat/theme' as *;
9
+ @use '../../theme';
11
10
  @use '../../utilities/box-shadow' as *;
11
+ @use '../../utilities/custom-property';
12
12
  @use '../../utilities/high-contrast-mode' as *;
13
13
  @use '../../utilities/focus-outline' as *;
14
14
  @use '../../utilities/' as *;
15
15
  @use '../../utilities/convert' as *;
16
16
 
17
- /// Popover component
18
- /// @access private
19
- /// @group components
17
+ /// The Popover component is used for triggering a pop-up next to a trigger
18
+ /// element, typically a button, in a given direction. It is made up of several
19
+ /// parts and includes a handful of modifiers to change the appearance.
20
+ ///
21
+ /// The parts of a popover include:
22
+ /// The popover container `.cds-popover-container`
23
+ /// This container contains the trigger and the popover and is used to
24
+ /// coordinate positioning relative to the trigger button
25
+ ///
26
+ /// The popover
27
+ /// This is an intermediate container that is used for the
28
+ /// `filter: drop-shadow()` effect on the popover content and the caret. It is
29
+ /// an absolutely positioned container that matches the dimensions of the
30
+ /// container so that popover content and caret can be positioned absolutely.
31
+ ///
32
+ /// Popover content
33
+ /// This is the containing element for user-provided content and sets the
34
+ /// background and text color for the area.
35
+ ///
36
+ /// Popover caret
37
+ /// This caret is an optional modifier that displays a character centered with
38
+ /// respect to the trigger element
39
+
40
+ // The background color for the popover container
41
+ $popover-background-color: custom-property.get-var(
42
+ 'popover-background-color',
43
+ theme.$layer
44
+ );
45
+
46
+ // The drop shadow value used for the popover container
47
+ $popover-drop-shadow: custom-property.get-var('popover-drop-shadow', 'none');
48
+
49
+ // The border radius value for the popover container
50
+ $popover-border-radius: custom-property.get-var('popover-border-radius', 2px);
51
+
52
+ // The text color used for text placed inside of the popover
53
+ $popover-text-color: custom-property.get-var(
54
+ 'popover-text-color',
55
+ theme.$text-primary
56
+ );
57
+
58
+ // The distance between the popover container and the triggering element
59
+ // Specify the distance between the popover and the trigger. This value must
60
+ // have a unit otherwise the `calc()` expression will not work
61
+ // stylelint-disable-next-line length-zero-no-unit
62
+ $popover-offset: custom-property.get-var('popover-offset', 0rem);
63
+
20
64
  @mixin popover {
21
- $popover-text-color: $text-01;
22
- $popover-caret-offset: 1rem;
23
- $popover-offset: 8px;
65
+ // Container
66
+ .#{$prefix}--popover-container {
67
+ position: relative;
68
+ display: inline-block;
69
+ }
24
70
 
25
- .#{$prefix}--popover {
26
- // Specify the distance between the popover and the trigger. This value must
27
- // have a unit otherwise the `calc()` expression will not work
28
- // stylelint-disable-next-line length-zero-no-unit
29
- --cds-popover-offset: 0rem;
71
+ /// Modifiers
30
72
 
31
- // Specify the distance that the caret should be offset from the side of the
32
- // popover when not centered
33
- --cds-popover-caret-offset: 1rem;
73
+ // Light modifier
74
+ .#{$prefix}--popover--light .#{$prefix}--popover-content {
75
+ @include custom-property.declaration(
76
+ 'popover-background-color',
77
+ theme.$layer-02
78
+ );
79
+ }
34
80
 
35
- position: absolute;
36
- z-index: z('floating');
37
- display: none;
81
+ // High contrast modifier
82
+ .#{$prefix}--popover--high-contrast .#{$prefix}--popover {
83
+ @include custom-property.declaration(
84
+ 'popover-background-color',
85
+ theme.$background-inverse
86
+ );
87
+ @include custom-property.declaration(
88
+ 'popover-text-color',
89
+ theme.$text-inverse
90
+ );
38
91
  }
39
92
 
40
- // We use a pseudo element inside of the popover to create a space between the
41
- // target and the popover. This helps in situations like tooltips where you do
42
- // not want the tooltip to disappear when the user moves from the target to
43
- // the popover.
44
- .#{$prefix}--popover::before {
45
- position: absolute;
46
- display: block;
47
- content: '';
93
+ // Drop shadow modifier
94
+ .#{$prefix}--popover--drop-shadow .#{$prefix}--popover {
95
+ @include custom-property.declaration(
96
+ 'popover-drop-shadow',
97
+ drop-shadow(0 2px 2px rgba(0, 0, 0, 0.2))
98
+ );
48
99
  }
49
100
 
50
- .#{$prefix}--popover--open {
51
- display: block;
101
+ // Caret tip modifier
102
+ .#{$prefix}--popover--caret {
103
+ @include custom-property.declaration('popover-offset', rem(10px));
52
104
  }
53
105
 
54
- .#{$prefix}--popover-contents {
55
- @include box-shadow;
106
+ // Popover, this element contains both the caret and the popover content
107
+ .#{$prefix}--popover {
108
+ position: absolute;
109
+ top: 0;
110
+ right: 0;
111
+ bottom: 0;
112
+ left: 0;
113
+ filter: $popover-drop-shadow;
114
+ pointer-events: none;
115
+ }
56
116
 
57
- position: relative;
117
+ // Popover content
118
+ .#{$prefix}--popover-content {
119
+ position: absolute;
120
+ z-index: z('floating');
121
+ display: none;
58
122
  width: max-content;
59
123
  max-width: rem(368px);
60
- background-color: $ui-01;
61
- border-radius: 2px;
124
+ background-color: $popover-background-color;
125
+ border-radius: $popover-border-radius;
62
126
  color: $popover-text-color;
127
+ pointer-events: auto;
63
128
  }
64
129
 
65
- .#{$prefix}--popover--light .#{$prefix}--popover-contents {
66
- background-color: $background;
130
+ .#{$prefix}--popover--open .#{$prefix}--popover-content {
131
+ display: block;
67
132
  }
68
133
 
69
- .#{$prefix}--popover--high-contrast .#{$prefix}--popover-contents {
70
- background-color: $background-inverse;
71
- color: $icon-inverse;
134
+ // We use a pseudo element inside of the popover to create a space between the
135
+ // target and the popover. This helps in situations like toolcarets where you do
136
+ // not want the toolcaret to disappear when the user moves from the target to
137
+ // the popover.
138
+ .#{$prefix}--popover-content::before {
139
+ position: absolute;
140
+ display: none;
141
+ content: '';
72
142
  }
73
143
 
74
- .#{$prefix}--popover--caret {
75
- --cds-popover-offset: 0.5rem;
144
+ .#{$prefix}--popover--open .#{$prefix}--popover-content::before {
145
+ display: block;
76
146
  }
77
147
 
78
- .#{$prefix}--popover--caret .#{$prefix}--popover-contents::before,
79
- .#{$prefix}--popover--caret .#{$prefix}--popover-contents::after {
148
+ // Popover caret
149
+ .#{$prefix}--popover-caret {
80
150
  position: absolute;
81
- display: inline-block;
82
- width: rem(8px);
83
- height: rem(8px);
84
- background-color: inherit;
85
- content: '';
151
+ z-index: z('floating');
152
+ display: none;
153
+ background-color: $popover-background-color;
154
+ // We use `will-change: transform` to prevent antialiasing when our caret
155
+ // has subpixel rendering. When this happens, a single pixel line appears
156
+ // between the caret and popover-content that we would like to avoid
157
+ will-change: transform;
86
158
  }
87
159
 
88
- .#{$prefix}--popover--caret .#{$prefix}--popover-contents::before {
89
- z-index: -1;
90
- box-shadow: 2px 2px 6px 0 rgba(0, 0, 0, 0.2);
160
+ .#{$prefix}--popover--open.#{$prefix}--popover--caret
161
+ .#{$prefix}--popover-caret {
162
+ display: block;
91
163
  }
92
164
 
93
- // The popover's tooltip is created by drawing two 8px x 8px boxes, one for
94
- // rendering the box-shadow that the popover content uses and another for
95
- // layering on top of this box to create an effect of a popover caret with a
96
- // box-shadow. The layer with the box-shadow is rendered behind the popover
97
- // content, while the other is rendered above of the popover content.
98
-
99
165
  //-----------------------------------------------------------------------------
100
166
  // Bottom
101
167
  //-----------------------------------------------------------------------------
102
- .#{$prefix}--popover--bottom {
103
- bottom: 0;
104
- left: 50%;
105
- transform: translate(-50%, calc(100% + var(--cds-popover-offset)));
106
- }
107
168
 
108
- @include place-caret(bottom) {
109
- top: 0;
169
+ // Popover content placement
170
+ .#{$prefix}--popover--bottom .#{$prefix}--popover-content {
171
+ bottom: 0;
110
172
  left: 50%;
111
- transform: translate(-50%, -50%) rotate(45deg);
173
+ transform: translate(-50%, calc(100% + $popover-offset));
112
174
  }
113
175
 
114
- // Bottom left
115
- .#{$prefix}--popover--bottom-left {
176
+ .#{$prefix}--popover--bottom-left .#{$prefix}--popover-content {
116
177
  bottom: 0;
117
178
  left: 0;
118
- transform: translateY(calc(100% + var(--cds-popover-offset)));
179
+ transform: translate(0, calc(100% + $popover-offset));
119
180
  }
120
181
 
121
- @include place-caret(bottom-left) {
122
- top: 0;
123
- left: 0;
124
- transform: translate(var(--cds-popover-caret-offset), -50%) rotate(45deg);
125
- }
126
-
127
- // Bottom right
128
- .#{$prefix}--popover--bottom-right {
182
+ .#{$prefix}--popover--bottom-right .#{$prefix}--popover-content {
129
183
  right: 0;
130
184
  bottom: 0;
131
- transform: translateY(calc(100% + var(--cds-popover-offset)));
132
- }
133
-
134
- @include place-caret(bottom-right) {
135
- top: 0;
136
- right: 0;
137
- transform: translate(calc(-1 * var(--cds-popover-caret-offset)), -50%)
138
- rotate(45deg);
185
+ transform: translate(0, calc(100% + $popover-offset));
139
186
  }
140
187
 
141
- // Hover area
142
- .#{$prefix}--popover--bottom.#{$prefix}--popover::before,
143
- .#{$prefix}--popover--bottom-left.#{$prefix}--popover::before,
144
- .#{$prefix}--popover--bottom-right.#{$prefix}--popover::before {
188
+ // Popover hover area placement
189
+ .#{$prefix}--popover--bottom .#{$prefix}--popover-content::before,
190
+ .#{$prefix}--popover--bottom-left .#{$prefix}--popover-content::before,
191
+ .#{$prefix}--popover--bottom-right .#{$prefix}--popover-content::before {
145
192
  top: 0;
146
193
  right: 0;
147
194
  left: 0;
148
- height: var(--cds-popover-offset);
195
+ height: $popover-offset;
149
196
  transform: translateY(-100%);
150
197
  }
151
198
 
152
- //-----------------------------------------------------------------------------
153
- // TOP
154
- //-----------------------------------------------------------------------------
155
- .#{$prefix}--popover--top {
156
- bottom: 100%;
157
- left: 50%;
158
- transform: translate(-50%, calc(-1 * var(--cds-popover-offset)));
159
- }
160
-
161
- @include place-caret(top) {
199
+ // Caret placement
200
+ .#{$prefix}--popover--bottom .#{$prefix}--popover-caret,
201
+ .#{$prefix}--popover--bottom-left .#{$prefix}--popover-caret,
202
+ .#{$prefix}--popover--bottom-right .#{$prefix}--popover-caret {
162
203
  bottom: 0;
163
204
  left: 50%;
164
- transform: translate(-50%, 50%) rotate(45deg);
205
+ width: rem(12px);
206
+ height: rem(6px);
207
+ clip-path: polygon(0% 100%, 50% 0%, 100% 100%);
208
+ transform: translate(-50%, $popover-offset);
165
209
  }
166
210
 
167
- // Top left
168
- .#{$prefix}--popover--top-left {
169
- bottom: 100%;
170
- left: 0;
171
- transform: translateY(calc(-1 * var(--cds-popover-offset)));
172
- }
211
+ //-----------------------------------------------------------------------------
212
+ // Top
213
+ //-----------------------------------------------------------------------------
173
214
 
174
- @include place-caret(top-left) {
175
- bottom: 0;
176
- left: 0;
177
- transform: translate(var(--cds-popover-caret-offset), 50%) rotate(45deg);
215
+ // Popover content placement
216
+ .#{$prefix}--popover--top .#{$prefix}--popover-content {
217
+ top: 0;
218
+ left: 50%;
219
+ transform: translate(-50%, calc(-100% - $popover-offset));
178
220
  }
179
221
 
180
- // Top right
181
- .#{$prefix}--popover--top-right {
182
- right: 0;
183
- bottom: 100%;
184
- transform: translateY(calc(-1 * var(--cds-popover-offset)));
222
+ .#{$prefix}--popover--top-left .#{$prefix}--popover-content {
223
+ top: 0;
224
+ left: 0;
225
+ transform: translate(0, calc(-100% - $popover-offset));
185
226
  }
186
227
 
187
- @include place-caret(top-right) {
228
+ .#{$prefix}--popover--top-right .#{$prefix}--popover-content {
229
+ top: 0;
188
230
  right: 0;
189
- bottom: 0;
190
- transform: translate(calc(-1 * var(--cds-popover-caret-offset)), 50%)
191
- rotate(45deg);
231
+ transform: translate(0, calc(-100% - $popover-offset));
192
232
  }
193
233
 
194
- // Hover area
195
- .#{$prefix}--popover--top.#{$prefix}--popover::before,
196
- .#{$prefix}--popover--top-left.#{$prefix}--popover::before,
197
- .#{$prefix}--popover--top-right.#{$prefix}--popover::before {
234
+ // Popover hover area placement
235
+ .#{$prefix}--popover--top .#{$prefix}--popover-content::before,
236
+ .#{$prefix}--popover--top-left .#{$prefix}--popover-content::before,
237
+ .#{$prefix}--popover--top-right .#{$prefix}--popover-content::before {
198
238
  right: 0;
199
239
  bottom: 0;
200
240
  left: 0;
201
- height: var(--cds-popover-offset);
241
+ height: $popover-offset;
202
242
  transform: translateY(100%);
203
243
  }
204
244
 
245
+ // Caret placement
246
+ .#{$prefix}--popover--top .#{$prefix}--popover-caret,
247
+ .#{$prefix}--popover--top-left .#{$prefix}--popover-caret,
248
+ .#{$prefix}--popover--top-right .#{$prefix}--popover-caret {
249
+ top: 0;
250
+ left: 50%;
251
+ width: rem(12px);
252
+ height: rem(6px);
253
+ clip-path: polygon(0% 0%, 50% 100%, 100% 0%);
254
+ transform: translate(-50%, calc(-1 * $popover-offset));
255
+ }
256
+
205
257
  //-----------------------------------------------------------------------------
206
258
  // Right
207
259
  //-----------------------------------------------------------------------------
208
- .#{$prefix}--popover--right {
209
- top: 50%;
210
- left: 100%;
211
- transform: translate(var(--cds-popover-offset), -50%);
212
- }
213
260
 
214
- @include place-caret(right) {
261
+ // Popover content placement
262
+ .#{$prefix}--popover--right .#{$prefix}--popover-content {
215
263
  top: 50%;
216
- left: 0;
217
- transform: translate(-50%, -50%) rotate(45deg);
218
- }
219
-
220
- // Right top
221
- .#{$prefix}--popover--right-top {
222
- top: 0;
223
264
  left: 100%;
224
- transform: translateX($popover-offset);
265
+ // Add in 0.1px to prevent rounding errors where the content is
266
+ // moved farther than the caret
267
+ transform: translate($popover-offset, -50%);
225
268
  }
226
269
 
227
- @include place-caret(right-top) {
270
+ .#{$prefix}--popover--right-top .#{$prefix}--popover-content {
228
271
  top: 0;
229
- left: 0;
230
- transform: translate(-50%, var(--cds-popover-caret-offset)) rotate(45deg);
231
- }
232
-
233
- // Right bottom
234
- .#{$prefix}--popover--right-bottom {
235
- bottom: 0;
236
272
  left: 100%;
237
- transform: translateX(var(--cds-popover-offset));
273
+ transform: translate($popover-offset, 0);
238
274
  }
239
275
 
240
- @include place-caret(right-bottom) {
276
+ .#{$prefix}--popover--right-bottom .#{$prefix}--popover-content {
241
277
  bottom: 0;
242
- left: 0;
243
- transform: translate(-50%, calc(-1 * var(--cds-popover-caret-offset)))
244
- rotate(45deg);
278
+ left: 100%;
279
+ transform: translate($popover-offset, 0);
245
280
  }
246
281
 
247
- // Hover area
248
- .#{$prefix}--popover--right.#{$prefix}--popover::before,
249
- .#{$prefix}--popover--right-top.#{$prefix}--popover::before,
250
- .#{$prefix}--popover--right-bottom.#{$prefix}--popover::before {
282
+ // Popover hover area placement
283
+ .#{$prefix}--popover--right .#{$prefix}--popover-content::before,
284
+ .#{$prefix}--popover--right-top .#{$prefix}--popover-content::before,
285
+ .#{$prefix}--popover--right-bottom .#{$prefix}--popover-content::before {
251
286
  top: 0;
252
287
  bottom: 0;
253
288
  left: 0;
254
- width: var(--cds-popover-offset);
289
+ width: $popover-offset;
255
290
  transform: translateX(-100%);
256
291
  }
257
292
 
293
+ // Caret placement
294
+ .#{$prefix}--popover--right .#{$prefix}--popover-caret,
295
+ .#{$prefix}--popover--right-top .#{$prefix}--popover-caret,
296
+ .#{$prefix}--popover--right-bottom .#{$prefix}--popover-caret {
297
+ top: 50%;
298
+ left: 100%;
299
+ width: rem(6px);
300
+ height: rem(12px);
301
+ clip-path: polygon(0% 50%, 100% 0%, 100% 100%);
302
+ transform: translate(calc($popover-offset - 100%), -50%);
303
+ }
304
+
258
305
  //-----------------------------------------------------------------------------
259
306
  // Left
260
307
  //-----------------------------------------------------------------------------
261
- .#{$prefix}--popover--left {
262
- top: 50%;
263
- right: 100%;
264
- transform: translate(calc(-1 * var(--cds-popover-offset)), -50%);
265
- }
266
308
 
267
- @include place-caret(left) {
309
+ // Popover content placement
310
+ .#{$prefix}--popover--left .#{$prefix}--popover-content {
268
311
  top: 50%;
269
- right: 0;
270
- transform: translate(50%, -50%) rotate(45deg);
271
- }
272
-
273
- // Left top
274
- .#{$prefix}--popover--left-top {
275
- top: 0;
276
312
  right: 100%;
277
- transform: translateX(calc(-1 * var(--cds-popover-offset)));
313
+ // Add in 0.1px to prevent rounding errors where the content is
314
+ // moved farther than the caret
315
+ transform: translate(calc(-1 * $popover-offset + 0.1px), -50%);
278
316
  }
279
317
 
280
- @include place-caret(left-top) {
318
+ .#{$prefix}--popover--left-top .#{$prefix}--popover-content {
281
319
  top: 0;
282
- right: 0;
283
- transform: translate(50%, var(--cds-popover-caret-offset)) rotate(45deg);
284
- }
285
-
286
- // Left bottom
287
- .#{$prefix}--popover--left-bottom {
288
320
  right: 100%;
289
- bottom: 0;
290
- transform: translateX(calc(-1 * var(--cds-popover-offset)));
321
+ // Add in 0.1px to prevent rounding errors where the content is
322
+ // moved farther than the caret
323
+ transform: translate(calc(-1 * $popover-offset + 0.1px), 0);
291
324
  }
292
325
 
293
- @include place-caret(left-bottom) {
294
- right: 0;
326
+ .#{$prefix}--popover--left-bottom .#{$prefix}--popover-content {
327
+ right: 100%;
295
328
  bottom: 0;
296
- transform: translate(50%, calc(-1 * var(--cds-popover-caret-offset)))
297
- rotate(45deg);
329
+ // Add in 0.1px to prevent rounding errors where the content is
330
+ // moved farther than the caret
331
+ transform: translate(calc(-1 * $popover-offset + 0.1px), 0);
298
332
  }
299
333
 
300
- // Hover area
301
- .#{$prefix}--popover--left.#{$prefix}--popover::before,
302
- .#{$prefix}--popover--left-top.#{$prefix}--popover::before,
303
- .#{$prefix}--popover--left-bottom.#{$prefix}--popover::before {
334
+ // Popover hover area placement
335
+ .#{$prefix}--popover--left .#{$prefix}--popover-content::before,
336
+ .#{$prefix}--popover--left-top .#{$prefix}--popover-content::before,
337
+ .#{$prefix}--popover--left-bottom .#{$prefix}--popover-content::before {
304
338
  top: 0;
305
339
  right: 0;
306
340
  bottom: 0;
307
- width: var(--cds-popover-offset);
341
+ width: $popover-offset;
308
342
  transform: translateX(100%);
309
343
  }
310
- }
311
344
 
312
- /// Helper for placing the caret inside a popover. The selectors here can get
313
- /// distracting in the main stylesheet, but ultimately they target the ::before
314
- /// and ::after pseudo-elements for the given direction. The @content block
315
- /// passed in should appropriately position the caret for the given direction.
316
- @mixin place-caret($direction) {
317
- .#{$prefix}--popover--caret.#{$prefix}--popover--#{$direction}
318
- .#{$prefix}--popover-contents::before,
319
- .#{$prefix}--popover--caret.#{$prefix}--popover--#{$direction}
320
- .#{$prefix}--popover-contents::after {
321
- @content;
345
+ // Caret placement
346
+ .#{$prefix}--popover--left .#{$prefix}--popover-caret,
347
+ .#{$prefix}--popover--left-top .#{$prefix}--popover-caret,
348
+ .#{$prefix}--popover--left-bottom .#{$prefix}--popover-caret {
349
+ top: 50%;
350
+ right: 100%;
351
+ width: rem(6px);
352
+ height: rem(12px);
353
+ clip-path: polygon(0% 0%, 100% 50%, 0% 100%);
354
+ transform: translate(calc(-1 * $popover-offset + 100%), -50%);
322
355
  }
323
356
  }
@@ -225,6 +225,12 @@ $progress-indicator-bar-width: 1px inset transparent !default;
225
225
  cursor: pointer;
226
226
  }
227
227
 
228
+ .#{$prefix}--progress-step-button:not(.#{$prefix}--progress-step-button--unclickable)
229
+ .#{$prefix}--progress-label:active {
230
+ box-shadow: 0 rem(3px) 0 0 $interactive;
231
+ color: $interactive;
232
+ }
233
+
228
234
  //DISABLED STYLING
229
235
  .#{$prefix}--progress-step--disabled {
230
236
  cursor: not-allowed;