@carbon/styles 1.31.2 → 1.32.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.
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@carbon/styles",
3
3
  "description": "Styles for the Carbon Design System",
4
- "version": "1.31.2",
4
+ "version": "1.32.0",
5
5
  "license": "Apache-2.0",
6
6
  "repository": {
7
7
  "type": "git",
@@ -59,5 +59,5 @@
59
59
  "scss/**/*.css",
60
60
  "css/**/*.css"
61
61
  ],
62
- "gitHead": "d08d95d74d074985456f6e452d3247789733e199"
62
+ "gitHead": "507ddae3074272a3be1ff98b3940532d74788d3c"
63
63
  }
package/scss/_layout.scss CHANGED
@@ -75,7 +75,7 @@ $layout-tokens: (
75
75
  );
76
76
  }
77
77
 
78
- .#{$prefix}--layout-constraint--#{$group}\:default-#{$step} {
78
+ .#{$prefix}--layout-constraint--#{$group}__default-#{$step} {
79
79
  @include custom-property.declaration(
80
80
  'layout-#{$group}-#{$property}',
81
81
  custom-property.get-var(
@@ -89,7 +89,7 @@ $layout-tokens: (
89
89
  }
90
90
 
91
91
  @each $constraint in ('min', 'max') {
92
- .#{$prefix}--layout-constraint--#{$group}\:#{$constraint}-#{$step} {
92
+ .#{$prefix}--layout-constraint--#{$group}__#{$constraint}-#{$step} {
93
93
  @include custom-property.declaration(
94
94
  'layout-#{$group}-#{$property}-#{$constraint}',
95
95
  custom-property.get-var(
@@ -156,6 +156,7 @@
156
156
  );
157
157
 
158
158
  > :first-child {
159
+ min-width: rem(16px);
159
160
  margin-block-start: rem(1px);
160
161
  }
161
162
 
@@ -213,11 +213,8 @@
213
213
  @include focus-outline('outline');
214
214
 
215
215
  position: absolute;
216
- top: 0;
217
- right: 0;
218
- bottom: 0;
219
- left: 0;
220
216
  content: '';
217
+ inset: 0;
221
218
  }
222
219
 
223
220
  .#{$prefix}--contained-list-item--with-action
@@ -13,7 +13,6 @@
13
13
  @use '../../../utilities/button-reset';
14
14
  @use '../../../utilities/convert' as *;
15
15
  @use '../../../utilities/focus-outline' as *;
16
- @use '../../button/vars' as *;
17
16
 
18
17
  /// Data table action styles
19
18
  /// @access public
@@ -411,7 +410,8 @@
411
410
  }
412
411
 
413
412
  .#{$prefix}--action-list .#{$prefix}--btn {
414
- padding: $button-padding-ghost;
413
+ padding-right: $spacing-05;
414
+ padding-left: $spacing-05;
415
415
  color: $text-on-color;
416
416
  white-space: nowrap;
417
417
  }
@@ -58,35 +58,26 @@
58
58
  }
59
59
 
60
60
  .#{$prefix}--search--fluid .#{$prefix}--search-magnifier-icon {
61
- top: auto;
62
- right: 1rem;
63
- bottom: rem(13px);
64
- left: auto;
61
+ inset: auto 1rem rem(13px) auto;
65
62
  transform: none;
66
63
  }
67
64
 
68
65
  .#{$prefix}--search--fluid .#{$prefix}--search-close {
69
- top: auto;
70
- right: rem(48px);
71
- bottom: 0;
72
- left: auto;
73
66
  width: rem(40px);
74
67
  height: rem(40px);
75
68
  border: none;
69
+ inset: auto rem(48px) 0 auto;
76
70
  transition: background-color $duration-fast-01 motion(standard, productive);
77
71
  }
78
72
 
79
73
  .#{$prefix}--search--fluid .#{$prefix}--search-close::before {
80
74
  position: absolute;
81
- top: auto;
82
- right: rem(-1px);
83
- bottom: rem(14px);
84
- left: auto;
85
75
  display: block;
86
76
  width: rem(1px);
