@carbon/styles 1.24.0 → 1.26.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.
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.24.0",
4
+ "version": "1.26.0-rc.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": "07168bf0272678a04c92cd1e700ac60e66355a95"
62
+ "gitHead": "14c6f7442f8915d508a0bada49bb05e0cac8464c"
63
63
  }
@@ -12,6 +12,7 @@
12
12
  @use 'checkbox';
13
13
  @use 'code-snippet';
14
14
  @use 'combo-box';
15
+ @use 'combo-button';
15
16
  @use 'contained-list';
16
17
  @use 'content-switcher';
17
18
  @use 'copy-button';
@@ -40,6 +41,7 @@
40
41
  @use 'list';
41
42
  @use 'list-box';
42
43
  @use 'loading';
44
+ @use 'menu-button';
43
45
  @use 'menu';
44
46
  @use 'modal';
45
47
  @use 'multiselect';
@@ -94,19 +94,19 @@
94
94
 
95
95
  // Checkboxes with a background color look visually off against a parent container.
96
96
  background-color: transparent;
97
- border-radius: 1px;
97
+ border-radius: 2px;
98
98
  content: '';
99
99
  }
100
100
 
101
101
  // Create the appearance of the check in the `after` pseudo-element
102
102
  .#{$prefix}--checkbox-label::after {
103
103
  position: absolute;
104
- top: rem(8px);
104
+ top: rem(7.5px);
105
105
  left: rem(7px);
106
106
  width: rem(9px);
107
107
  height: rem(5px);
108
- border-bottom: 2px solid $icon-inverse;
109
- border-left: 2px solid $icon-inverse;
108
+ border-bottom: 1.5px solid $icon-inverse;
109
+ border-left: 1.5px solid $icon-inverse;
110
110
  margin-top: rem(-3px) #{'/*rtl:0rem*/'};
111
111
  background: none;
112
112
  content: '';
@@ -201,6 +201,12 @@ $copy-btn-feedback: $background-inverse !default;
201
201
  order: 1;
202
202
  overflow-y: auto;
203
203
  transition: max-height $duration-moderate-01 motion(standard, productive);
204
+
205
+ &:focus {
206
+ @include focus-outline('outline');
207
+
208
+ outline-offset: 0;
209
+ }
204
210
  }
205
211
 
206
212
  // expanded snippet container
@@ -0,0 +1,47 @@
1
+ //
2
+ // Copyright IBM Corp. 2023
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 '../../config' as *;
9
+ @use '../../motion' as *;
10
+ @use '../../utilities/convert' as *;
11
+
12
+ /// Combo Button styles
13
+ /// @access public
14
+ /// @group combo-button
15
+ @mixin combo-button {
16
+ .#{$prefix}--combo-button__container {
17
+ display: inline-flex;
18
+ column-gap: rem(1px);
19
+ }
20
+
21
+ $triggerSizes: (
22
+ 'sm': rem(32px),
23
+ 'md': rem(40px),
24
+ 'lg': rem(48px),
25
+ );
26
+
27
+ @each $size, $trigger in $triggerSizes {
28
+ .#{$prefix}--combo-button__container--#{$size}
29
+ .#{$prefix}--combo-button__primary-action {
30
+ min-width: 10rem - rem(1px) - $trigger;
31
+ }
32
+ }
33
+
34
+ .#{$prefix}--combo-button__primary-action .#{$prefix}--btn {
35
+ width: 100%;
36
+ }
37
+
38
+ .#{$prefix}--combo-button__trigger svg {
39
+ transition: transform $duration-fast-02 motion(standard, productive);
40
+ }
41
+
42
+ .#{$prefix}--combo-button__container--open
43
+ .#{$prefix}--combo-button__trigger
44
+ svg {
45
+ transform: rotate(180deg);
46
+ }
47
+ }
@@ -0,0 +1,11 @@
1
+ //
2
+ // Copyright IBM Corp. 2023
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 'combo-button';
9
+ @use 'combo-button';
10
+
11
+ @include combo-button.combo-button;
@@ -393,10 +393,9 @@
393
393
  .#{$prefix}--batch-actions:focus {
394
394
  @include focus-outline;
395
395
  }
