@carbon/styles 1.113.0 → 1.114.0-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 (40) hide show
  1. package/css/styles.css +1651 -198
  2. package/css/styles.min.css +1 -1
  3. package/index.scss +2 -1
  4. package/package.json +9 -9
  5. package/scss/__tests__/__snapshots__/border-radius-test.js.snap +24 -0
  6. package/scss/__tests__/__snapshots__/colors-test.js.snap +1 -1
  7. package/scss/__tests__/__snapshots__/config-test.js.snap +1 -1
  8. package/scss/__tests__/__snapshots__/spacing-test.js.snap +1 -1
  9. package/scss/__tests__/__snapshots__/type-test.js.snap +1 -1
  10. package/scss/__tests__/border-radius-test.js +31 -0
  11. package/scss/_border-radius.scss +10 -0
  12. package/scss/components/EditInPlace/_edit-in-place.scss +188 -0
  13. package/scss/components/EditInPlace/_index.scss +11 -0
  14. package/scss/components/FullPageError/_full-page-error.scss +91 -0
  15. package/scss/components/FullPageError/_index.scss +11 -0
  16. package/scss/components/InterstitialScreen/_index.scss +11 -0
  17. package/scss/components/InterstitialScreen/_interstitial-screen.scss +181 -0
  18. package/scss/components/OptionsTile/_index.scss +11 -0
  19. package/scss/components/OptionsTile/_options-tile.scss +240 -0
  20. package/scss/components/__tests__/data-table-test.js +43 -1
  21. package/scss/components/__tests__/file-uploader.js +30 -0
  22. package/scss/components/_index.scss +9 -1
  23. package/scss/components/big-number/_big-number.scss +164 -0
  24. package/scss/components/big-number/_index.scss +11 -0
  25. package/scss/components/card/_card.scss +37 -12
  26. package/scss/components/coachmark/_coachmark-beacon.scss +159 -0
  27. package/scss/components/coachmark/_coachmark-tagline.scss +142 -0
  28. package/scss/components/coachmark/_coachmark.scss +56 -0
  29. package/scss/components/coachmark/_index.scss +17 -0
  30. package/scss/components/data-table/_data-table.scss +140 -110
  31. package/scss/components/data-table/expandable/_data-table-expandable.scss +86 -59
  32. package/scss/components/data-table/skeleton/_data-table-skeleton.scss +10 -8
  33. package/scss/components/date-picker/_date-picker-next.scss +20 -20
  34. package/scss/components/file-uploader/_file-uploader.scss +6 -4
  35. package/scss/components/scroll-gradient/_index.scss +11 -0
  36. package/scss/components/scroll-gradient/_scroll-gradient.scss +107 -0
  37. package/scss/components/slider/_slider.scss +38 -15
  38. package/scss/components/tabs/_tabs.scss +11 -0
  39. package/scss/components/user-avatar/_index.scss +11 -0
  40. package/scss/components/user-avatar/_user-avatar.scss +160 -0