87
77
  height: 1rem;
88
78
  background: $border-subtle;
89
79
  content: '';
80
+ inset: auto rem(-1px) rem(14px) auto;
90
81
  }
91
82
 
92
83
  .#{$prefix}--search--fluid
@@ -103,7 +103,15 @@ $list-box-menu-width: rem(300px);
103
103
  }
104
104
 
105
105
  .#{$prefix}--list-box--expanded {
106
- border-bottom-color: $border-subtle;
106
+ border-bottom-color: $border-subtle-01;
107
+ }
108
+
109
+ .#{$prefix}--layer-two .#{$prefix}--list-box--expanded {
110
+ border-bottom-color: $border-subtle-02;
111
+ }
112
+
113
+ .#{$prefix}--layer-three .#{$prefix}--list-box--expanded {
114
+ border-bottom-color: $border-subtle-03;
107
115
  }
108
116
 
109
117
  .#{$prefix}--list-box--expanded:hover {
@@ -582,7 +590,19 @@ $list-box-menu-width: rem(300px);
582
590
 
583
591
  .#{$prefix}--list-box--disabled
584
592
  .#{$prefix}--list-box__menu-item__option:hover {
585
- border-top-color: $border-subtle;
593
+ border-top-color: $border-subtle-01;
594
+ }
595
+
596
+ .#{$prefix}--layer-two
597
+ .#{$prefix}--list-box--disabled
598
+ .#{$prefix}--list-box__menu-item__option:hover {
599
+ border-top-color: $border-subtle-02;
600
+ }
601
+
602
+ .#{$prefix}--layer-three
603
+ .#{$prefix}--list-box--disabled
604
+ .#{$prefix}--list-box__menu-item__option:hover {
605
+ border-top-color: $border-subtle-03;
586
606
  }
587
607
 
588
608
  .#{$prefix}--list-box__menu-item:first-of-type
@@ -595,17 +615,35 @@ $list-box-menu-width: rem(300px);
595
615
  color: $text-primary;
596
616
  }
597
617
 
598
- .#{$prefix}--list-box__menu-item:hover
618
+ .#{$prefix}--list-box--disabled
619
+ .#{$prefix}--list-box__menu-item:hover
599
620
  + .#{$prefix}--list-box__menu-item
600
621
  .#{$prefix}--list-box__menu-item__option {
601
- border-top-color: transparent;
622
+ border-top-color: $border-subtle-01;
602
623
  }
603
624
 
604
- .#{$prefix}--list-box--disabled
625
+ .#{$prefix}--layer-two
626
+ .#{$prefix}--list-box--disabled
605
627
  .#{$prefix}--list-box__menu-item:hover
606
628
  + .#{$prefix}--list-box__menu-item
607
629
  .#{$prefix}--list-box__menu-item__option {
608
- border-top-color: $border-subtle;
630
+ border-top-color: $border-subtle-02;
631
+ }
632
+
633
+ .#{$prefix}--layer-three
634
+ .#{$prefix}--list-box--disabled
635
+ .#{$prefix}--list-box__menu-item:hover
636
+ + .#{$prefix}--list-box__menu-item
637
+ .#{$prefix}--list-box__menu-item__option {
638
+ border-top-color: $border-subtle-03;
639
+ }
640
+
641
+ .#{$prefix}--layer-two .#{$prefix}--list-box__menu-item__option {
642
+ border-top-color: $border-subtle-02;
643
+ }
644
+
645
+ .#{$prefix}--layer-three .#{$prefix}--list-box__menu-item__option {
646
+ border-top-color: $border-subtle-03;
609
647
  }
610
648
 
611
649
  .#{$prefix}--list-box__menu-item__option {
@@ -617,7 +655,7 @@ $list-box-menu-width: rem(300px);
617
655
  padding: rem(11px) 0;
618
656
  padding-right: $spacing-06;
619
657
  border-top: 1px solid transparent;
620
- border-top-color: $border-subtle;
658
+ border-top-color: $border-subtle-01;
621
659
  border-bottom: 1px solid transparent;