396
-
396
+ // 200% to allow tooltips
397
397
  .#{$prefix}--batch-actions--active {
398
- overflow: auto hidden;
399
- clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);
398
+ clip-path: polygon(0 0, 200% 0, 200% 200%, 0 200%);
400
399
  pointer-events: all;
401
400
  transform: translate3d(0, 0, 0);
402
401
  }
@@ -11,6 +11,7 @@
11
11
  @use '../../theme' as *;
12
12
  @use '../../type' as *;
13
13
 
14
+ @use '../../utilities/button-reset';
14
15
  @use '../../utilities/convert' as *;
15
16
  @use '../../utilities/focus-outline' as *;
16
17
  @use '../../utilities/high-contrast-mode' as *;
@@ -320,6 +321,8 @@
320
321
  }
321
322
 
322
323
  .#{$prefix}--file__drop-container {
324
+ @include button-reset.reset;
325
+
323
326
  display: flex;
324
327
  overflow: hidden;
325
328
  height: rem(96px);
@@ -19,6 +19,16 @@
19
19
  @use '../fluid-combo-box';
20
20
 
21
21
  @mixin fluid-multiselect {
22
+ .#{$prefix}--multi-select__wrapper.#{$prefix}--list-box__wrapper--fluid--focus:not(.#{$prefix}--multi-select--filterable__wrapper)
23
+ .#{$prefix}--list-box__field--wrapper--input-focused {
24
+ outline: none;
25
+ }
26
+
27
+ .#{$prefix}--list-box__wrapper--fluid
28
+ .#{$prefix}--tag.#{$prefix}--tag--filter {
29
+ margin-top: 1.25rem;
30
+ }
31
+
22
32
  // Filterable
23
33
  .#{$prefix}--list-box__wrapper--fluid
24
34
  .#{$prefix}--multi-select--filterable--input-focused {
@@ -53,6 +53,10 @@
53
53
  white-space: nowrap;
54
54
  }
55
55
 
56
+ .#{$prefix}--number-input--fluid .#{$prefix}--number__input-wrapper {
57
+ position: initial;
58
+ }
59
+
56
60
  .#{$prefix}--number-input--fluid input[type='number'] {
57
61
  min-height: rem(64px);
58
62
  padding: rem(32px) rem(80px) rem(13px) $spacing-05;
@@ -74,7 +78,6 @@
74
78
  border-bottom: 1px solid transparent;
75
79
  }
76
80
 
77
- // Focus Overrides
78
81
  .#{$prefix}--number-input--fluid.#{$prefix}--number-input--fluid--focus
79
82
  .#{$prefix}--number {
80
83
  @include focus-outline('outline');
@@ -105,7 +105,7 @@
105
105
  }
106
106
 
107
107
  .#{$prefix}--select--fluid .#{$prefix}--select-input__wrapper {
108
- flex-direction: column;
108
+ display: block;
109
109
  }
110
110
 
111
111
  .#{$prefix}--select--fluid
@@ -91,9 +91,23 @@
91
91
  display: none;
92
92
  }
93
93
 
94
+ .#{$prefix}--text-area--fluid .#{$prefix}--text-area--invalid,
95
+ .#{$prefix}--text-area--fluid .#{$prefix}--text-area--warn {
96
+ resize: none;
97
+ }
98
+
99
+ // accounts for 2px of border when invalid
100
+ .#{$prefix}--text-area--fluid .#{$prefix}--text-area--invalid {
101
+ padding: 0 rem(14px) rem(13px);
102
+ margin-top: rem(30px);
103
+ }
104
+
105
+ .#{$prefix}--text-area--fluid
106
+ .#{$prefix}--text-area__wrapper[data-invalid]
107
+ .#{$prefix}--text-area__divider,
94
108
  .#{$prefix}--text-area--fluid
95
- .#{$prefix}--text-area--invalid
96
- + .#{$prefix}--text-area__divider {
109
+ .#{$prefix}--text-area__wrapper--warn
110
+ .#{$prefix}--text-area__divider {
97
111
  display: block;
98
112
  border-style: solid;
99
113
  border-color: $border-subtle;
@@ -101,11 +115,13 @@
101
115
  margin: 0 1rem;
102
116
  }
103
117
 
