@carbon/styles 0.17.0 → 1.0.1

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 (100) hide show
  1. package/package.json +23 -10
  2. package/scss/__tests__/__snapshots__/colors-test.js.snap +404 -0
  3. package/scss/__tests__/__snapshots__/config-test.js.snap +44 -0
  4. package/scss/__tests__/__snapshots__/motion-test.js.snap +39 -0
  5. package/scss/__tests__/breakpoint-test.js +42 -0
  6. package/scss/__tests__/colors-test.js +28 -0
  7. package/scss/__tests__/config-test.js +53 -0
  8. package/scss/__tests__/grid-test.js +48 -0
  9. package/scss/__tests__/layer-test.js +82 -0
  10. package/scss/__tests__/motion-test.js +37 -0
  11. package/scss/__tests__/reset-test.js +28 -0
  12. package/scss/__tests__/theme-test.js +151 -0
  13. package/scss/__tests__/themes-test.js +36 -0
  14. package/scss/__tests__/type-test.js +77 -0
  15. package/scss/_breakpoint.scss +2 -1
  16. package/scss/_config.scss +9 -2
  17. package/scss/_reset.scss +5 -1
  18. package/scss/_spacing.scss +1 -1
  19. package/scss/_theme.scss +4 -4
  20. package/scss/_themes.scss +2 -1
  21. package/scss/components/__tests__/accordion-test.js +47 -0
  22. package/scss/components/__tests__/breadcrumb-test.js +27 -0
  23. package/scss/components/__tests__/button-test.js +71 -0
  24. package/scss/components/__tests__/checkbox-test.js +27 -0
  25. package/scss/components/__tests__/code-snippet-test.js +44 -0
  26. package/scss/components/__tests__/combo-box-test.js +27 -0
  27. package/scss/components/__tests__/content-switcher-test.js +27 -0
  28. package/scss/components/__tests__/copy-button-test.js +27 -0
  29. package/scss/components/__tests__/data-table-test.js +85 -0
  30. package/scss/components/__tests__/date-picker-test.js +26 -0
  31. package/scss/components/__tests__/dropdown-test.js +27 -0
  32. package/scss/components/__tests__/file-uploader.js +27 -0
  33. package/scss/components/__tests__/form-test.js +43 -0
  34. package/scss/components/__tests__/inline-loading-test.js +26 -0
  35. package/scss/components/__tests__/link-test.js +26 -0
  36. package/scss/components/__tests__/list-box-test.js +36 -0
  37. package/scss/components/__tests__/list-test.js +26 -0
  38. package/scss/components/__tests__/loading-test.js +26 -0
  39. package/scss/components/__tests__/menu-test.js +27 -0
  40. package/scss/components/__tests__/modal-test.js +27 -0
  41. package/scss/components/__tests__/multiselect-test.js +27 -0
  42. package/scss/components/__tests__/notification-test.js +49 -0
  43. package/scss/components/__tests__/number-input-test.js +27 -0
  44. package/scss/components/__tests__/overflow-menu-test.js +27 -0
  45. package/scss/components/__tests__/pagination-nav-test.js +26 -0
  46. package/scss/components/__tests__/pagination-test.js +26 -0
  47. package/scss/components/__tests__/progress-bar-test.js +26 -0
  48. package/scss/components/__tests__/progress-indicator-test.js +26 -0
  49. package/scss/components/__tests__/radio-button-test.js +25 -0
  50. package/scss/components/__tests__/search-test.js +25 -0
  51. package/scss/components/__tests__/select-test.js +26 -0
  52. package/scss/components/__tests__/skeleton-test.js +26 -0
  53. package/scss/components/__tests__/slider-test.js +26 -0
  54. package/scss/components/__tests__/structured-list-test.js +27 -0
  55. package/scss/components/__tests__/tabs-test.js +27 -0
  56. package/scss/components/__tests__/tag-test.js +25 -0
  57. package/scss/components/__tests__/text-area-test.js +26 -0
  58. package/scss/components/__tests__/text-input-test.js +26 -0
  59. package/scss/components/__tests__/tile-test.js +26 -0
  60. package/scss/components/__tests__/time-picker-test.js +26 -0
  61. package/scss/components/__tests__/toggle-test.js +27 -0
  62. package/scss/components/__tests__/tooltip-test.js +25 -0
  63. package/scss/components/__tests__/treeview-test.js +25 -0
  64. package/scss/components/__tests__/ui-shell-test.js +27 -0
  65. package/scss/components/accordion/_accordion.scss +1 -1
  66. package/scss/components/aspect-ratio/_aspect-ratio.scss +2 -2
  67. package/scss/components/breadcrumb/_breadcrumb.scss +1 -1
  68. package/scss/components/button/_button.scss +3 -9
  69. package/scss/components/button/_tokens.scss +1 -0
  70. package/scss/components/code-snippet/_code-snippet.scss +32 -47
  71. package/scss/components/content-switcher/_content-switcher.scss +0 -2
  72. package/scss/components/copy-button/_copy-button.scss +0 -59
  73. package/scss/components/dropdown/_dropdown.scss +0 -1
  74. package/scss/components/modal/_modal.scss +1 -1
  75. package/scss/components/notification/_actionable-notification.scss +58 -19
  76. package/scss/components/notification/_inline-notification.scss +9 -21
  77. package/scss/components/notification/_toast-notification.scss +29 -58
  78. package/scss/components/notification/_tokens.scss +2 -1
  79. package/scss/components/pagination/_unstable_pagination.scss +1 -1
  80. package/scss/components/progress-indicator/_progress-indicator.scss +5 -5
  81. package/scss/components/radio-button/_radio-button.scss +2 -10
  82. package/scss/components/tabs/_tabs.scss +1 -1
  83. package/scss/components/tag/_tokens.scss +1 -0
  84. package/scss/components/text-input/_text-input.scss +7 -22
  85. package/scss/components/tile/_tile.scss +60 -29
  86. package/scss/components/toggletip/_toggletip.scss +1 -2
  87. package/scss/fonts/__tests__/__snapshots__/fonts-test.js.snap +269 -0
  88. package/scss/fonts/__tests__/fonts-test.js +197 -0
  89. package/scss/fonts/_src.scss +42 -31
  90. package/scss/grid/_css-grid.scss +11 -0
  91. package/scss/grid/_flexbox.scss +1 -1
  92. package/scss/grid/_index.scss +7 -2
  93. package/scss/grid/_mixins.scss +9 -0
  94. package/scss/type/_reset.scss +1 -1
  95. package/scss/utilities/__tests__/custom-property-test.js +50 -0
  96. package/scss/utilities/_component-tokens.scss +2 -1
  97. package/scss/utilities/_convert.scss +2 -4
  98. package/scss/utilities/_high-contrast-mode.scss +2 -4
  99. package/docs/sass.md +0 -462
  100. package/scss/grid/_config.scss +0 -18
