@carbon/styles 1.29.0 → 1.30.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 (34) hide show
  1. package/css/styles.css +201 -258
  2. package/css/styles.min.css +1 -1
  3. package/package.json +10 -10
  4. package/scss/__tests__/__snapshots__/motion-test.js.snap +6 -0
  5. package/scss/__tests__/__snapshots__/spacing-test.js.snap +56 -0
  6. package/scss/__tests__/__snapshots__/type-test.js.snap +1547 -1381
  7. package/scss/__tests__/spacing-test.js +31 -0
  8. package/scss/__tests__/type-test.js +2 -0
  9. package/scss/_spacing.scss +5 -1
  10. package/scss/components/content-switcher/_content-switcher.scss +6 -2
  11. package/scss/components/data-table/_data-table.scss +12 -4
  12. package/scss/components/data-table/_mixins.scss +6 -2
  13. package/scss/components/data-table/action/_data-table-action.scss +6 -2
  14. package/scss/components/data-table/expandable/_data-table-expandable.scss +3 -1
  15. package/scss/components/data-table/sort/_data-table-sort.scss +3 -1
  16. package/scss/components/file-uploader/_file-uploader.scss +0 -3
  17. package/scss/components/fluid-date-picker/_fluid-date-picker.scss +21 -7
  18. package/scss/components/fluid-list-box/_fluid-list-box.scss +9 -3
  19. package/scss/components/fluid-multiselect/_fluid-multiselect.scss +3 -1
  20. package/scss/components/fluid-number-input/_fluid-number-input.scss +24 -8
  21. package/scss/components/form/_form.scss +3 -7
  22. package/scss/components/multiselect/_multiselect.scss +3 -1
  23. package/scss/components/notification/_actionable-notification.scss +46 -19
  24. package/scss/components/notification/_inline-notification.scss +10 -3
  25. package/scss/components/notification/_toast-notification.scss +7 -2
  26. package/scss/components/overflow-menu/_overflow-menu.scss +3 -1
  27. package/scss/components/popover/_popover.scss +15 -4
  28. package/scss/components/progress-indicator/_progress-indicator.scss +3 -1
  29. package/scss/components/structured-list/_structured-list.scss +11 -19
  30. package/scss/components/tabs/_tabs.scss +58 -6
  31. package/scss/components/tile/_tile.scss +42 -5
  32. package/scss/components/ui-shell/header/_header.scss +25 -10
  33. package/scss/components/ui-shell/side-nav/_side-nav.scss +21 -2
  34. package/scss/type/_index.scss +1 -0
@@ -21,14 +21,8 @@
21
21
  .#{$prefix}--structured-list--selection .#{$prefix}--structured-list-th {
22
22
  @include padding--data-structured-list;
23
23
  }
24
- @if enabled('enable-v11-release') {
25
- .#{$prefix}--structured-list-row--focused-within {
26
- @include focus-outline('outline');
27
- }
28
- } @else {
29
- .#{$prefix}--structured-list-input {
30
- display: none;
31
- }
24
+ .#{$prefix}--structured-list-row--focused-within {
25
+ @include focus-outline('outline');
32
26
  }
33
27
 
34
28
  .#{$prefix}--structured-list {
@@ -36,9 +30,6 @@
36
30
 
37
31
  display: table;
38
32
  width: 100%;
39
- @if not enabled('enable-v11-release') {
40
- margin-bottom: 5rem;
41
- }
42
33
 
43
34
  background-color: transparent;
44
35
  border-collapse: collapse;
@@ -96,14 +87,18 @@
96
87
  }
97
88
 
98
89
  .#{$prefix}--structured-list--selection
99
- .#{$prefix}--structured-list-row:hover:not(.#{$prefix}--structured-list-row--header-row):not(.#{$prefix}--structured-list-row--selected) {
90
+ .#{$prefix}--structured-list-row:hover:not(
91
+ .#{$prefix}--structured-list-row--header-row
92
+ ):not(.#{$prefix}--structured-list-row--selected) {
100
93
  border-color: $layer-hover;
101
94
  background-color: $layer-hover;
102
95
  cursor: pointer;
103
96
  }
104
97
 
105
98
  .#{$prefix}--structured-list--selection
106
- .#{$prefix}--structured-list-row:hover:not(.#{$prefix}--structured-list-row--header-row):not(.#{$prefix}--structured-list-row--selected)
99
+ .#{$prefix}--structured-list-row:hover:not(
100
+ .#{$prefix}--structured-list-row--header-row
101
+ ):not(.#{$prefix}--structured-list-row--selected)
107
102
  + .#{$prefix}--structured-list-row {
108
103
  border-color: $layer-hover;
109
104
  }