104
- // invalid error message container
118
+ // invalid & warning error message container
105
119
  .#{$prefix}--text-area--fluid
106
- .#{$prefix}--text-area--invalid
107
- + .#{$prefix}--text-area__divider
108
- + .#{$prefix}--form-requirement {
120
+ .#{$prefix}--text-area__wrapper[data-invalid]
121
+ .#{$prefix}--form-requirement.#{$prefix}--form-requirement,
122
+ .#{$prefix}--text-area--fluid
123
+ .#{$prefix}--text-area__wrapper--warn
124
+ .#{$prefix}--form-requirement.#{$prefix}--form-requirement {
109
125
  position: relative;
110
126
  display: block;
111
127
  overflow: visible;
@@ -113,13 +129,30 @@
113
129
  padding: 0.5rem 2.5rem 0.5rem 1rem;
114
130
  margin: 0;
115
131
  background: $field;
132
+ }
133
+
134
+ .#{$prefix}--text-area--fluid
135
+ .#{$prefix}--text-area__wrapper--warn
136
+ .#{$prefix}--form-requirement.#{$prefix}--form-requirement {
137
+ border-bottom: 1px solid $border-strong;
138
+ color: $text-primary;
139
+ }
140
+
141
+ .#{$prefix}--text-area--fluid
142
+ .#{$prefix}--text-area__wrapper[data-invalid]
143
+ .#{$prefix}--form-requirement.#{$prefix}--form-requirement {
144
+ border-bottom: none;
116
145
  color: $text-error;
117
146
  }
118
147
 
148
+ .#{$prefix}--text-area--fluid .#{$prefix}--text-area--warn {
149
+ border-bottom: none;
150
+ }
151
+
119
152
  .#{$prefix}--modal
120
153
  .#{$prefix}--text-area--fluid
121
- .#{$prefix}--text-area--invalid
122
- + .#{$prefix}--text-area__divider
154
+ .#{$prefix}--text-area__wrapper[data-invalid]
155
+ .#{$prefix}--text-area__divider
123
156
  + .#{$prefix}--form-requirement {
124
157
  background: $field-02;
125
158
  }
@@ -129,11 +162,10 @@
129
162
  }
130
163
 
131
164
  //invalid outline
165
+ // needs to be a border for some weirdness when in a modal
132
166
  .#{$prefix}--text-area--fluid
133
167
  .#{$prefix}--text-area__wrapper[data-invalid]:not(:focus) {
134
- @include focus-outline('invalid');
135
-
136
- outline-offset: 0;
168
+ border: 2px solid $support-error;
137
169
  }
138
170
 
139
171
  // focus
@@ -141,10 +173,10 @@
141
173
  .#{$prefix}--text-area__wrapper[data-invalid]:focus-within,
142
174
  .#{$prefix}--text-area--fluid .#{$prefix}--text-area__wrapper:focus-within {
143
175
  @include focus-outline('outline');
144
-
145
- outline-offset: 0;
146
176
  }
147
177
 
178
+ // end weirdness
179
+
148
180
  .#{$prefix}--text-area--fluid
149
181
  .#{$prefix}--text-area__wrapper[data-invalid]
150
182
  > .#{$prefix}--text-area--invalid:focus,
@@ -125,7 +125,7 @@ $input-label-weight: 400 !default;
125
125
  > .#{$prefix}--text-area--invalid:not(:focus),
126
126
  .#{$prefix}--select-input__wrapper[data-invalid]
127
127
  .#{$prefix}--select-input:not(:focus),
128
- .#{$prefix}--list-box[data-invalid]:not(:focus),
128
+ .#{$prefix}--list-box[data-invalid]:not(.#{$prefix}--multi-select--invalid--focused),
129
129
  .#{$prefix}--combo-box[data-invalid]:not(.#{$prefix}--multi-select--selected)
130
130
  .#{$prefix}--text-input:not(:focus) {
131
131
  @include focus-outline('invalid');
@@ -142,6 +142,7 @@ $input-label-weight: 400 !default;
142
142
  .#{$prefix}--text-input__field-wrapper--warning,
143
143
  .#{$prefix}--text-input__field-wrapper--warning > .#{$prefix}--text-input,