622
660
  margin: 0 $spacing-05;
623
661
  color: $text-secondary;
@@ -682,14 +720,40 @@ $list-box-menu-width: rem(300px);
682
720
  }
683
721
 
684
722
  .#{$prefix}--list-box__menu-item[disabled]
723
+ .#{$prefix}--list-box__menu-item__option,
724
+ .#{$prefix}--list-box__menu-item[disabled]:hover
725
+ + .#{$prefix}--list-box__menu-item
685
726
  .#{$prefix}--list-box__menu-item__option {
686
- border-top-color: $border-subtle;
727
+ border-top-color: $border-subtle-01;
687
728
  }
688
729
 
689
- .#{$prefix}--list-box__menu-item[disabled]:hover
730
+ .#{$prefix}--layer-two
731
+ .#{$prefix}--list-box__menu-item[disabled]
732
+ .#{$prefix}--list-box__menu-item__option,
733
+ .#{$prefix}--layer-two
734
+ .#{$prefix}--list-box__menu-item[disabled]:hover
690
735
  + .#{$prefix}--list-box__menu-item
691
736
  .#{$prefix}--list-box__menu-item__option {
692
- border-top-color: $border-subtle;
737
+ border-top-color: $border-subtle-02;
738
+ }
739
+
740
+ .#{$prefix}--layer-three
741
+ .#{$prefix}--list-box__menu-item[disabled]
742
+ .#{$prefix}--list-box__menu-item__option,
743
+ .#{$prefix}--layer-three
744
+ .#{$prefix}--list-box__menu-item[disabled]:hover
745
+ + .#{$prefix}--list-box__menu-item
746
+ .#{$prefix}--list-box__menu-item__option {
747
+ border-top-color: $border-subtle-03;
748
+ }
749
+
750
+ .#{$prefix}--list-box__menu-item--active
751
+ + .#{$prefix}--list-box__menu-item[disabled]
752
+ .#{$prefix}--list-box__menu-item__option,
753
+ .#{$prefix}--list-box__menu-item:hover
754
+ + .#{$prefix}--list-box__menu-item
755
+ .#{$prefix}--list-box__menu-item__option {
756
+ border-top-color: transparent;
693
757
  }
694
758
 
695
759
  .#{$prefix}--list-box.#{$prefix}--list-box--inline
@@ -72,6 +72,20 @@
72
72
  background-color: $border-subtle-02;
73
73
  }
74
74
 
75
+ .#{$prefix}--list-box__menu-item__option {
76
+ border-top-color: $border-subtle-02;
77
+ }
78
+
79
+ .#{$prefix}--list-box__menu-item:hover
80
+ .#{$prefix}--list-box__menu-item__option {
81
+ border-top-color: $layer-hover;
82
+ }
83
+
84
+ .#{$prefix}--list-box__menu-item--active:hover
85
+ .#{$prefix}--list-box__menu-item__option {
86
+ border-top-color: $layer-selected-hover;
87
+ }
88
+
75
89
  // Fluid inputs
76
90
  .#{$prefix}--text-input--fluid .#{$prefix}--text-input,
77
91
  .#{$prefix}--text-area--fluid .#{$prefix}--text-area__wrapper,
@@ -110,11 +110,8 @@ $popover-caret-height: custom-property.get-var(
110
110
  .#{$prefix}--popover {
111
111
  position: absolute;
112
112
  z-index: z('floating');
113
- top: 0;
114
- right: 0;
115
- bottom: 0;
116
- left: 0;
117
113
  filter: $popover-drop-shadow;
114
+ inset: 0;
118
115
  pointer-events: none;
119
116
  }
120
117
 
@@ -68,10 +68,6 @@
68
68
  .#{$prefix}--progress-bar--indeterminate
69
69
  .#{$prefix}--progress-bar__track::after {
70
70
  position: absolute;
71
- top: 0;
72
- right: 0;
73
- bottom: 0;
74
- left: 0;
75
71
  animation-duration: 1400ms;
76
72
  animation-iteration-count: infinite;
77
73
  animation-name: progress-bar-indeterminate;