@@ -283,6 +283,7 @@ $icon-tab-size: custom-property.get-var('icon-tab-size', rem(40px));
283
283
  padding: $spacing-04 $spacing-05 $spacing-03;
284
284
  border-bottom: $tab-underline-color;
285
285
  color: $text-secondary;
286
+ text-align: left;
286
287
  text-decoration: none;
287
288
  text-overflow: ellipsis;
288
289
  transition: border $duration-fast-01 motion(standard, productive),
@@ -301,7 +302,6 @@ $icon-tab-size: custom-property.get-var('icon-tab-size', rem(40px));
301
302
  border-bottom: 0;
302
303
  // height - vertical padding
303
304
  line-height: calc(#{rem(48px)} - (#{$spacing-03} * 2));
304
- text-align: left;
305
305
  }
306
306
 
307
307
  //-----------------------------
@@ -6,6 +6,7 @@
6
6
  //
7
7
 
8
8
  @use 'sass:color';
9
+ @use '../../config';
9
10
  @use '../../colors';
10
11
  @use '../../themes';
11
12
  @use '../../theme' as *;
@@ -56,8 +56,6 @@
56
56
  }
57
57
  }
58
58
 
59
- // TODO V11: Remove xl selector
60
- .#{$prefix}--text-input--xl,
61
59
  .#{$prefix}--text-input--lg {
62
60
  height: rem(48px);
63
61
  }
@@ -124,8 +122,6 @@
124
122
  @include tooltip--placement('icon', 'bottom', 'center');
125
123
  }
126
124
 
127
- .#{$prefix}--text-input--password__visibility,
128
- // TODO: remove selector above
129
125
  .#{$prefix}--btn.#{$prefix}--text-input--password__visibility__toggle.#{$prefix}--tooltip__trigger {
130
126
  @include focus-outline('reset');
131
127
 