@@ -0,0 +1,11 @@
1
+ //
2
+ // Copyright IBM Corp. 2024, 2026
3
+ //
4
+ // This source code is licensed under the Apache-2.0 license found in the
5
+ // LICENSE file in the root directory of this source tree.
6
+ //
7
+
8
+ @forward 'scroll-gradient';
9
+ @use 'scroll-gradient';
10
+
11
+ @include scroll-gradient.scroll-gradient;
@@ -0,0 +1,107 @@
1
+ //
2
+ // Copyright IBM Corp. 2024, 2026
3
+ //
4
+ // This source code is licensed under the Apache-2.0 license found in the
5
+ // LICENSE file in the root directory of this source tree.
6
+ //
7
+
8
+ //-----------------------------
9
+ // Scroll gradient
10
+ //-----------------------------
11
+
12
+ @use '../../config' as *;
13
+ @use '../../spacing' as *;
14
+
15
+ /// ScrollGradient styles
16
+ /// @access public
17
+ /// @group scroll-gradient
18
+ @mixin scroll-gradient {
19
+ $intersection-value: 3rem;
20
+
21
+ .#{$prefix}--scroll-gradient {
22
+ position: relative;
23
+ display: flex;
24
+ align-items: stretch;
25
+ justify-content: stretch;
26
+ block-size: inherit;
27
+ inline-size: inherit;
28
+ }
29
+
30
+ .#{$prefix}--scroll-gradient__content {
31
+ display: grid;
32
+ overflow: auto;
33
+ block-size: inherit;
34
+ grid-template-columns: 1fr;
35
+ inline-size: 100%;
36
+ }
37
+
38
+ .#{$prefix}--scroll-gradient__content-children {
39
+ block-size: 100%;
40
+ grid-column-start: 1;
41
+ grid-row-start: 1;
42
+ inline-size: 100%;
43
+ }
44
+
45
+ .#{$prefix}--scroll-gradient__content-children > * {
46
+ grid-area: 1 / 1;
47
+ }
48
+
49
+ .#{$prefix}--scroll-gradient__start-vertical,
50
+ .#{$prefix}--scroll-gradient__start-horizontal,
51
+ .#{$prefix}--scroll-gradient__end-vertical,
52
+ .#{$prefix}--scroll-gradient__end-horizontal {
53
+ position: absolute;
54
+ z-index: 1;
55
+ display: none;
56
+ pointer-events: none;
57
+ }
58
+
59
+ .#{$prefix}--scroll-gradient--y-scrollable
60
+ .#{$prefix}--scroll-gradient__start-vertical {
61
+ block-size: $spacing-09;
62
+ inset-block-start: 0;
63
+ inset-inline-start: 0;
64
+ }
65
+
66
+ .#{$prefix}--scroll-gradient--y-scrollable
67
+ .#{$prefix}--scroll-gradient__end-vertical {
68
+ block-size: $spacing-09;
69
+ inset-block-end: 0;
70
+ inset-inline-start: 0;
71
+ }
72
+
73
+ .#{$prefix}--scroll-gradient--x-scrollable
74
+ .#{$prefix}--scroll-gradient__start-horizontal {
75
+ inline-size: $spacing-09;
76
+ inset-block-start: 0;
77
+ inset-inline-start: 0;
78
+ }
79
+
80
+ .#{$prefix}--scroll-gradient--x-scrollable
81
+ .#{$prefix}--scroll-gradient__end-horizontal {
82
+ inline-size: $spacing-09;
83
+ inset-block-start: 0;
84
+ inset-inline-end: 0;
85
+ }
86
+
87
+ .#{$prefix}--scroll-gradient [data-start-vertical],
88
+ .#{$prefix}--scroll-gradient [data-end-vertical] {
89
+ block-size: $intersection-value;
90
+ grid-column-start: 1;
91
+ grid-row-start: 1;
92
+ inline-size: 100%;
93
+ }
94
+
95
+ .#{$prefix}--scroll-gradient [data-end-vertical],
96
+ .#{$prefix}--scroll-gradient [data-end-horizontal] {
97
+ place-self: flex-end;
98
+ }
99
+
100
+ .#{$prefix}--scroll-gradient [data-start-horizontal],
101
+ .#{$prefix}--scroll-gradient [data-end-horizontal] {
102
+ block-size: 100%;
103
+ grid-column-start: 1;
104
+ grid-row-start: 1;
105
+ inline-size: $intersection-value;
106
+ }
107
+ }
@@ -1,5 +1,5 @@
1
1
  //
2
- // Copyright IBM Corp. 2016, 2023
2
+ // Copyright IBM Corp. 2016, 2026
3
3
  //
4
4
  // This source code is licensed under the Apache-2.0 license found in the
5
5
  // LICENSE file in the root directory of this source tree.
@@ -198,9 +198,11 @@
198
198
  background $duration-fast-02 motion(standard, productive),
199
199
  box-shadow $duration-fast-02 motion(standard, productive);
200
200
 
201
- &:hover {
202
- // 20px / 14px = 1.4286
203
- transform: scale(1.4286);
201
+ @media (any-hover: hover) {
202
+ &:hover {
203
+ // 20px / 14px = 1.4286
204
+ transform: scale(1.4286);
205
+ }
204
206
  }
205
207
 
206
208
  &:focus {
@@ -248,11 +250,13 @@
248
250
  inset-inline-end: 0;
249
251
  }
250
252
 
251
- &:hover {
252
- transform: none;
253
+ @media (any-hover: hover) {
254
+ &:hover {
255
+ transform: none;
253
256
 
254
- .#{$prefix}--slider__thumb-icon {
255
- fill: $text-secondary;
257
+ .#{$prefix}--slider__thumb-icon {
258
+ fill: $text-secondary;
259
+ }
256
260
  }
257
261
  }
258
262
 
@@ -289,11 +293,16 @@
289
293
  inset-inline: 0 auto;
290
294
  }
291
295
 
292
- &:hover,
293
296
  &:active,
294
297
  &:focus {
295
298
  transform: none;
296
299
  }
300
+
301
+ @media (any-hover: hover) {
302
+ &:hover {
303
+ transform: none;
304
+ }
305
+ }
297
306
  }
298
307
 
299
308
  .#{$prefix}--slider__input {