@@ -84,6 +80,7 @@
84
80
  background-position-x: 0%;
85
81
  background-size: 200% 100%;
86
82
  content: '';
83
+ inset: 0;
87
84
  }
88
85
 
89
86
  .#{$prefix}--progress-bar__helper-text {
@@ -609,3 +609,25 @@ $icon-tab-size: custom-property.get-var('icon-tab-size', rem(40px));
609
609
  @include high-contrast-mode('disabled');
610
610
  }
611
611
  }
612
+
613
+ //-----------------------------
614
+ // Grid contained tabs
615
+ //-----------------------------
616
+
617
+ .#{$prefix}--tabs.#{$prefix}--tabs--contained.#{$prefix}--tabs--full-width
618
+ .#{$prefix}--tab--list {
619
+ display: grid;
620
+ width: 100%;
621
+ grid-template-columns: repeat(auto-fit, minmax(0, 1fr));
622
+
623
+ .#{$prefix}--tabs__nav-link {
624
+ .#{$prefix}--tabs__nav-item-label,
625
+ .#{$prefix}--tabs__nav-item-secondary-label {
626
+ overflow: hidden;
627
+ text-overflow: ellipsis;
628
+ }
629
+ .#{$prefix}--tabs__nav-item--icon {
630
+ margin-left: auto;
631
+ }
632
+ }
633
+ }
@@ -16,6 +16,10 @@
16
16
  @use '../../utilities/focus-outline' as *;
17
17
  @use '../../utilities/high-contrast-mode' as *;
18
18
  @use '../../utilities/visually-hidden' as *;
19
+ @use '../../utilities/layout';
20
+
21
+ // padding + icon size (1rem) + padding
22
+ $-icon-container-size: calc(#{layout.density('padding-inline')} * 2 + 1rem);
19
23
 
20
24
  /// Tile styles
21
25
  /// @access public
@@ -26,11 +30,13 @@
26
30
  }
27
31
 
28
32
  .#{$prefix}--tile {
33
+ @include layout.use('density', $default: 'normal');
34
+
29
35
  position: relative;
30
36
  display: block;
31
37
  min-width: 8rem;
32
38
  min-height: 4rem;
33
- padding: $spacing-05;
39
+ padding: layout.density('padding-inline');
34
40
  background-color: $layer;
35
41
  outline: 2px solid transparent;
36
42
  outline-offset: -2px;
@@ -99,7 +105,6 @@
99
105
  .#{$prefix}--tile--clickable.#{$prefix}--link--disabled,
100
106
  .#{$prefix}--tile--clickable:hover.#{$prefix}--link--disabled {
101
107
  display: block;
102
- padding: $spacing-05;
103
108
  background-color: $layer;
104
109
  color: $text-disabled;
105
110
  cursor: not-allowed;
@@ -116,8 +121,8 @@
116
121
  .#{$prefix}--tile--clickable.#{$prefix}--link--disabled
117
122
  .#{$prefix}--tile--disabled-icon {
118
123
  position: absolute;
119
- right: 1rem;
120
- bottom: 1rem;
124
+ right: layout.density('padding-inline');
125
+ bottom: layout.density('padding-inline');
121
126
  }
122
127
 
123
128
  .#{$prefix}--tile--clickable .#{$prefix}--tile--icon {
@@ -135,8 +140,8 @@
135
140
  }
136
141
 
137
142
  .#{$prefix}--tile--selectable {
138
- padding-right: $spacing-09;
139
143
  border: 1px solid transparent;
144
+ padding-inline-end: $-icon-container-size;
140
145
 