144
144
  .#{$prefix}--text-area__wrapper[data-invalid],
145
+ .#{$prefix}--text-area__wrapper--warn,
145
146
  .#{$prefix}--select-input__wrapper[data-invalid],
146
147
  .#{$prefix}--select--warning .#{$prefix}--select-input__wrapper,
147
148
  .#{$prefix}--time-picker[data-invalid],
@@ -27,7 +27,7 @@
27
27
 
28
28
  position: fixed;
29
29
  z-index: z('modal');
30
- min-width: 13rem;
30
+ min-width: 10rem;
31
31
  max-width: 18rem;
32
32
  padding: $spacing-02 0;
33
33
  background-color: $layer;
@@ -35,6 +35,10 @@
35
35
  visibility: hidden;
36
36
  }
37
37
 
38
+ .#{$prefix}--menu--with-icons {
39
+ min-width: 12rem;
40
+ }
41
+
38
42
  .#{$prefix}--menu--open {
39
43
  visibility: visible;
40
44
 
@@ -62,7 +66,7 @@
62
66
  color: $text-primary;
63
67
  column-gap: $spacing-03;
64
68
  cursor: pointer;
65
- grid-template-columns: 0 1fr max-content;
69
+ grid-template-columns: 1fr max-content;
66
70
  padding-inline: $spacing-05;
67
71
  transition: background-color $duration-fast-01 motion(standard, productive);
68
72
 
@@ -89,6 +93,10 @@
89
93
  }
90
94
 
91
95
  .#{$prefix}--menu-item__icon {
96
+ display: none;
97
+ }
98
+
99
+ .#{$prefix}--menu--with-icons .#{$prefix}--menu-item__icon {
92
100
  display: flex;
93
101
  }
94
102
 
@@ -0,0 +1,11 @@
1
+ //
2
+ // Copyright IBM Corp. 2023
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 'menu-button';
9
+ @use 'menu-button';
10
+
11
+ @include menu-button.menu-button;
@@ -0,0 +1,27 @@
1
+ //
2
+ // Copyright IBM Corp. 2023
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 '../../config' as *;
9
+ @use '../../motion' as *;
10
+ @use '../../utilities/convert' as *;
11
+
12
+ /// Menu Button styles
13
+ /// @access public
14
+ /// @group menu-button
15
+ @mixin menu-button {
16
+ .#{$prefix}--menu-button__trigger:not(.#{$prefix}--btn--ghost) {
17
+ min-width: 10rem;
18
+ }
19
+
20
+ .#{$prefix}--menu-button__trigger svg {
21
+ transition: transform $duration-fast-02 motion(standard, productive);
22
+ }
23
+
24
+ .#{$prefix}--menu-button__trigger--open svg {
25
+ transform: rotate(180deg);
26
+ }
27
+ }
@@ -71,6 +71,41 @@
71
71
  .#{$prefix}--number__rule-divider {
72
72
  background-color: $border-subtle-02;
73
73
  }
74
+
75
+ // Fluid inputs
76
+ .#{$prefix}--text-input--fluid .#{$prefix}--text-input,
77
+ .#{$prefix}--text-area--fluid .#{$prefix}--text-area__wrapper,
78
+ .#{$prefix}--text-area--fluid .#{$prefix}--text-area,
79
+ .#{$prefix}--search--fluid .#{$prefix}--search-input,
80
+ .#{$prefix}--select--fluid .#{$prefix}--select-input,
81
+ .#{$prefix}--text-area--fluid
82
+ .#{$prefix}--text-area__wrapper[data-invalid]
83
+ .#{$prefix}--text-area__divider
84
+ + .#{$prefix}--form-requirement,
85
+ .#{$prefix}--list-box__wrapper--fluid .#{$prefix}--list-box,
86
+ .#{$prefix}--list-box__wrapper--fluid.#{$prefix}--list-box__wrapper,
87
+ .#{$prefix}--number-input--fluid input[type='number'],
88
+ .#{$prefix}--number-input--fluid .#{$prefix}--number__control-btn::before,
89
+ .#{$prefix}--number-input--fluid .#{$prefix}--number__control-btn::after,
90
+ .#{$prefix}--date-picker--fluid
91
+ .c#{$prefix}ds--date-picker-input__wrapper
92
+ .#{$prefix}--date-picker__input {
93
+ background-color: $field-01;
94
+ }
95
+
96
+ .#{$prefix}--number-input--fluid
97
+ .#{$prefix}--number__control-btn:hover::before,
98
+ .#{$prefix}--number-input--fluid
99
+ .#{$prefix}--number__control-btn:hover::after {
100
+ background-color: $field-hover;
101
+ }
102
+
103
+ .#{$prefix}--number-input--fluid
104
+ .#{$prefix}--number__control-btn:focus::before,
105
+ .#{$prefix}--number-input--fluid
106
+ .#{$prefix}--number__control-btn:focus::after {
107
+ border-left: 2px solid $focus;
108
+ }
74
109
  }