@@ -130,13 +125,10 @@
130
125
  cursor: inherit;
131
126
  }
132
127
 
133
- @if not enabled('enable-v11-release') {
134
- .#{$prefix}--structured-list-row:focus:not(.#{$prefix}--structured-list-row--header-row) {
135
- @include focus-outline('outline');
136
- }
137
- }
138
128
  .#{$prefix}--structured-list--selection
139
- .#{$prefix}--structured-list-row:hover:not(.#{$prefix}--structured-list-row--header-row)
129
+ .#{$prefix}--structured-list-row:hover:not(
130
+ .#{$prefix}--structured-list-row--header-row
131
+ )
140
132
  > .#{$prefix}--structured-list-td,
141
133
  .#{$prefix}--structured-list--selection
142
134
  .#{$prefix}--structured-list-row.#{$prefix}--structured-list-row--selected
@@ -276,10 +276,60 @@ $icon-tab-size: custom-property.get-var('icon-tab-size', rem(40px));
276
276
  //-----------------------------
277
277
  // Icon
278
278
  //-----------------------------
279
+
280
+ &.#{$prefix}--tabs--contained
281
+ .#{$prefix}--tabs__nav-item:not(.#{$prefix}--tabs__nav-item--disabled)
282
+ .#{$prefix}--tabs__nav-item--icon
283
+ .#{$prefix}--tabs__nav-item--close-icon {
284
+ padding: $spacing-05;
285
+ margin-top: -$spacing-03;
286
+ margin-right: -$spacing-05;
287
+ margin-left: -$spacing-05;
288
+
289
+ &:hover {
290
+ background-color: inherit;
291
+ }
292
+
293
+ svg {
294
+ width: 24px;
295
+ height: 24px;
296
+ padding: $spacing-02;
297
+ margin: -$spacing-02;
298
+ }
299
+
300
+ svg:hover {
301
+ background-color: $layer-accent-hover;
302
+ }
303
+ }
304
+
305
+ &.#{$prefix}--tabs--contained
306
+ .#{$prefix}--tabs__nav-item:not(
307
+ .#{$prefix}--tabs__nav-item--disabled
308
+ ).#{$prefix}--tabs__nav-item--selected
309
+ .#{$prefix}--tabs__nav-item--icon
310
+ .#{$prefix}--tabs__nav-item--close-icon
311
+ svg:hover {
312
+ background-color: $layer-hover;
313
+ }
314
+
315
+ .#{$prefix}--tabs__nav-item:not(.#{$prefix}--tabs__nav-item--disabled)
316
+ .#{$prefix}--tabs__nav-item--icon
317
+ .#{$prefix}--tabs__nav-item--close-icon:hover {
318
+ background-color: $background-hover;
319
+ }
320
+
279
321
  .#{$prefix}--tabs__nav-item--icon {
280
322
  display: flex;
281
323
  align-items: center;
282
324
  padding-left: $spacing-03;
325
+
326
+ .#{$prefix}--tabs__nav-item--close-icon {
327
+ padding: $spacing-02;
328
+ margin: -$spacing-02;
329
+ cursor: pointer;
330
+ line-height: 0;
331
+ pointer-events: auto;
332
+ }
283
333
  }
284
334
 
285
335
  &.#{$prefix}--tabs--contained .#{$prefix}--tabs__nav-item--icon {
@@ -294,10 +344,6 @@ $icon-tab-size: custom-property.get-var('icon-tab-size', rem(40px));
294
344
  @include focus-outline('reset');
295
345
  @include type-style('body-compact-01');
296
346
 
297
- @if not feature-flag-enabled('enable-v11-release') {
298
- width: rem(160px);
299
- }
300
-
301
347
  overflow: hidden;
302
348
  padding: $spacing-04 $spacing-05 $spacing-03;
303
349
  border-bottom: $tab-underline-color;
@@ -368,13 +414,19 @@ $icon-tab-size: custom-property.get-var('icon-tab-size', rem(40px));
368
414
  // Item Hover
369
415
  //-----------------------------
370
416
  &:not(.#{$prefix}--tabs--contained)
371
- .#{$prefix}--tabs__nav-item:not(.#{$prefix}--tabs__nav-item--selected):not(.#{$prefix}--tabs__nav-item--disabled):hover {
417
+ .#{$prefix}--tabs__nav-item:not(
418
+ .#{$prefix}--tabs__nav-item--selected
419
+ ):not(.#{$prefix}--tabs__nav-item--disabled):hover {
372
420
  border-bottom: $tab-underline-color-hover;
373
421
  color: $text-primary;
374
422
  }
