@cfpb/cfpb-design-system 3.10.0 → 3.12.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/CHANGELOG.md +94 -51
- package/dist/base/index.css +1 -1
- package/dist/base/index.css.map +2 -2
- package/dist/base/index.js +1 -1
- package/dist/base/index.js.map +1 -1
- package/dist/components/cfpb-buttons/index.css +1 -1
- package/dist/components/cfpb-buttons/index.css.map +2 -2
- package/dist/components/cfpb-buttons/index.js +1 -1
- package/dist/components/cfpb-buttons/index.js.map +1 -1
- package/dist/components/cfpb-expandables/index.css +1 -1
- package/dist/components/cfpb-expandables/index.css.map +2 -2
- package/dist/components/cfpb-expandables/index.js +1 -1
- package/dist/components/cfpb-expandables/index.js.map +1 -1
- package/dist/components/cfpb-forms/index.css +1 -1
- package/dist/components/cfpb-forms/index.css.map +2 -2
- package/dist/components/cfpb-forms/index.js +1 -1
- package/dist/components/cfpb-forms/index.js.map +1 -1
- package/dist/components/cfpb-icons/index.css +1 -1
- package/dist/components/cfpb-icons/index.css.map +2 -2
- package/dist/components/cfpb-icons/index.js +1 -1
- package/dist/components/cfpb-icons/index.js.map +1 -1
- package/dist/components/cfpb-layout/index.css +1 -1
- package/dist/components/cfpb-layout/index.css.map +2 -2
- package/dist/components/cfpb-layout/index.js +1 -1
- package/dist/components/cfpb-layout/index.js.map +1 -1
- package/dist/components/cfpb-notifications/index.css +1 -1
- package/dist/components/cfpb-notifications/index.css.map +2 -2
- package/dist/components/cfpb-notifications/index.js +1 -1
- package/dist/components/cfpb-notifications/index.js.map +1 -1
- package/dist/components/cfpb-pagination/index.css +1 -1
- package/dist/components/cfpb-pagination/index.css.map +2 -2
- package/dist/components/cfpb-pagination/index.js +1 -1
- package/dist/components/cfpb-pagination/index.js.map +1 -1
- package/dist/components/cfpb-tables/index.css +1 -1
- package/dist/components/cfpb-tables/index.css.map +2 -2
- package/dist/components/cfpb-tables/index.js +1 -1
- package/dist/components/cfpb-tables/index.js.map +1 -1
- package/dist/components/cfpb-tooltips/index.css +1 -1
- package/dist/components/cfpb-tooltips/index.css.map +2 -2
- package/dist/components/cfpb-tooltips/index.js +1 -1
- package/dist/components/cfpb-tooltips/index.js.map +1 -1
- package/dist/components/cfpb-typography/index.css +1 -1
- package/dist/components/cfpb-typography/index.css.map +2 -2
- package/dist/components/cfpb-typography/index.js +1 -1
- package/dist/components/cfpb-typography/index.js.map +1 -1
- package/dist/index.css +1 -1
- package/dist/index.css.map +2 -2
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/utilities/index.css +1 -1
- package/dist/utilities/index.css.map +2 -2
- package/dist/utilities/index.js +1 -1
- package/dist/utilities/index.js.map +1 -1
- package/package.json +1 -1
- package/src/abstracts/vars.scss +51 -40
- package/src/components/cfpb-forms/form-alert.scss +8 -6
- package/src/components/cfpb-forms/form-field.scss +76 -156
- package/src/components/cfpb-forms/multiselect.scss +4 -5
- package/src/components/cfpb-forms/select.scss +25 -11
- package/src/components/cfpb-forms/text-input.scss +34 -98
- package/src/utilities/utilities.scss +18 -5
package/package.json
CHANGED
package/src/abstracts/vars.scss
CHANGED
|
@@ -45,7 +45,7 @@ $size-i: 34px; // h1-size
|
|
|
45
45
|
$size-ii: 26px; // h2-size
|
|
46
46
|
$size-iii: 22px; // h3-size
|
|
47
47
|
$size-iv: 18px; // h4-size
|
|
48
|
-
$size-v: 14px; // h5-
|
|
48
|
+
$size-v: 14px; // h5-size
|
|
49
49
|
$size-vi: 12px; // h6-size
|
|
50
50
|
$size-code: 13px; // Custom size only for Mono code blocks
|
|
51
51
|
|
|
@@ -82,45 +82,56 @@ $block-border-left: $block-border;
|
|
|
82
82
|
// .content__main
|
|
83
83
|
$content-main-border: var(--gray-40);
|
|
84
84
|
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
//
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
//
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
//
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
//
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
85
|
+
:root {
|
|
86
|
+
// Form variables
|
|
87
|
+
|
|
88
|
+
// .a-text-input
|
|
89
|
+
--input-text-default: var(--black);
|
|
90
|
+
--input-text-disabled-default: var(--gray-dark);
|
|
91
|
+
--input-text-placeholder-default: var(--gray-dark);
|
|
92
|
+
--input-border-default: var(--gray-60); // $input-border
|
|
93
|
+
--input-border-disabled: var(--gray-60);
|
|
94
|
+
--input-border-success: var(--green);
|
|
95
|
+
--input-border-warning: var(--gold);
|
|
96
|
+
--input-border-error: var(--red);
|
|
97
|
+
--input-border-hover-default: var(--pacific); // $input-border-hover
|
|
98
|
+
--input-border-focus-default: var(--pacific); // $input-border-focused
|
|
99
|
+
--input-bg-default: var(--white);
|
|
100
|
+
--input-bg-disabled-default: var(--gray-10);
|
|
101
|
+
|
|
102
|
+
// .a-form-alert icons
|
|
103
|
+
--form-alert-icon-color-default: var(--gray);
|
|
104
|
+
--form-alert-icon-color-success: var(--green);
|
|
105
|
+
--form-alert-icon-color-warning: var(--gold);
|
|
106
|
+
--form-alert-icon-color-error: var(--red);
|
|
107
|
+
|
|
108
|
+
// .a-select
|
|
109
|
+
--select-border-default: var(--gray-60); // $input-border
|
|
110
|
+
--select-border-width-default: 1px;
|
|
111
|
+
--select-border-error: var(--red);
|
|
112
|
+
--select-border-width-error: 2px;
|
|
113
|
+
--select-border-hover-default: var(--pacific); // $input-border-hover
|
|
114
|
+
--select-border-focus-default: var(--pacific); // $input-border-focused
|
|
115
|
+
--select-bg-disabled-default: var(--gray-10); // $input-bg-disabled
|
|
116
|
+
--select-icon-bg-default: var(--gray-10);
|
|
117
|
+
--select-text-disabled-default: var(--gray-dark); // $input-text-disabled
|
|
118
|
+
|
|
119
|
+
// .m-form-field--checkbox .m-form-field--radio
|
|
120
|
+
--choice-border-default: var(--gray-60); // $input-border
|
|
121
|
+
--choice-border-disabled: var(--gray-60);
|
|
122
|
+
--choice-border-success: var(--green); // $input-border-success
|
|
123
|
+
--choice-border-warning: var(--gold); // $input-border-warning
|
|
124
|
+
--choice-border-error: var(--red); // $input-border-error
|
|
125
|
+
--choice-border-hover-default: var(--pacific); // $input-border-hover
|
|
126
|
+
--choice-border-focus-default: var(--pacific); // $input-border-focused
|
|
127
|
+
--choice-outline-focus-default: var(--pacific); // $input-border-focused
|
|
128
|
+
--choice-bg-default: var(--white); // $input-bg
|
|
129
|
+
--choice-bg-disabled: var(--gray-10); // $input-bg-disabled
|
|
130
|
+
--choice-bg-selected-default: var(--pacific); // $input-bg-selected
|
|
131
|
+
--choice-bg-selected-disabled: var(--gray-40);
|
|
132
|
+
--choice-bg-selected-focus-default: var(--pacific);
|
|
133
|
+
--choice-label-disabled-default: var(--gray-dark);
|
|
134
|
+
}
|
|
124
135
|
|
|
125
136
|
// .m-form-field--lg-target
|
|
126
137
|
$form-field-input-lg-target-bg: var(--gray-10);
|
|
@@ -2,11 +2,13 @@
|
|
|
2
2
|
@use '@cfpb/cfpb-design-system/src/abstracts' as *;
|
|
3
3
|
|
|
4
4
|
.a-form-alert {
|
|
5
|
+
--form-alert-icon-color: var(--form-alert-icon-color-default);
|
|
6
|
+
|
|
5
7
|
display: flex;
|
|
6
8
|
gap: math.div(5px, $base-font-size-px) + rem;
|
|
7
9
|
|
|
8
10
|
.cf-icon-svg {
|
|
9
|
-
color:
|
|
11
|
+
color: var(--form-alert-icon-color);
|
|
10
12
|
flex: none;
|
|
11
13
|
margin-top: math.div(1px, $base-font-size-px) + rem;
|
|
12
14
|
}
|
|
@@ -16,14 +18,14 @@
|
|
|
16
18
|
}
|
|
17
19
|
|
|
18
20
|
&--success .cf-icon-svg {
|
|
19
|
-
color:
|
|
21
|
+
--form-alert-icon-color: var(--form-alert-icon-color-success);
|
|
20
22
|
}
|
|
21
23
|
|
|
22
|
-
&--
|
|
23
|
-
color:
|
|
24
|
+
&--warning .cf-icon-svg {
|
|
25
|
+
--form-alert-icon-color: var(--form-alert-icon-color-warning);
|
|
24
26
|
}
|
|
25
27
|
|
|
26
|
-
&--
|
|
27
|
-
color:
|
|
28
|
+
&--error .cf-icon-svg {
|
|
29
|
+
--form-alert-icon-color: var(--form-alert-icon-color-error);
|
|
28
30
|
}
|
|
29
31
|
}
|
|
@@ -3,6 +3,19 @@
|
|
|
3
3
|
@use '@cfpb/cfpb-design-system/src/utilities' as *;
|
|
4
4
|
|
|
5
5
|
.m-form-field {
|
|
6
|
+
// Theme variables.
|
|
7
|
+
--choice-border: var(--choice-border-default);
|
|
8
|
+
--choice-border-hover: var(--choice-border-hover-default);
|
|
9
|
+
--choice-border-focus: var(--choice-border-focus-default);
|
|
10
|
+
--choice-outline-focus: var(--choice-outline-focus-default);
|
|
11
|
+
--choice-bg: var(--choice-bg-default);
|
|
12
|
+
--choice-bg-selected: var(--choice-bg-selected-default);
|
|
13
|
+
--choice-bg-selected-focus: var(--choice-bg-selected-focus-default);
|
|
14
|
+
--choice-label-disabled: var(--choice-label-disabled-default);
|
|
15
|
+
|
|
16
|
+
// Private variables.
|
|
17
|
+
--choice-border-width-addendum: 0;
|
|
18
|
+
|
|
6
19
|
.a-text-input--full {
|
|
7
20
|
width: 100%;
|
|
8
21
|
}
|
|
@@ -14,14 +27,6 @@
|
|
|
14
27
|
&--checkbox,
|
|
15
28
|
&--radio {
|
|
16
29
|
.a-label {
|
|
17
|
-
// We need to turn off autoprefixing for the inline-grid because
|
|
18
|
-
// IE does not handle an inline-grid like other browsers,
|
|
19
|
-
// leading to an extremely narrow column of text for the label
|
|
20
|
-
// and the checkbox or radio widget covering the first part of it.
|
|
21
|
-
// The Autoprefixer control comment below ensures that the following
|
|
22
|
-
// property is only picked up by browsers with standard support.
|
|
23
|
-
|
|
24
|
-
/* autoprefixer: ignore next */
|
|
25
30
|
display: inline-grid;
|
|
26
31
|
|
|
27
32
|
// 30px is width of checkbox/radio button plus the needed padding.
|
|
@@ -36,11 +41,12 @@
|
|
|
36
41
|
display: inline-block;
|
|
37
42
|
grid-row-start: 1;
|
|
38
43
|
grid-row-end: 3;
|
|
39
|
-
border: 1px solid
|
|
44
|
+
border: 1px solid var(--choice-border);
|
|
45
|
+
outline: var(--choice-border-width-addendum) solid var(--choice-border);
|
|
40
46
|
height: math.div(18px, $base-font-size-px) + em;
|
|
41
47
|
width: math.div(18px, $base-font-size-px) + em;
|
|
42
48
|
margin-right: 10px;
|
|
43
|
-
background-color:
|
|
49
|
+
background-color: var(--choice-bg);
|
|
44
50
|
content: '';
|
|
45
51
|
vertical-align: top;
|
|
46
52
|
|
|
@@ -52,24 +58,17 @@
|
|
|
52
58
|
|
|
53
59
|
&:hover::before,
|
|
54
60
|
&.hover::before {
|
|
55
|
-
border-color:
|
|
61
|
+
border-color: var(--choice-border-hover);
|
|
56
62
|
}
|
|
57
63
|
}
|
|
58
64
|
|
|
59
|
-
// Ensure the helper text appears on its own line below the label.
|
|
60
|
-
.a-label__helper {
|
|
61
|
-
display: block;
|
|
62
|
-
}
|
|
63
|
-
|
|
64
65
|
.a-checkbox,
|
|
65
66
|
.a-radio {
|
|
66
67
|
@include u-visually-hidden;
|
|
67
68
|
|
|
68
69
|
&:focus + .a-label,
|
|
69
70
|
&.focus + .a-label {
|
|
70
|
-
outline: 1px dotted
|
|
71
|
-
|
|
72
|
-
// The outline-offset property is not supported in IE.
|
|
71
|
+
outline: 1px dotted var(--choice-outline-focus);
|
|
73
72
|
outline-offset: 1px;
|
|
74
73
|
}
|
|
75
74
|
|
|
@@ -79,36 +78,62 @@
|
|
|
79
78
|
&.focus + .a-label::before,
|
|
80
79
|
&:hover + .a-label::before,
|
|
81
80
|
&.hover + .a-label::before {
|
|
82
|
-
border-color:
|
|
81
|
+
border-color: var(--choice-border);
|
|
83
82
|
outline: none;
|
|
84
83
|
box-shadow: none; // Applies only to radio buttons.
|
|
85
84
|
}
|
|
86
85
|
|
|
87
86
|
& + .a-label {
|
|
88
87
|
cursor: not-allowed;
|
|
89
|
-
color:
|
|
88
|
+
color: var(--choice-label-disabled);
|
|
90
89
|
|
|
91
90
|
&::before {
|
|
92
|
-
|
|
93
|
-
border-color: $form-field-input-border-disabled;
|
|
91
|
+
outline: none;
|
|
94
92
|
}
|
|
95
93
|
}
|
|
96
94
|
}
|
|
97
95
|
}
|
|
96
|
+
|
|
97
|
+
&:has(.a-checkbox:disabled),
|
|
98
|
+
&:has(.a-radio:disabled) {
|
|
99
|
+
--choice-border: var(--choice-border-disabled);
|
|
100
|
+
--choice-bg: var(--choice-bg-disabled);
|
|
101
|
+
--choice-bg-selected: var(--choice-bg-selected-disabled);
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
&-success,
|
|
105
|
+
&-warning,
|
|
106
|
+
&-error {
|
|
107
|
+
--choice-border-width-addendum: 1px;
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
&-success {
|
|
111
|
+
--choice-border: var(--choice-border-success);
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
&-warning {
|
|
115
|
+
--choice-border: var(--choice-border-warning);
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
&-error {
|
|
119
|
+
--choice-border: var(--choice-border-error);
|
|
120
|
+
}
|
|
98
121
|
}
|
|
99
122
|
|
|
100
123
|
&--checkbox {
|
|
101
124
|
.a-checkbox {
|
|
102
125
|
&:focus + .a-label::before,
|
|
103
126
|
&.focus + .a-label::before {
|
|
104
|
-
border-color:
|
|
105
|
-
box-shadow: 0 0 0 1px
|
|
127
|
+
border-color: var(--choice-border-focus);
|
|
128
|
+
box-shadow: 0 0 0 1px var(--choice-border-focus);
|
|
129
|
+
outline-color: var(--choice-border-focus);
|
|
106
130
|
}
|
|
107
131
|
|
|
108
132
|
&:hover + .a-label::before,
|
|
109
133
|
&.hover + .a-label::before {
|
|
110
|
-
border-color:
|
|
111
|
-
box-shadow: 0 0 0 1px
|
|
134
|
+
border-color: var(--choice-border-hover);
|
|
135
|
+
box-shadow: 0 0 0 1px var(--choice-border-hover);
|
|
136
|
+
outline-color: var(--choice-border-hover);
|
|
112
137
|
}
|
|
113
138
|
|
|
114
139
|
&:checked + .a-label::before {
|
|
@@ -124,114 +149,6 @@
|
|
|
124
149
|
--cfpb-background-icon-svg: 'approved rgb(90,93,97)';
|
|
125
150
|
}
|
|
126
151
|
}
|
|
127
|
-
|
|
128
|
-
&-error {
|
|
129
|
-
.a-label {
|
|
130
|
-
&::before {
|
|
131
|
-
border-color: $input-border-error;
|
|
132
|
-
outline: 1px solid $input-border-error;
|
|
133
|
-
}
|
|
134
|
-
|
|
135
|
-
&:hover::before,
|
|
136
|
-
&.hover::before {
|
|
137
|
-
border-color: $input-border-hover;
|
|
138
|
-
outline-color: $input-border-hover;
|
|
139
|
-
}
|
|
140
|
-
}
|
|
141
|
-
|
|
142
|
-
.a-checkbox {
|
|
143
|
-
&:hover + .a-label::before,
|
|
144
|
-
&.hover + .a-label::before {
|
|
145
|
-
border-color: $input-border-hover;
|
|
146
|
-
outline-color: $input-border-hover;
|
|
147
|
-
}
|
|
148
|
-
|
|
149
|
-
&:focus + .a-label::before,
|
|
150
|
-
&.focus + .a-label::before {
|
|
151
|
-
border-color: $input-border-error;
|
|
152
|
-
box-shadow: 0 0 0 1px $input-border-error;
|
|
153
|
-
outline-color: $input-border-error;
|
|
154
|
-
}
|
|
155
|
-
|
|
156
|
-
&:focus + .a-label,
|
|
157
|
-
&.focus + .a-label {
|
|
158
|
-
outline: 1px dotted $input-border-error;
|
|
159
|
-
outline-offset: 1px;
|
|
160
|
-
}
|
|
161
|
-
}
|
|
162
|
-
}
|
|
163
|
-
|
|
164
|
-
&-warning {
|
|
165
|
-
.a-label {
|
|
166
|
-
&::before {
|
|
167
|
-
border-color: $input-border-warning;
|
|
168
|
-
outline: 1px solid $input-border-warning;
|
|
169
|
-
}
|
|
170
|
-
|
|
171
|
-
&:hover::before,
|
|
172
|
-
&.hover::before {
|
|
173
|
-
border-color: $input-border-hover;
|
|
174
|
-
outline-color: $input-border-hover;
|
|
175
|
-
}
|
|
176
|
-
}
|
|
177
|
-
|
|
178
|
-
.a-checkbox {
|
|
179
|
-
&:hover + .a-label::before,
|
|
180
|
-
&.hover + .a-label::before {
|
|
181
|
-
border-color: $input-border-hover;
|
|
182
|
-
outline-color: $input-border-hover;
|
|
183
|
-
}
|
|
184
|
-
|
|
185
|
-
&:focus + .a-label::before,
|
|
186
|
-
&.focus + .a-label::before {
|
|
187
|
-
border-color: $input-border-warning;
|
|
188
|
-
box-shadow: 0 0 0 1px $input-border-warning;
|
|
189
|
-
outline-color: $input-border-warning;
|
|
190
|
-
}
|
|
191
|
-
|
|
192
|
-
&:focus + .a-label,
|
|
193
|
-
&.focus + .a-label {
|
|
194
|
-
outline: 1px dotted $input-border-warning;
|
|
195
|
-
outline-offset: 1px;
|
|
196
|
-
}
|
|
197
|
-
}
|
|
198
|
-
}
|
|
199
|
-
|
|
200
|
-
&-success {
|
|
201
|
-
.a-label {
|
|
202
|
-
&::before {
|
|
203
|
-
border-color: $input-border-success;
|
|
204
|
-
outline: 1px solid $input-border-success;
|
|
205
|
-
}
|
|
206
|
-
|
|
207
|
-
&:hover::before,
|
|
208
|
-
&.hover::before {
|
|
209
|
-
border-color: $input-border-hover;
|
|
210
|
-
outline-color: $input-border-hover;
|
|
211
|
-
}
|
|
212
|
-
}
|
|
213
|
-
|
|
214
|
-
.a-checkbox {
|
|
215
|
-
&:hover + .a-label::before,
|
|
216
|
-
&.hover + .a-label::before {
|
|
217
|
-
border-color: $input-border-hover;
|
|
218
|
-
outline-color: $input-border-hover;
|
|
219
|
-
}
|
|
220
|
-
|
|
221
|
-
&:focus + .a-label::before,
|
|
222
|
-
&.focus + .a-label::before {
|
|
223
|
-
border-color: $input-border-success;
|
|
224
|
-
box-shadow: 0 0 0 1px $input-border-success;
|
|
225
|
-
outline-color: $input-border-success;
|
|
226
|
-
}
|
|
227
|
-
|
|
228
|
-
&:focus + .a-label,
|
|
229
|
-
&.focus + .a-label {
|
|
230
|
-
outline: 1px dotted $input-border-success;
|
|
231
|
-
outline-offset: 1px;
|
|
232
|
-
}
|
|
233
|
-
}
|
|
234
|
-
}
|
|
235
152
|
}
|
|
236
153
|
|
|
237
154
|
&--radio {
|
|
@@ -240,7 +157,7 @@
|
|
|
240
157
|
border-radius: 50%;
|
|
241
158
|
|
|
242
159
|
/* The rotate is needed to fix a bug in Firefox where radio
|
|
243
|
-
|
|
160
|
+
button was not centered. */
|
|
244
161
|
transform: rotate(0deg);
|
|
245
162
|
}
|
|
246
163
|
}
|
|
@@ -249,41 +166,45 @@
|
|
|
249
166
|
&:focus + .a-label::before,
|
|
250
167
|
&.focus + .a-label::before {
|
|
251
168
|
outline: none;
|
|
252
|
-
border-color:
|
|
253
|
-
box-shadow: 0 0 0 1px
|
|
169
|
+
border-color: var(--choice-border-focus);
|
|
170
|
+
box-shadow: 0 0 0 1px var(--choice-border-focus);
|
|
254
171
|
}
|
|
255
172
|
|
|
256
173
|
&:hover + .a-label::before,
|
|
257
174
|
&.hover + .a-label::before {
|
|
258
175
|
outline: none;
|
|
259
|
-
border-color:
|
|
260
|
-
box-shadow: 0 0 0 1px
|
|
176
|
+
border-color: var(--choice-border-hover);
|
|
177
|
+
box-shadow: 0 0 0 1px var(--choice-border-hover);
|
|
261
178
|
}
|
|
262
179
|
|
|
263
180
|
&:checked + .a-label::before {
|
|
264
|
-
background-color:
|
|
265
|
-
box-shadow: inset 0 0 0 2px
|
|
266
|
-
}
|
|
267
|
-
|
|
268
|
-
&:checked:disabled + .a-label::before {
|
|
269
|
-
background-color: $input-bg-disabled-selected;
|
|
270
|
-
box-shadow: inset 0 0 0 2px $input-bg-disabled;
|
|
181
|
+
background-color: var(--choice-bg-selected);
|
|
182
|
+
box-shadow: inset 0 0 0 2px var(--white); // The radio button ring.
|
|
271
183
|
}
|
|
272
184
|
|
|
273
185
|
&:focus:checked + .a-label::before,
|
|
274
186
|
&.focus:checked + .a-label::before {
|
|
275
|
-
|
|
187
|
+
background-color: var(--choice-bg-selected-focus);
|
|
188
|
+
border-color: var(--choice-border-focus);
|
|
276
189
|
box-shadow:
|
|
277
|
-
0 0 0 1px
|
|
278
|
-
inset 0 0 0 2px
|
|
190
|
+
0 0 0 1px var(--choice-border-focus),
|
|
191
|
+
inset 0 0 0 2px var(--white); // The radio button ring.
|
|
279
192
|
}
|
|
280
193
|
|
|
281
194
|
&:hover:checked + .a-label::before,
|
|
282
195
|
&.hover:checked + .a-label::before {
|
|
283
|
-
border-color:
|
|
196
|
+
border-color: var(--choice-border-hover);
|
|
284
197
|
box-shadow:
|
|
285
|
-
0 0 0 1px
|
|
286
|
-
inset 0 0 0 2px
|
|
198
|
+
0 0 0 1px var(--choice-border-hover),
|
|
199
|
+
inset 0 0 0 2px var(--white); // The radio button ring.
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
&:checked:disabled + .a-label::before,
|
|
203
|
+
&:hover:checked:disabled + .a-label::before,
|
|
204
|
+
&.hover:checked:disabled + .a-label::before {
|
|
205
|
+
background-color: var(--choice-bg-selected);
|
|
206
|
+
box-shadow: inset 0 0 0 2px var(--gray-10); // The radio button ring.
|
|
207
|
+
border-color: var(--choice-border-disabled);
|
|
287
208
|
}
|
|
288
209
|
}
|
|
289
210
|
}
|
|
@@ -315,14 +236,13 @@
|
|
|
315
236
|
&:focus + .a-label,
|
|
316
237
|
&.focus + .a-label,
|
|
317
238
|
&:checked + .a-label {
|
|
318
|
-
// The outline-offset property is not supported in IE.
|
|
319
239
|
outline-offset: 1px;
|
|
320
240
|
}
|
|
321
241
|
|
|
322
242
|
&:disabled + .a-label,
|
|
323
243
|
&:checked:disabled + .a-label,
|
|
324
244
|
&:hover:disabled + .a-label {
|
|
325
|
-
color:
|
|
245
|
+
color: var(--choice-label-disabled);
|
|
326
246
|
box-shadow: none;
|
|
327
247
|
background-color: $form-field-input-lg-target-bg-disabled;
|
|
328
248
|
}
|
|
@@ -330,7 +250,7 @@
|
|
|
330
250
|
&:checked:disabled + .a-label {
|
|
331
251
|
&,
|
|
332
252
|
&::before {
|
|
333
|
-
border: 1px solid
|
|
253
|
+
border: 1px solid var(--form-field-border-disabled);
|
|
334
254
|
}
|
|
335
255
|
}
|
|
336
256
|
}
|
|
@@ -13,7 +13,7 @@ select.o-multiselect {
|
|
|
13
13
|
height: 5.5em;
|
|
14
14
|
padding-top: math.div(4px, $base-font-size-px) + em;
|
|
15
15
|
padding-bottom: math.div(4px, $base-font-size-px) + em;
|
|
16
|
-
border: 1px solid
|
|
16
|
+
border: 1px solid var(--select-border-default);
|
|
17
17
|
|
|
18
18
|
option {
|
|
19
19
|
padding: math.div(2px, $base-font-size-px) + em
|
|
@@ -31,19 +31,18 @@ select.o-multiselect {
|
|
|
31
31
|
// Arrow box width must be odd size to properly center the bg image
|
|
32
32
|
width: math.div($select-height, $base-font-size-px) + em;
|
|
33
33
|
box-sizing: border-box;
|
|
34
|
-
border
|
|
34
|
+
border: 1px solid var(--select-border-default);
|
|
35
35
|
position: absolute;
|
|
36
36
|
top: 0;
|
|
37
37
|
right: 0;
|
|
38
38
|
bottom: 0;
|
|
39
|
-
background-color:
|
|
39
|
+
background-color: var(--select-icon-bg-default);
|
|
40
40
|
|
|
41
41
|
--cfpb-background-icon-svg: 'down';
|
|
42
42
|
|
|
43
43
|
background-size: auto $cf-icon-height;
|
|
44
44
|
background-repeat: no-repeat;
|
|
45
45
|
background-position: center center;
|
|
46
|
-
border: 1px solid $input-border;
|
|
47
46
|
content: '';
|
|
48
47
|
pointer-events: none;
|
|
49
48
|
}
|
|
@@ -58,7 +57,7 @@ select.o-multiselect {
|
|
|
58
57
|
|
|
59
58
|
&__fieldset {
|
|
60
59
|
// Resets
|
|
61
|
-
border-color:
|
|
60
|
+
border-color: var(--select-border-default);
|
|
62
61
|
border-top: none;
|
|
63
62
|
margin: 0;
|
|
64
63
|
padding: 0;
|
|
@@ -2,8 +2,16 @@
|
|
|
2
2
|
@use '@cfpb/cfpb-design-system/src/abstracts' as *;
|
|
3
3
|
|
|
4
4
|
.a-select {
|
|
5
|
+
--select-border: var(--select-border-default);
|
|
6
|
+
--select-border-width: var(--select-border-width-default);
|
|
7
|
+
|
|
5
8
|
position: relative;
|
|
6
|
-
border:
|
|
9
|
+
border: var(--select-border-width) solid var(--select-border);
|
|
10
|
+
|
|
11
|
+
&:has(select[disabled]) {
|
|
12
|
+
border: var(--select-border-width-default) solid
|
|
13
|
+
var(--select-border-default);
|
|
14
|
+
}
|
|
7
15
|
|
|
8
16
|
select {
|
|
9
17
|
width: 100%;
|
|
@@ -13,21 +21,22 @@
|
|
|
13
21
|
em;
|
|
14
22
|
border: 0;
|
|
15
23
|
appearance: none;
|
|
16
|
-
background-color:
|
|
24
|
+
background-color: var(--white);
|
|
17
25
|
border-radius: 0;
|
|
18
|
-
color:
|
|
26
|
+
color: var(--black);
|
|
19
27
|
|
|
20
28
|
&:hover,
|
|
21
29
|
&.hover {
|
|
22
|
-
outline: 2px solid
|
|
30
|
+
outline: 2px solid var(--select-border-hover-default);
|
|
23
31
|
outline-offset: 0;
|
|
32
|
+
cursor: pointer;
|
|
24
33
|
}
|
|
25
34
|
|
|
26
35
|
&:active,
|
|
27
36
|
&:focus,
|
|
28
37
|
&.focus {
|
|
29
|
-
box-shadow: 0 0 0 2px
|
|
30
|
-
outline: 1px dotted
|
|
38
|
+
box-shadow: 0 0 0 2px var(--select-border-focus-default);
|
|
39
|
+
outline: 1px dotted var(--select-border-focus-default);
|
|
31
40
|
|
|
32
41
|
// The outline-offset property is not supported everywhere (e.g. IE)
|
|
33
42
|
// but it adds a nice touch in browsers where it is.
|
|
@@ -36,8 +45,7 @@
|
|
|
36
45
|
}
|
|
37
46
|
|
|
38
47
|
select[disabled] {
|
|
39
|
-
color:
|
|
40
|
-
background-color: $input-bg-disabled;
|
|
48
|
+
background-color: var(--select-bg-disabled-default);
|
|
41
49
|
cursor: not-allowed;
|
|
42
50
|
|
|
43
51
|
&:hover,
|
|
@@ -48,22 +56,23 @@
|
|
|
48
56
|
}
|
|
49
57
|
}
|
|
50
58
|
|
|
59
|
+
select[disabled],
|
|
51
60
|
select[disabled] option,
|
|
52
61
|
select[disabled] option:disabled,
|
|
53
62
|
select option:disabled {
|
|
54
|
-
color:
|
|
63
|
+
color: var(--select-text-disabled-default);
|
|
55
64
|
}
|
|
56
65
|
|
|
57
66
|
&::after {
|
|
58
67
|
// Arrow box width must be odd size to properly center the bg image
|
|
59
68
|
width: math.div($select-height, $base-font-size-px) + em;
|
|
60
69
|
box-sizing: border-box;
|
|
61
|
-
border-left: 1px solid
|
|
70
|
+
border-left: 1px solid var(--select-border-default);
|
|
62
71
|
position: absolute;
|
|
63
72
|
top: 0;
|
|
64
73
|
right: 0;
|
|
65
74
|
bottom: 0;
|
|
66
|
-
background-color:
|
|
75
|
+
background-color: var(--select-icon-bg-default);
|
|
67
76
|
|
|
68
77
|
--cfpb-background-icon-svg: 'down';
|
|
69
78
|
|
|
@@ -80,4 +89,9 @@
|
|
|
80
89
|
&--disabled::after {
|
|
81
90
|
--cfpb-background-icon-svg: 'down rgb(90,93,97)';
|
|
82
91
|
}
|
|
92
|
+
|
|
93
|
+
&--error {
|
|
94
|
+
--select-border: var(--select-border-error);
|
|
95
|
+
--select-border-width: var(--select-border-width-error);
|
|
96
|
+
}
|
|
83
97
|
}
|