75
110
 
76
111
  .#{$prefix}--modal.is-visible .#{$prefix}--modal-container {
@@ -144,6 +179,12 @@
144
179
  }
145
180
  }
146
181
 
182
+ // fluid form in modal
183
+ .#{$prefix}--modal-content .#{$prefix}--form--fluid {
184
+ margin-right: -$spacing-05;
185
+ margin-left: -$spacing-05;
186
+ }
187
+
147
188
  //TO-DO: remove .#{$prefix}--modal-content__regular-content in v11 since hasForm has been deprecated
148
189
  // text/p gets 20% right padding
149
190
  .#{$prefix}--modal-content > p,
@@ -327,7 +368,8 @@
327
368
  max-width: none;
328
369
  height: rem(64px);
329
370
  flex: 0 1 50%;
330
- padding-top: $spacing-05;
371
+ align-items: baseline;
372
+ padding-top: calc($spacing-05 - rem(2px));
331
373
  padding-bottom: $spacing-07;
332
374
  margin: 0;
333
375
  }
@@ -17,12 +17,19 @@
17
17
  /// @access public
18
18
  /// @group multi-select
19
19
  @mixin multiselect {
20
- .#{$prefix}--multi-select .#{$prefix}--tag {
21
- min-width: auto;
22
- margin: 0 $spacing-03 0 0;
20
+ .#{$prefix}--multi-select .#{$prefix}--list-box__field--wrapper {
21
+ display: inline-flex;
22
+ width: 100%;
23
+ height: calc(100% + 1px);
24
+ align-items: center;
25
+ }
26
+
27
+ .#{$prefix}--multi-select .#{$prefix}--list-box__field:focus {
28
+ @include focus-outline('reset');
23
29
  }
24
30
 
25
- .#{$prefix}--multi-select--filterable .#{$prefix}--tag {
31
+ .#{$prefix}--multi-select .#{$prefix}--tag {
32
+ min-width: auto;
26
33
  margin: 0 $spacing-03 0 $spacing-05;
27
34
  }
28
35
 
@@ -75,12 +82,16 @@
75
82
  outline: none;
76
83
  }
77
84
 
78
- .#{$prefix}--multi-select--filterable--input-focused {
85
+ .#{$prefix}--multi-select--filterable--input-focused,
86
+ .#{$prefix}--multi-select
87
+ .#{$prefix}--list-box__field--wrapper--input-focused {
79
88
  @include focus-outline('outline');
80
89
  }
81
90
 
82
91
  .#{$prefix}--multi-select--filterable.#{$prefix}--multi-select--selected
83
- .#{$prefix}--text-input {
92
+ .#{$prefix}--text-input,
93
+ .#{$prefix}--multi-select.#{$prefix}--multi-select--selected
94
+ .#{$prefix}--list-box__field {
84
95
  padding-left: 0;
85
96
  }
86
97
 
@@ -8,6 +8,7 @@
8
8
  @use '../../config' as *;
9
9
  @use '../../theme';
10
10
  @use '../../utilities/box-shadow' as *;
11
+ @use '../../utilities/button-reset';
11
12
  @use '../../utilities/custom-property';
12
13
  @use '../../utilities/high-contrast-mode' as *;
13
14
  @use '../../utilities/focus-outline' as *;
@@ -370,4 +371,51 @@ $popover-caret-height: custom-property.get-var(
370
371
  clip-path: polygon(0% 0%, 100% 50%, 0% 100%);
371
372
  transform: translate(calc(-1 * $popover-offset + 100%), -50%);
372
373
  }