@@ -376,9 +385,11 @@
376
385
  .#{$prefix}--slider--disabled .#{$prefix}--slider__thumb {
377
386
  background-color: $border-disabled;
378
387
 
379
- &:hover {
380
- cursor: not-allowed;
381
- transform: none;
388
+ @media (any-hover: hover) {
389
+ &:hover {
390
+ cursor: not-allowed;
391
+ transform: none;
392
+ }
382
393
  }
383
394
 
384
395
  &:focus {
@@ -400,12 +411,18 @@
400
411
  background-color: transparent;
401
412
 
402
413
  &:active,
403
- &:hover,
404
414
  &:focus {
405
415
  background-color: transparent;
406
416
  transform: none;
407
417
  }
408
418
 
419
+ @media (any-hover: hover) {
420
+ &:hover {
421
+ background-color: transparent;
422
+ transform: none;
423
+ }
424
+ }
425
+
409
426
  .#{$prefix}--slider__thumb-icon {
410
427
  fill: $border-disabled;
411
428
  }
@@ -430,11 +447,17 @@
430
447
  transition: none;
431
448
 
432
449
  &:active,
433
- &:focus,
434
- &:hover {
450
+ &:focus {
435
451
  color: $text-disabled;
436
452
  outline: none;
437
453
  }
454
+
455
+ @media (any-hover: hover) {
456
+ &:hover {
457
+ color: $text-disabled;
458
+ outline: none;
459
+ }
460
+ }
438
461
  }
439
462
 
440
463
  // readonly state
@@ -827,6 +827,17 @@
827
827
  }
828
828
  }
829
829
 
830
+ //-----------------------------
831
+ // Popover tooltip
832
+ //-----------------------------
833
+ .#{$prefix}--tabs .#{$prefix}--icon-tooltip .#{$prefix}--popover-content {
834
+ @include custom-property.declaration('popover-offset', convert.to-rem(8px));
835
+ }
836
+
837
+ .#{$prefix}--tabs .#{$prefix}--icon-tooltip .#{$prefix}--popover-caret {
838
+ @include custom-property.declaration('popover-offset', convert.to-rem(8px));
839
+ }
840
+
830
841
  .#{$prefix}--tabs.#{$prefix}--tabs--vertical.#{$prefix}--layout--size-sm {
831
842
  .#{$prefix}--tabs__nav-link {
832
843
  .#{$prefix}--tabs__nav-item-label {