@@ -188,11 +184,8 @@
188
184
  padding-right: rem(64px);
189
185
  }
190
186
 
191
- .#{$prefix}--text-input--invalid +
192
- .#{$prefix}--text-input--password__visibility,
193
- // TODO: remove selector above
194
- .#{$prefix}--text-input--invalid +
195
- .#{$prefix}--text-input--password__visibility__toggle {
187
+ .#{$prefix}--text-input--invalid
188
+ + .#{$prefix}--text-input--password__visibility__toggle {
196
189
  right: $spacing-05;
197
190
  }
198
191
 
@@ -201,11 +194,8 @@
201
194
  }
202
195
 
203
196
  .#{$prefix}--text-input:disabled
204
- + .#{$prefix}--text-input--password__visibility
205
- svg,
206
- // TODO: remove selector above
207
- .#{$prefix}--text-input:disabled
208
- + .#{$prefix}--text-input--password__visibility__toggle.#{$prefix}--tooltip__trigger svg {
197
+ + .#{$prefix}--text-input--password__visibility__toggle.#{$prefix}--tooltip__trigger
198
+ svg {
209
199
  cursor: not-allowed;
210
200
  fill: $icon-disabled;
211
201
 
@@ -246,8 +236,6 @@
246
236
 
247
237
  box-shadow: none;
248
238
 
249
- .#{$prefix}--text-input--password__visibility,
250
- // TODO: remove selector above
251
239
  .#{$prefix}--text-input--password__visibility__toggle {
252
240
  right: $spacing-08;
253
241
  }
@@ -355,8 +343,6 @@
355
343
  margin-top: rem(9px);
356
344
  }
357
345
 
358
- // TODO V11: Remove xl selector
359
- .#{$prefix}--text-input-wrapper .#{$prefix}--label--inline--xl,
360
346
  .#{$prefix}--text-input-wrapper .#{$prefix}--label--inline--lg {
361
347
  margin-top: rem(17px);
362
348
  }
@@ -396,10 +382,9 @@
396
382
  }
397
383
 
398
384
  // Windows HCM fix
399
- .#{$prefix}--text-input--password__visibility,
400
- // TODO: remove selector above
401
- .#{$prefix}--btn.#{$prefix}--btn--icon-only.#{$prefix}--text-input--password__visibility__toggle.#{$prefix}--tooltip__trigger svg,
402
- .#{$prefix}--btn.#{$prefix}--btn--icon-only.#{$prefix}--text-input--password__visibility__toggle.#{$prefix}--tooltip__trigger:hover
385
+ .#{$prefix}--btn.#{$prefix}--btn--icon-only.#{$prefix}--text-input--password__visibility__toggle.#{$prefix}--tooltip__trigger
386
+ svg,
387
+ .#{$prefix}--btn.#{$prefix}--btn--icon-only.#{$prefix}--text-input--password__visibility__toggle.#{$prefix}--tooltip__trigger:hover
403
388
  svg {
404
389
  @include high-contrast-mode('icon-fill');
405
390
  }
@@ -11,6 +11,7 @@
11
11
  @use '../../theme' as *;
12
12
  @use '../../type' as *;
13
13
  @use '../button/tokens' as button;
14
+ @use '../../utilities/button-reset';
14
15
  @use '../../utilities/focus-outline' as *;
15
16
  @use '../../utilities/high-contrast-mode' as *;
16
17
  @use '../../utilities/visually-hidden' as *;
@@ -44,8 +45,7 @@
44
45
  }
45
46
 
46
47
  .#{$prefix}--tile--clickable,
47
- .#{$prefix}--tile--selectable,
48
- .#{$prefix}--tile--expandable {
48
+ .#{$prefix}--tile--selectable {
49
49
  cursor: pointer;
50
50
  transition: $duration-moderate-01 motion(standard, productive);
51
51
 
@@ -54,8 +54,13 @@
54
54
  }
55
55
  }
56
56
 
57
- .#{$prefix}--tile--clickable,
58
- .#{$prefix}--tile--expandable {
57
+ .#{$prefix}--tile--clickable {
58
+ @include reset;
59
+ @include type-style('body-compact-01');
60
+
61
+ color: $text-primary;
62
+ text-decoration: none;
63
+
59
64
  &:focus {
60
65
  @include focus-outline('outline');
61
66
  }
@@ -73,14 +78,6 @@
73
78
  border: 0;