374
+
375
+ //-----------------------------------------------------------------------------
376
+ // Tab Tip Variant
377
+ //-----------------------------------------------------------------------------
378
+ .#{$prefix}--popover--tab-tip .#{$prefix}--popover-content {
379
+ border-radius: 0;
380
+ }
381
+
382
+ .#{$prefix}--popover--tab-tip__button {
383
+ @include button-reset.reset;
384
+
385
+ position: relative;
386
+ display: inline-flex;
387
+ width: rem(32px);
388
+ height: rem(32px);
389
+ align-items: center;
390
+ justify-content: center;
391
+
392
+ &:focus {
393
+ @include focus-outline('outline');
394
+ }
395
+
396
+ &:hover {
397
+ background-color: theme.$layer-hover;
398
+ }
399
+ }
400
+
401
+ .#{$prefix}--popover--tab-tip.#{$prefix}--popover--open
402
+ .#{$prefix}--popover--tab-tip__button {
403
+ background: theme.$layer;
404
+ box-shadow: 0 2px 2px rgba(0, 0, 0, 0.2);
405
+ }
406
+
407
+ .#{$prefix}--popover--tab-tip.#{$prefix}--popover--open
408
+ .#{$prefix}--popover--tab-tip__button:not(:focus)::after {
409
+ position: absolute;
410
+ z-index: z('floating') + 1;
411
+ bottom: 0;
412
+ width: 100%;
413
+ height: 2px;
414
+ background: theme.$layer;
415
+ content: '';
416
+ }
417
+
418
+ .#{$prefix}--popover--tab-tip__button svg {
419
+ fill: theme.$icon-primary;
420
+ }
373
421
  }
@@ -153,6 +153,63 @@ $radio-border-width: 1px !default;
153
153
  user-select: text;
154
154
  }
155
155
 
156
+ // invalid + warn
157
+ .#{$prefix}--radio-button-group--invalid
158
+ .#{$prefix}--radio-button
159
+ + .#{$prefix}--radio-button__label
160
+ .#{$prefix}--radio-button__appearance {
161
+ border-color: $support-error;
162
+ }
163
+
164
+ .#{$prefix}--radio-button__validation-msg {
165
+ display: none;
166
+ align-items: flex-end;
167
+ margin-top: $spacing-03;
168
+ }
169
+
170
+ .#{$prefix}--radio-button__invalid-icon {
171
+ margin: 0 rem(1px) 0 rem(3px);
172
+ fill: $support-error;
173
+ }
174
+
175
+ .#{$prefix}--radio-button__invalid-icon--warning {
176
+ fill: $support-warning;
177
+ }
178
+
179
+ .#{$prefix}--radio-button__invalid-icon--warning path:first-of-type {
180
+ fill: #000000;
181
+ }
182
+
183
+ .#{$prefix}--radio-button__validation-msg .#{$prefix}--form__helper-text {
184
+ margin-top: 0;
185
+ }
186
+
187
+ .#{$prefix}--radio-button-group--invalid
188
+ + .#{$prefix}--radio-button__validation-msg,
189
+ .#{$prefix}--radio-button-group--warning
190
+ + .#{$prefix}--radio-button__validation-msg {
191
+ display: flex;
192
+ }
193
+
194
+ .#{$prefix}--radio-button-group--invalid
195
+ + .#{$prefix}--radio-button__validation-msg
196
+ .#{$prefix}--form-requirement,
197
+ .#{$prefix}--radio-button-group--warning
198
+ + .#{$prefix}--radio-button__validation-msg
199
+ .#{$prefix}--form-requirement {
200
+ display: block;
201
+ overflow: visible;
202
+ max-height: 100%;
203
+ margin-top: 0;
204
+ margin-left: $spacing-03;
205
+ }
206
+
207
+ .#{$prefix}--radio-button-group--invalid
208
+ + .#{$prefix}--radio-button__validation-msg
209
+ .#{$prefix}--form-requirement {
210
+ color: $text-error;
211
+ }
212
+
156
213
  // Focus
157
214
 
158
215
  .#{$prefix}--radio-button:focus