@@ -0,0 +1,11 @@
1
+ //
2
+ // Copyright IBM Corp. 2024, 2026
3
+ //
4
+ // This source code is licensed under the Apache-2.0 license found in the
5
+ // LICENSE file in the root directory of this source tree.
6
+ //
7
+
8
+ @forward 'user-avatar';
9
+ @use 'user-avatar';
10
+
11
+ @include user-avatar.user-avatar;
@@ -0,0 +1,160 @@
1
+ //
2
+ // Copyright IBM Corp. 2024, 2026
3
+ //
4
+ // This source code is licensed under the Apache-2.0 license found in the
5
+ // LICENSE file in the root directory of this source tree.
6
+ //
7
+
8
+ @use 'sass:map';
9
+ @use '../../config' as *;
10
+ @use '../../theme' as *;
11
+ @use '../../type' as *;
12
+ @use '../../spacing' as *;
13
+ @use '@carbon/colors' as *;
14
+
15
+ $_sizes: (
16
+ xl: $spacing-10,
17
+ lg: $spacing-09,
18
+ md: $spacing-07,
19
+ sm: $spacing-06,
20
+ );
21
+
22
+ @mixin -size($block-class, $size) {
23
+ $_size: map.get($_sizes, $size);
24
+
25
+ .#{$block-class}--#{$size} {
26
+ block-size: $_size;
27
+ inline-size: $_size;
28
+ }
29
+ }
30
+
31
+ @mixin -photo-size($block-class, $size) {
32
+ $_size: map.get($_sizes, $size);
33
+
34
+ .#{$block-class}__photo--#{$size} {
35
+ border-radius: 100%;
36
+ block-size: $_size;
37
+ inline-size: $_size;
38
+ object-fit: fill;
39
+ }
40
+ }
41
+
42
+ @mixin -set-light-bg($block-class, $order, $color) {
43
+ :root .#{$block-class}--#{$order},
44
+ .#{$prefix}--g10 .#{$block-class}--#{$order},
45
+ .#{$prefix}--white .#{$block-class}--#{$order} {
46
+ background-color: $color;
47
+ }
48
+ }
49
+
50
+ @mixin -set-dark-bg($block-class, $order, $color) {
51
+ .#{$prefix}--g90 .#{$block-class}--#{$order},
52
+ .#{$prefix}--g100 .#{$block-class}--#{$order} {
53
+ background-color: $color;
54
+ }
55
+ }
56
+
57
+ /// UserAvatar styles
58
+ /// @access public
59
+ /// @group user-avatar
60
+ @mixin user-avatar {
61
+ $block-class: #{$prefix}--user-avatar;
62
+
63
+ .#{$block-class} {
64
+ position: relative;
65
+ display: flex;
66
+ align-items: center;
67
+ justify-content: center;
68
+ border: 0.5px solid transparent;
69
+ border-radius: 100%;
70
+ block-size: 4rem;
71
+ color: $text-inverse;
72
+ inline-size: 4rem;
73
+ outline: none;
74
+ outline-offset: 3px;
75
+ }
76
+
77
+ .#{$block-class} svg {
78
+ color: $icon-inverse;
79
+ }
80
+
81
+ .#{$block-class}__tooltip-trigger {
82
+ display: flex;
83
+ box-sizing: border-box;
84
+ align-items: center;
85
+ justify-content: center;
86
+ padding: 0;
87
+ border: 0;
88
+ margin: 0;
89
+ appearance: none;
90
+ background: none;
91
+ block-size: 100%;
92
+ cursor: pointer;
93
+ inline-size: 100%;
94
+ outline: none;
95
+ }
96
+
97
+ .#{$block-class}__tooltip {
98
+ &:focus-within .#{$block-class} {
99
+ outline: 2px solid $focus;
100
+ outline-offset: 1px;
101
+ }
102
+ }
103
+
104
+ .#{$block-class}__photo {
105
+ border-radius: 100%;
106
+ object-fit: contain;
107
+ }
108
+
109
+ @include -size($block-class, 'xl');
110
+ @include -size($block-class, 'lg');
111
+ @include -size($block-class, 'md');
112
+ @include -size($block-class, 'sm');
113
+
114
+ .#{$block-class}--xl {
115
+ @include type-style('heading-04');
116
+ }
117
+
118
+ .#{$block-class}--lg {
119
+ @include type-style('heading-03');
120
+ }
121
+
122
+ .#{$block-class}--md {
123
+ @include type-style('body-compact-01');
124
+ }
125
+
126
+ .#{$block-class}--sm {
127
+ @include type-style('label-01');
128
+ }
129
+
130
+ @include -photo-size($block-class, 'xl');
131
+ @include -photo-size($block-class, 'lg');
132
+ @include -photo-size($block-class, 'md');
133
+ @include -photo-size($block-class, 'sm');
134
+
135
+ @include -set-light-bg($block-class, order-1-cyan, $cyan-60);
136
+ @include -set-light-bg($block-class, order-2-gray, $gray-60);
137
+ @include -set-light-bg($block-class, order-3-green, $green-60);
138
+ @include -set-light-bg($block-class, order-4-magenta, $magenta-60);
139
+ @include -set-light-bg($block-class, order-5-purple, $purple-60);
140
+ @include -set-light-bg($block-class, order-6-teal, $teal-60);
141
+ @include -set-light-bg($block-class, order-7-cyan, $cyan-80);
142
+ @include -set-light-bg($block-class, order-8-gray, $gray-80);
143
+ @include -set-light-bg($block-class, order-9-green, $green-80);
144
+ @include -set-light-bg($block-class, order-10-magenta, $magenta-80);
145
+ @include -set-light-bg($block-class, order-11-purple, $purple-80);
146
+ @include -set-light-bg($block-class, order-12-teal, $teal-80);
147
+
148
+ @include -set-dark-bg($block-class, order-1-cyan, $cyan-50);
149
+ @include -set-dark-bg($block-class, order-2-gray, $gray-50);
150
+ @include -set-dark-bg($block-class, order-3-green, $green-50);
151
+ @include -set-dark-bg($block-class, order-4-magenta, $magenta-50);
152
+ @include -set-dark-bg($block-class, order-5-purple, $purple-50);
153
+ @include -set-dark-bg($block-class, order-6-teal, $teal-50);
154
+ @include -set-dark-bg($block-class, order-7-cyan, $cyan-30);
155
+ @include -set-dark-bg($block-class, order-8-gray, $gray-30);
156
+ @include -set-dark-bg($block-class, order-9-green, $green-30);
157
+ @include -set-dark-bg($block-class, order-10-magenta, $magenta-30);
158
+ @include -set-dark-bg($block-class, order-11-purple, $purple-30);
159
+ @include -set-dark-bg($block-class, order-12-teal, $teal-30);
160
+ }