74
79
  }
75
80
 
76
- .#{$prefix}--tile--clickable {
77
- @include reset;
78
- @include type-style('body-compact-01');
79
-
80
- color: $text-primary;
81
- text-decoration: none;
82
- }
83
-
84
81
  .#{$prefix}--tile--clickable:hover,
85
82
  .#{$prefix}--tile--clickable:active,
86
83
  .#{$prefix}--tile--clickable:visited,
@@ -102,19 +99,15 @@
102
99
  border: 1px solid transparent;
103
100
  }
104
101
 
105
- .#{$prefix}--tile__checkmark,
106
- .#{$prefix}--tile__chevron {
107
- position: absolute;
108
- border: none;
109
- background: transparent;
110
- transition: $duration-fast-02 motion(standard, productive);
111
- }
112
-
113
102
  .#{$prefix}--tile__checkmark {
103
+ position: absolute;
114
104
  top: 1rem;
115
105
  right: 1rem;
116
106
  height: 1rem;
107
+ border: none;
108
+ background: transparent;
117
109
  opacity: 0;
110
+ transition: $duration-fast-02 motion(standard, productive);
118
111
 
119
112
  svg {
120
113
  border-radius: 50%;
@@ -132,14 +125,15 @@
132
125
 
133
126
  .#{$prefix}--tile__chevron {
134
127
  position: absolute;
135
- right: $spacing-05;
136
- bottom: $spacing-05;
128
+ right: 0;
129
+ bottom: 0;
137
130
  display: flex;
138
- height: 1rem;
139
- align-items: flex-end;
131
+ width: $spacing-09;
132
+ height: $spacing-09;
133
+ align-items: center;
134
+ justify-content: center;
140
135
 
141
136
  svg {
142
- margin-left: $spacing-03;
143
137
  fill: $icon-primary;
144
138
  transform-origin: center;
145
139
  transition: $duration-fast-02 motion(standard, productive);
@@ -155,13 +149,28 @@
155
149
  fill: ButtonText;
156
150
  }
157
151
  }
152
+ }
158
153
 
159
- &:hover {
160
- cursor: pointer;
161
- }
154
+ .#{$prefix}--tile__chevron--interactive {
155
+ @include button-reset.reset;
156
+
157
+ position: absolute;
158
+ right: 0;
159
+ bottom: 0;
160
+ display: flex;
161
+ width: $spacing-09;
162
+ height: $spacing-09;
163
+ align-items: center;
164
+ justify-content: center;
162
165
 
163
166
  &:focus {
164
- outline: none;
167
+ outline: 2px solid $focus;
168
+ outline-offset: -2px;
169
+ }
170
+
171
+ &:hover {
172
+ background-color: $layer-hover;
173
+ cursor: pointer;
165
174
  }
166
175
  }
167
176
 
@@ -171,10 +180,32 @@
171
180
  width: 100%;
172
181
  border: 0;
173
182
  color: inherit;
183
+ cursor: pointer;
174
184
  font-family: inherit;
175
185
  font-size: inherit;
176
186
  text-align: left;
177
187
  transition: max-height $duration-moderate-01 motion(standard, productive);
188
+
189
+ &:hover {
190
+ background: $layer-hover;
191
+ }
192
+ }
193
+
194
+ .#{$prefix}--tile--expandable.#{$prefix}--tile--expandable--interactive {
195
+ cursor: default;
196
+ transition: max-height $duration-moderate-01 motion(standard, productive);
197
+
198
+ &:hover {
199
+ background-color: $layer;
200
+ }
201
+
202
+ &:focus {
203
+ outline: none;
204
+ }
205
+ }
206
+
207
+ .#{$prefix}--tile--expandable--interactive:focus {
208
+ @include focus-outline('outline');
178
209
  }
179
210
 
180
211
  .#{$prefix}--tile-content__above-the-fold {
@@ -19,7 +19,6 @@
19
19
  @include type.type-style('label-01');
20
20
 
21
21
  margin-right: spacing.$spacing-03;
22
-
23
22
  color: theme.$text-secondary;
24
23
  }
25
24
 
@@ -64,7 +63,7 @@
64
63
  'link-focus-text-color',
65
64
  theme.$focus-inverse
66
65
  );
67
- @include type.type-style('body-compact-01');
66
+ @include type.type-style('body-01');
68
67
 
69
68
  display: grid;
70
69
  max-width: 18rem;