375
423
 
376
424
  &.#{$prefix}--tabs--contained
377
- .#{$prefix}--tabs__nav-item:not(.#{$prefix}--tabs__nav-item--disabled):hover {
425
+ .#{$prefix}--tabs__nav-item:not(
426
+ .#{$prefix}--tabs__nav-item--selected
427
+ ):not(.#{$prefix}--tabs__nav-item--disabled):not(
428
+ .#{$prefix}--tabs__nav-item--hover-off
429
+ ):hover {
378
430
  background-color: $layer-accent-hover;
379
431
  color: $text-primary;
380
432
  }
@@ -20,7 +20,7 @@
20
20
  /// Tile styles
21
21
  /// @access public
22
22
  /// @group tile
23
- @mixin tile($local-enable-experimental-tile-contrast: false) {
23
+ @mixin tile($enable-experimental-tile-contrast: false) {
24
24
  .#{$prefix}--tile-group {
25
25
  @include reset;
26
26
  }
@@ -65,7 +65,7 @@
65
65
 
66
66
  @if (
67
67
  enabled('enable-experimental-tile-contrast') or
68
- $local-enable-experimental-tile-contrast
68
+ $enable-experimental-tile-contrast
69
69
  ) {
70
70
  border: 1px solid $border-tile;
71
71
  }
@@ -102,6 +102,36 @@
102
102
  padding: $spacing-05;
103
103
  background-color: $layer;
104
104
  color: $text-disabled;
105
+ cursor: not-allowed;
106
+
107
+ @if (
108
+ enabled('enable-experimental-tile-contrast') or
109
+ $enable-experimental-tile-contrast
110
+ ) {
111
+ border: 1px solid $border-disabled;
112
+ }
113
+ }
114
+
115
+ .#{$prefix}--tile--clickable .#{$prefix}--tile--icon,
116
+ .#{$prefix}--tile--clickable.#{$prefix}--link--disabled
117
+ .#{$prefix}--tile--disabled-icon {
118
+ position: absolute;
119
+ right: 1rem;
120
+ bottom: 1rem;
121
+ }
122
+
123
+ .#{$prefix}--tile--clickable .#{$prefix}--tile--icon {
124
+ fill: $icon-interactive;
125
+ }
126
+
127
+ .#{$prefix}--tile--clickable.#{$prefix}--link--disabled
128
+ .#{$prefix}--tile--disabled-icon {
129
+ fill: $icon-disabled;
130
+ }
131
+
132
+ .#{$prefix}--tile--clickable.#{$prefix}--link--disabled
133
+ .#{$prefix}--tile--icon {
134
+ display: none;
105
135
  }
106
136
 
107
137
  .#{$prefix}--tile--selectable {
@@ -110,7 +140,7 @@
110
140
 
111
141
  @if (
112
142
  enabled('enable-experimental-tile-contrast') or
113
- $local-enable-experimental-tile-contrast
143
+ $enable-experimental-tile-contrast
114
144
  ) {
115
145
  border: 1px solid $border-tile;
116
146
  }
@@ -207,7 +237,7 @@
207
237
 
208
238
  @if (
209
239
  enabled('enable-experimental-tile-contrast') or
210
- $local-enable-experimental-tile-contrast
240
+ $enable-experimental-tile-contrast
211
241
  ) {
212
242
  border: 1px solid $border-tile;
213
243
  }
@@ -307,6 +337,13 @@
307
337
  background-color: $layer;
308
338
  color: $text-disabled;
309
339
  cursor: not-allowed;
340
+
341
+ @if (
342
+ enabled('enable-experimental-tile-contrast') or
343
+ $enable-experimental-tile-contrast
344
+ ) {
345
+ border: 1px solid $border-disabled;
346
+ }
310
347
  }
311
348
 
312
349
  // V11: Possibly deprecate
@@ -315,7 +352,7 @@
315
352
  }
316
353
 
317
354
  .#{$prefix}--tile--disabled.#{$prefix}--tile--is-selected {
318
- border-color: button.$button-disabled;
355
+ border-color: $border-disabled;
319
356
  }
320
357
 
321
358
  .#{$prefix}--tile--disabled .#{$prefix}--tile__checkmark svg {
@@ -254,12 +254,11 @@
254
254
  a.#{$prefix}--header__menu-item[aria-current='page']::after,
255
255
  .#{$prefix}--header__menu-item--current::after {
256
256
  position: absolute;