141
146
  @if (
142
147
  enabled('enable-experimental-tile-contrast') or
@@ -148,8 +153,8 @@
148
153
 
149
154
  .#{$prefix}--tile__checkmark {
150
155
  position: absolute;
151
- top: 1rem;
152
- right: 1rem;
156
+ top: layout.density('padding-inline');
157
+ right: layout.density('padding-inline');
153
158
  height: 1rem;
154
159
  border: none;
155
160
  background: transparent;
@@ -175,8 +180,8 @@
175
180
  right: 0;
176
181
  bottom: 0;
177
182
  display: flex;
178
- width: $spacing-09;
179
- height: $spacing-09;
183
+ width: $-icon-container-size;
184
+ height: $-icon-container-size;
180
185
  align-items: center;
181
186
  justify-content: center;
182
187
 
@@ -205,8 +210,8 @@
205
210
  right: 0;
206
211
  bottom: 0;
207
212
  display: flex;
208
- width: $spacing-09;
209
- height: $spacing-09;
213
+ width: $-icon-container-size;
214
+ height: $-icon-container-size;
210
215
  align-items: center;
211
216
  justify-content: center;
212
217
 
@@ -77,10 +77,8 @@
77
77
  .#{$prefix}--toggle__button:focus
78
78
  + .#{$prefix}--toggle__label
79
79
  .#{$prefix}--toggle__switch,
80
- .#{$prefix}--toggle__button:not(:disabled):active
81
- + .#{$prefix}--toggle__label
82
- .#{$prefix}--toggle__switch,
83
- .#{$prefix}--toggle:active .#{$prefix}--toggle__switch {
80
+ .#{$prefix}--toggle:not(.#{$prefix}--toggle--disabled):active
81
+ .#{$prefix}--toggle__switch {
84
82
  box-shadow: 0 0 0 1px $focus-inset, 0 0 0 3px $focus;
85
83
  }
86
84
 
@@ -192,10 +190,30 @@
192
190
  .#{$prefix}--toggle__button:focus
193
191
  + .#{$prefix}--toggle__label
194
192
  .#{$prefix}--toggle__switch,
195
- .#{$prefix}--toggle__button:not(:disabled):active
196
- + .#{$prefix}--toggle__label
197
- .#{$prefix}--toggle__switch,
198
- .#{$prefix}--toggle:active .#{$prefix}--toggle__switch {
193
+ .#{$prefix}--toggle:not(.#{$prefix}--toggle--disabled):active
194
+ .#{$prefix}--toggle__switch {
199
195
  @include high-contrast-mode('focus');
200
196
  }
197
+
198
+ // Skeleton state
199
+ .#{$prefix}--toggle--skeleton {
200
+ display: flex;
201
+ align-items: center;
202
+ }
203
+
204
+ .#{$prefix}--toggle--skeleton .#{$prefix}--toggle__skeleton-circle {
205
+ @include circular-skeleton;
206
+
207
+ width: rem(18px);
208
+ height: rem(18px);
209
+ border-radius: 50%;
210
+ }
211
+
212
+ .#{$prefix}--toggle--skeleton .#{$prefix}--toggle__skeleton-rectangle {
213
+ @include skeleton;
214
+
215
+ width: rem(24px);
216
+ height: rem(8px);
217
+ margin-left: rem(8px);
218
+ }
201
219
  }
@@ -48,6 +48,10 @@
48
48
  }
49
49
  }
50
50
 
51
+ .#{$prefix}--header__global .#{$prefix}--popover {
52
+ z-index: z('header') + 1;
53
+ }
54
+
51
55
  .#{$prefix}--header__action > :first-child {
52
56
  margin-block-start: 0;
53
57
  }
@@ -42,3 +42,28 @@
42
42
  }
43
43
  }
44
44
  }
45
+
46
+ /// Circular Skeleton loading animation
47
+ /// @access public
48
+ /// @example @include circular-skeleton;
49
+ /// @group utilities
50
+ @mixin circular-skeleton {
51
+ position: relative;
52
+ overflow: hidden;
53
+ background: $skeleton-background;
54
+ border-radius: 50%;
55
+
56
+ &::before {
57
+ position: absolute;
58
+ width: 200%;
59
+ height: 100%;
60
+ animation: 3000ms ease-in-out skeleton infinite;
61
+ background: $skeleton-element;
62
+ content: '';
63
+ will-change: transform-origin, transform, opacity;
64
+
65
+ @media (prefers-reduced-motion: reduce) {
66
+ animation: none;
67
+ }
68
+ }
69
+ }