257
- top: 0;
258
- right: 0;
259
257
  bottom: -2px;
260
- left: 0;
261
- width: 100%;
262
- border-bottom: 3px solid $border-interactive;
258
+ left: -2px;
259
+ width: calc(100% + 4px);
260
+ height: 3px;
261
+ background-color: $border-interactive;
263
262
  content: '';
264
263
  }
265
264
 
@@ -271,16 +270,21 @@
271
270
  .#{$prefix}--header__submenu .#{$prefix}--header__menu {
272
271
  a.#{$prefix}--header__menu-item[aria-current='page']::after,
273
272
  .#{$prefix}--header__menu-item--current::after {
274
- bottom: 0;
273
+ top: -2px;
275
274
  left: -2px;
276
- border-bottom: none;
277
- border-left: 3px solid $border-interactive;
275
+ width: 3px;
276
+ height: calc(100% + 4px);
277
+ background-color: $border-interactive;
278
278
  }
279
279
 
280
280
  a.#{$prefix}--header__menu-item[aria-current='page']:focus::after,
281
281
  .#{$prefix}--header__menu-item--current:focus::after {
282
- left: 0;
283
- border-left: 3px solid $border-interactive;
282
+ top: -2px;
283
+ left: -2px;
284
+ // extra, hidden width prevents flickering on focus change
285
+ width: 5px;
286
+ height: calc(100% + 4px);
287
+ background-color: $border-interactive;
284
288
  }
285
289
  }
286
290
 
@@ -351,6 +355,17 @@
351
355
  color: $text-primary;
352
356
  }
353
357
 
358
+ .#{$prefix}--header__menu-title[aria-expanded='true']
359
+ + .#{$prefix}--header__menu
360
+ .#{$prefix}--header__menu-item.#{$prefix}--header__menu-item--current {
361
+ // used for both desktop and mobile
362
+ background-color: $layer-selected;
363
+
364
+ &:hover {
365
+ background-color: $layer-selected-hover;
366
+ }
367
+ }
368
+
354
369
  .#{$prefix}--header__menu .#{$prefix}--header__menu-item {
355
370
  height: mini-units(6);
356
371
  }
@@ -68,7 +68,9 @@
68
68
  width: 0;
69
69
  }
70
70
 
71
- .#{$prefix}--side-nav.#{$prefix}--side-nav--rail:not(.#{$prefix}--side-nav--fixed):hover,
71
+ .#{$prefix}--side-nav.#{$prefix}--side-nav--rail:not(
72
+ .#{$prefix}--side-nav--fixed
73
+ ):hover,
72
74
  .#{$prefix}--side-nav--expanded {
73
75
  width: mini-units(32);
74
76
  }
@@ -155,7 +157,9 @@
155
157
  .#{$prefix}--side-nav__item:not(.#{$prefix}--side-nav__item--active)
156
158
  > .#{$prefix}--side-nav__link:hover,
157
159
  .#{$prefix}--side-nav__menu
158
- a.#{$prefix}--side-nav__link:not(.#{$prefix}--side-nav__link--current):not([aria-current='page']):hover,
160
+ a.#{$prefix}--side-nav__link:not(.#{$prefix}--side-nav__link--current):not(
161
+ [aria-current='page']
162
+ ):hover,
159
163
  .#{$prefix}--side-nav a.#{$prefix}--header__menu-item:hover,
160
164
  .#{$prefix}--side-nav
161
165
  .#{$prefix}--header__menu-title[aria-expanded='true']:hover {
@@ -491,6 +495,21 @@
491
495
  background-color: $background-hover;
492
496
  color: $text-primary;
493
497
  }
498
+
499
+ // non-hover, selected state inherited from `_header.scss`
500
+ a.#{$prefix}--header__menu-item--current:hover {
501
+ background-color: $layer-selected-hover;
502
+ }
503
+ }
504
+
505
+ .#{$prefix}--side-nav
506
+ .#{$prefix}--side-nav__header-navigation
507
+ a.#{$prefix}--header__menu-item[aria-current='page']::after,
508
+ .#{$prefix}--side-nav
509
+ .#{$prefix}--side-nav__header-navigation
510
+ .#{$prefix}--header__menu-item--current::after {
511
+ width: 3px;
512
+ height: calc(100% + 4px);
494
513
  }
495
514
 
496
515
  .#{$prefix}--side-nav
@@ -19,6 +19,7 @@
19
19
 
20
20
  // Variables
21
21
  $caption-01,
22
+ $caption-02,
22
23
  $label-01,
23
24
  $label-02,
24
25
  $helper-text-01,