@cfpb/cfpb-design-system 3.11.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 +75 -52
- 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 +40 -37
- package/src/components/cfpb-forms/form-alert.scss +8 -6
- package/src/components/cfpb-forms/form-field.scss +70 -154
- package/src/components/cfpb-forms/multiselect.scss +1 -1
- package/src/components/cfpb-forms/text-input.scss +34 -98
- package/src/utilities/utilities.scss +15 -0
package/package.json
CHANGED
package/src/abstracts/vars.scss
CHANGED
|
@@ -82,39 +82,31 @@ $block-border-left: $block-border;
|
|
|
82
82
|
// .content__main
|
|
83
83
|
$content-main-border: var(--gray-40);
|
|
84
84
|
|
|
85
|
-
// Form variables
|
|
86
|
-
|
|
87
|
-
// .a-text-input borders
|
|
88
|
-
$input-border: var(--gray-60);
|
|
89
|
-
$input-border-hover: var(--pacific);
|
|
90
|
-
$input-border-focused: var(--pacific);
|
|
91
|
-
$input-border-error: var(--red);
|
|
92
|
-
$input-border-error-hover: var(--red-dark);
|
|
93
|
-
$input-border-warning: var(--gold);
|
|
94
|
-
$input-border-warning-hover: var(--gold-dark);
|
|
95
|
-
$input-border-success: var(--green);
|
|
96
|
-
$input-border-success-hover: var(--green-dark);
|
|
97
|
-
|
|
98
|
-
// .a-text-input backgrounds
|
|
99
|
-
$input-bg: var(--white);
|
|
100
|
-
$input-bg-selected: var(--pacific);
|
|
101
|
-
$input-bg-disabled: var(--gray-10);
|
|
102
|
-
$input-bg-disabled-selected: var(--gray-40);
|
|
103
|
-
|
|
104
|
-
// .a-text-input text
|
|
105
|
-
$input-text: var(--black);
|
|
106
|
-
$input-text-disabled: var(--gray-dark);
|
|
107
|
-
$input-text-placeholder: var(--gray-dark);
|
|
108
|
-
|
|
109
|
-
// .a-text-input icons
|
|
110
|
-
$input-icon: var(--gray);
|
|
111
|
-
$input-icon-success: var(--green);
|
|
112
|
-
$input-icon-warning: var(--gold);
|
|
113
|
-
$input-icon-error: var(--red);
|
|
114
|
-
|
|
115
|
-
// .a-select
|
|
116
85
|
:root {
|
|
117
|
-
|
|
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
|
|
118
110
|
--select-border-width-default: 1px;
|
|
119
111
|
--select-border-error: var(--red);
|
|
120
112
|
--select-border-width-error: 2px;
|
|
@@ -123,12 +115,23 @@ $input-icon-error: var(--red);
|
|
|
123
115
|
--select-bg-disabled-default: var(--gray-10); // $input-bg-disabled
|
|
124
116
|
--select-icon-bg-default: var(--gray-10);
|
|
125
117
|
--select-text-disabled-default: var(--gray-dark); // $input-text-disabled
|
|
126
|
-
}
|
|
127
118
|
|
|
128
|
-
// .m-form-field
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
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
|
+
}
|
|
132
135
|
|
|
133
136
|
// .m-form-field--lg-target
|
|
134
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,37 +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
|
-
background: $input-bg-disabled;
|
|
93
|
-
border-color: $form-field-input-border-disabled;
|
|
94
91
|
outline: none;
|
|
95
92
|
}
|
|
96
93
|
}
|
|
97
94
|
}
|
|
98
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
|
+
}
|
|
99
121
|
}
|
|
100
122
|
|
|
101
123
|
&--checkbox {
|
|
102
124
|
.a-checkbox {
|
|
103
125
|
&:focus + .a-label::before,
|
|
104
126
|
&.focus + .a-label::before {
|
|
105
|
-
border-color:
|
|
106
|
-
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);
|
|
107
130
|
}
|
|
108
131
|
|
|
109
132
|
&:hover + .a-label::before,
|
|
110
133
|
&.hover + .a-label::before {
|
|
111
|
-
border-color:
|
|
112
|
-
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);
|
|
113
137
|
}
|
|
114
138
|
|
|
115
139
|
&:checked + .a-label::before {
|
|
@@ -125,114 +149,6 @@
|
|
|
125
149
|
--cfpb-background-icon-svg: 'approved rgb(90,93,97)';
|
|
126
150
|
}
|
|
127
151
|
}
|
|
128
|
-
|
|
129
|
-
&-error {
|
|
130
|
-
.a-label {
|
|
131
|
-
&::before {
|
|
132
|
-
border-color: $input-border-error;
|
|
133
|
-
outline: 1px solid $input-border-error;
|
|
134
|
-
}
|
|
135
|
-
|
|
136
|
-
&:hover::before,
|
|
137
|
-
&.hover::before {
|
|
138
|
-
border-color: $input-border-hover;
|
|
139
|
-
outline-color: $input-border-hover;
|
|
140
|
-
}
|
|
141
|
-
}
|
|
142
|
-
|
|
143
|
-
.a-checkbox {
|
|
144
|
-
&:hover + .a-label::before,
|
|
145
|
-
&.hover + .a-label::before {
|
|
146
|
-
border-color: $input-border-hover;
|
|
147
|
-
outline-color: $input-border-hover;
|
|
148
|
-
}
|
|
149
|
-
|
|
150
|
-
&:focus + .a-label::before,
|
|
151
|
-
&.focus + .a-label::before {
|
|
152
|
-
border-color: $input-border-error;
|
|
153
|
-
box-shadow: 0 0 0 1px $input-border-error;
|
|
154
|
-
outline-color: $input-border-error;
|
|
155
|
-
}
|
|
156
|
-
|
|
157
|
-
&:focus + .a-label,
|
|
158
|
-
&.focus + .a-label {
|
|
159
|
-
outline: 1px dotted $input-border-error;
|
|
160
|
-
outline-offset: 1px;
|
|
161
|
-
}
|
|
162
|
-
}
|
|
163
|
-
}
|
|
164
|
-
|
|
165
|
-
&-warning {
|
|
166
|
-
.a-label {
|
|
167
|
-
&::before {
|
|
168
|
-
border-color: $input-border-warning;
|
|
169
|
-
outline: 1px solid $input-border-warning;
|
|
170
|
-
}
|
|
171
|
-
|
|
172
|
-
&:hover::before,
|
|
173
|
-
&.hover::before {
|
|
174
|
-
border-color: $input-border-hover;
|
|
175
|
-
outline-color: $input-border-hover;
|
|
176
|
-
}
|
|
177
|
-
}
|
|
178
|
-
|
|
179
|
-
.a-checkbox {
|
|
180
|
-
&:hover + .a-label::before,
|
|
181
|
-
&.hover + .a-label::before {
|
|
182
|
-
border-color: $input-border-hover;
|
|
183
|
-
outline-color: $input-border-hover;
|
|
184
|
-
}
|
|
185
|
-
|
|
186
|
-
&:focus + .a-label::before,
|
|
187
|
-
&.focus + .a-label::before {
|
|
188
|
-
border-color: $input-border-warning;
|
|
189
|
-
box-shadow: 0 0 0 1px $input-border-warning;
|
|
190
|
-
outline-color: $input-border-warning;
|
|
191
|
-
}
|
|
192
|
-
|
|
193
|
-
&:focus + .a-label,
|
|
194
|
-
&.focus + .a-label {
|
|
195
|
-
outline: 1px dotted $input-border-warning;
|
|
196
|
-
outline-offset: 1px;
|
|
197
|
-
}
|
|
198
|
-
}
|
|
199
|
-
}
|
|
200
|
-
|
|
201
|
-
&-success {
|
|
202
|
-
.a-label {
|
|
203
|
-
&::before {
|
|
204
|
-
border-color: $input-border-success;
|
|
205
|
-
outline: 1px solid $input-border-success;
|
|
206
|
-
}
|
|
207
|
-
|
|
208
|
-
&:hover::before,
|
|
209
|
-
&.hover::before {
|
|
210
|
-
border-color: $input-border-hover;
|
|
211
|
-
outline-color: $input-border-hover;
|
|
212
|
-
}
|
|
213
|
-
}
|
|
214
|
-
|
|
215
|
-
.a-checkbox {
|
|
216
|
-
&:hover + .a-label::before,
|
|
217
|
-
&.hover + .a-label::before {
|
|
218
|
-
border-color: $input-border-hover;
|
|
219
|
-
outline-color: $input-border-hover;
|
|
220
|
-
}
|
|
221
|
-
|
|
222
|
-
&:focus + .a-label::before,
|
|
223
|
-
&.focus + .a-label::before {
|
|
224
|
-
border-color: $input-border-success;
|
|
225
|
-
box-shadow: 0 0 0 1px $input-border-success;
|
|
226
|
-
outline-color: $input-border-success;
|
|
227
|
-
}
|
|
228
|
-
|
|
229
|
-
&:focus + .a-label,
|
|
230
|
-
&.focus + .a-label {
|
|
231
|
-
outline: 1px dotted $input-border-success;
|
|
232
|
-
outline-offset: 1px;
|
|
233
|
-
}
|
|
234
|
-
}
|
|
235
|
-
}
|
|
236
152
|
}
|
|
237
153
|
|
|
238
154
|
&--radio {
|
|
@@ -241,7 +157,7 @@
|
|
|
241
157
|
border-radius: 50%;
|
|
242
158
|
|
|
243
159
|
/* The rotate is needed to fix a bug in Firefox where radio
|
|
244
|
-
|
|
160
|
+
button was not centered. */
|
|
245
161
|
transform: rotate(0deg);
|
|
246
162
|
}
|
|
247
163
|
}
|
|
@@ -250,44 +166,45 @@
|
|
|
250
166
|
&:focus + .a-label::before,
|
|
251
167
|
&.focus + .a-label::before {
|
|
252
168
|
outline: none;
|
|
253
|
-
border-color:
|
|
254
|
-
box-shadow: 0 0 0 1px
|
|
169
|
+
border-color: var(--choice-border-focus);
|
|
170
|
+
box-shadow: 0 0 0 1px var(--choice-border-focus);
|
|
255
171
|
}
|
|
256
172
|
|
|
257
173
|
&:hover + .a-label::before,
|
|
258
174
|
&.hover + .a-label::before {
|
|
259
175
|
outline: none;
|
|
260
|
-
border-color:
|
|
261
|
-
box-shadow: 0 0 0 1px
|
|
176
|
+
border-color: var(--choice-border-hover);
|
|
177
|
+
box-shadow: 0 0 0 1px var(--choice-border-hover);
|
|
262
178
|
}
|
|
263
179
|
|
|
264
180
|
&:checked + .a-label::before {
|
|
265
|
-
background-color:
|
|
266
|
-
box-shadow: inset 0 0 0 2px
|
|
181
|
+
background-color: var(--choice-bg-selected);
|
|
182
|
+
box-shadow: inset 0 0 0 2px var(--white); // The radio button ring.
|
|
267
183
|
}
|
|
268
184
|
|
|
269
185
|
&:focus:checked + .a-label::before,
|
|
270
186
|
&.focus:checked + .a-label::before {
|
|
271
|
-
|
|
187
|
+
background-color: var(--choice-bg-selected-focus);
|
|
188
|
+
border-color: var(--choice-border-focus);
|
|
272
189
|
box-shadow:
|
|
273
|
-
0 0 0 1px
|
|
274
|
-
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.
|
|
275
192
|
}
|
|
276
193
|
|
|
277
194
|
&:hover:checked + .a-label::before,
|
|
278
195
|
&.hover:checked + .a-label::before {
|
|
279
|
-
border-color:
|
|
196
|
+
border-color: var(--choice-border-hover);
|
|
280
197
|
box-shadow:
|
|
281
|
-
0 0 0 1px
|
|
282
|
-
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.
|
|
283
200
|
}
|
|
284
201
|
|
|
285
202
|
&:checked:disabled + .a-label::before,
|
|
286
203
|
&:hover:checked:disabled + .a-label::before,
|
|
287
204
|
&.hover:checked:disabled + .a-label::before {
|
|
288
|
-
background-color:
|
|
289
|
-
box-shadow: inset 0 0 0 2px
|
|
290
|
-
border-color:
|
|
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);
|
|
291
208
|
}
|
|
292
209
|
}
|
|
293
210
|
}
|
|
@@ -319,14 +236,13 @@
|
|
|
319
236
|
&:focus + .a-label,
|
|
320
237
|
&.focus + .a-label,
|
|
321
238
|
&:checked + .a-label {
|
|
322
|
-
// The outline-offset property is not supported in IE.
|
|
323
239
|
outline-offset: 1px;
|
|
324
240
|
}
|
|
325
241
|
|
|
326
242
|
&:disabled + .a-label,
|
|
327
243
|
&:checked:disabled + .a-label,
|
|
328
244
|
&:hover:disabled + .a-label {
|
|
329
|
-
color:
|
|
245
|
+
color: var(--choice-label-disabled);
|
|
330
246
|
box-shadow: none;
|
|
331
247
|
background-color: $form-field-input-lg-target-bg-disabled;
|
|
332
248
|
}
|
|
@@ -334,7 +250,7 @@
|
|
|
334
250
|
&:checked:disabled + .a-label {
|
|
335
251
|
&,
|
|
336
252
|
&::before {
|
|
337
|
-
border: 1px solid
|
|
253
|
+
border: 1px solid var(--form-field-border-disabled);
|
|
338
254
|
}
|
|
339
255
|
}
|
|
340
256
|
}
|
|
@@ -1,138 +1,74 @@
|
|
|
1
1
|
@use 'sass:math';
|
|
2
2
|
@use '@cfpb/cfpb-design-system/src/abstracts' as *;
|
|
3
3
|
|
|
4
|
-
// Border and Outline Status styling.
|
|
5
|
-
@mixin u-border-outline-error {
|
|
6
|
-
border-color: $input-border-error;
|
|
7
|
-
outline: 1px solid $input-border-error;
|
|
8
|
-
&:hover,
|
|
9
|
-
&.hover {
|
|
10
|
-
border-color: $input-border-error-hover;
|
|
11
|
-
outline: 1px solid $input-border-error-hover;
|
|
12
|
-
outline-offset: 0;
|
|
13
|
-
}
|
|
14
|
-
&:focus,
|
|
15
|
-
&.focus {
|
|
16
|
-
border-color: $input-border-error;
|
|
17
|
-
box-shadow: 0 0 0 1px $input-border-error;
|
|
18
|
-
outline: 1px dotted $input-border-error;
|
|
19
|
-
|
|
20
|
-
// Both hover and focus simultaenously
|
|
21
|
-
&:hover,
|
|
22
|
-
&.hover {
|
|
23
|
-
border-color: $input-border-error;
|
|
24
|
-
box-shadow: 0 0 0 1px $input-border-error;
|
|
25
|
-
outline: 1px dotted $input-border-error;
|
|
26
|
-
outline-offset: 2px;
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
@mixin u-border-outline-warning {
|
|
32
|
-
border-color: $input-border-warning;
|
|
33
|
-
outline: 1px solid $input-border-warning;
|
|
34
|
-
&:hover,
|
|
35
|
-
&.hover {
|
|
36
|
-
border-color: $input-border-warning-hover;
|
|
37
|
-
outline: 1px solid $input-border-warning-hover;
|
|
38
|
-
outline-offset: 0;
|
|
39
|
-
}
|
|
40
|
-
&:focus,
|
|
41
|
-
&.focus {
|
|
42
|
-
border-color: $input-border-warning;
|
|
43
|
-
box-shadow: 0 0 0 1px $input-border-warning;
|
|
44
|
-
outline: 1px dotted $input-border-warning;
|
|
45
|
-
|
|
46
|
-
// Both hover and focus simultaenously
|
|
47
|
-
&:hover,
|
|
48
|
-
&.hover {
|
|
49
|
-
border-color: $input-border-warning;
|
|
50
|
-
box-shadow: 0 0 0 1px $input-border-warning;
|
|
51
|
-
outline: 1px dotted $input-border-warning;
|
|
52
|
-
outline-offset: 2px;
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
@mixin u-border-outline-success {
|
|
58
|
-
border-color: $input-border-success;
|
|
59
|
-
outline: 1px solid $input-border-success;
|
|
60
|
-
&:hover,
|
|
61
|
-
&.hover {
|
|
62
|
-
border-color: $input-border-success-hover;
|
|
63
|
-
outline: 1px solid $input-border-success-hover;
|
|
64
|
-
outline-offset: 0;
|
|
65
|
-
}
|
|
66
|
-
&:focus,
|
|
67
|
-
&.focus {
|
|
68
|
-
border-color: $input-border-success;
|
|
69
|
-
box-shadow: 0 0 0 1px $input-border-success;
|
|
70
|
-
outline: 1px dotted $input-border-success;
|
|
71
|
-
|
|
72
|
-
// Both hover and focus simultaenously
|
|
73
|
-
&:hover,
|
|
74
|
-
&.hover {
|
|
75
|
-
border-color: $input-border-success;
|
|
76
|
-
box-shadow: 0 0 0 1px $input-border-success;
|
|
77
|
-
outline: 1px dotted $input-border-success;
|
|
78
|
-
outline-offset: 2px;
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
|
|
83
4
|
.a-text-input {
|
|
5
|
+
// Theme variables.
|
|
6
|
+
--input-text: var(--input-text-default);
|
|
7
|
+
--input-text-disabled: var(--input-text-disabled-default);
|
|
8
|
+
--input-text-placeholder: var(--input-text-placeholder-default);
|
|
9
|
+
--input-border: var(--input-border-default);
|
|
10
|
+
--input-border-hover: var(--input-border-hover-default);
|
|
11
|
+
--input-border-focus: var(--input-border-focus-default);
|
|
12
|
+
--input-bg: var(--input-bg-default);
|
|
13
|
+
--input-bg-disabled: var(--input-bg-disabled-default);
|
|
14
|
+
|
|
84
15
|
// Reset the browser's default styling.
|
|
85
16
|
appearance: none;
|
|
86
17
|
display: inline-block;
|
|
87
18
|
padding: math.div(7px, $base-font-size-px) + em;
|
|
88
|
-
border: 1px solid
|
|
89
|
-
|
|
90
|
-
|
|
19
|
+
border: 1px solid var(--input-border);
|
|
20
|
+
outline: 0 solid var(--input-border);
|
|
21
|
+
background: var(--input-bg);
|
|
22
|
+
color: var(--input-text);
|
|
91
23
|
box-sizing: border-box;
|
|
92
24
|
|
|
93
25
|
&:hover,
|
|
94
26
|
&.hover {
|
|
95
|
-
border-color:
|
|
96
|
-
outline: 1px solid
|
|
27
|
+
border-color: var(--input-border-hover);
|
|
28
|
+
outline: 1px solid var(--input-border-hover);
|
|
97
29
|
}
|
|
98
30
|
|
|
99
31
|
&:focus,
|
|
100
32
|
&.focus {
|
|
101
|
-
border-color:
|
|
102
|
-
box-shadow: 0 0 0 1px
|
|
103
|
-
outline: 1px dotted
|
|
104
|
-
|
|
105
|
-
// The outline-offset property is not supported everywhere (e.g. IE)
|
|
106
|
-
// but it adds a nice touch in browsers where it is.
|
|
33
|
+
border-color: var(--input-border-focus);
|
|
34
|
+
box-shadow: 0 0 0 1px var(--input-border-focus);
|
|
35
|
+
outline: 1px dotted var(--input-border-focus);
|
|
107
36
|
outline-offset: 2px;
|
|
108
37
|
}
|
|
109
38
|
|
|
110
39
|
&:disabled {
|
|
40
|
+
--input-border: var(--input-border-disabled);
|
|
111
41
|
&,
|
|
112
42
|
&:hover,
|
|
113
43
|
&.hover,
|
|
114
44
|
&:focus,
|
|
115
45
|
&.focus {
|
|
116
|
-
color:
|
|
117
|
-
background-color:
|
|
46
|
+
color: var(--input-text-disabled);
|
|
47
|
+
background-color: var(--input-bg-disabled);
|
|
118
48
|
cursor: not-allowed;
|
|
119
49
|
|
|
120
50
|
// Cancel the hover and focus states.
|
|
121
|
-
border-color:
|
|
51
|
+
border-color: var(--input-border);
|
|
122
52
|
outline: none;
|
|
123
53
|
}
|
|
124
54
|
}
|
|
125
55
|
|
|
56
|
+
&--error,
|
|
57
|
+
&--warning,
|
|
58
|
+
&--success {
|
|
59
|
+
outline-width: 1px;
|
|
60
|
+
}
|
|
61
|
+
|
|
126
62
|
&--error {
|
|
127
|
-
|
|
63
|
+
--input-border: var(--input-border-error);
|
|
128
64
|
}
|
|
129
65
|
|
|
130
66
|
&--warning {
|
|
131
|
-
|
|
67
|
+
--input-border: var(--input-border-warning);
|
|
132
68
|
}
|
|
133
69
|
|
|
134
70
|
&--success {
|
|
135
|
-
|
|
71
|
+
--input-border: var(--input-border-success);
|
|
136
72
|
}
|
|
137
73
|
}
|
|
138
74
|
|
|
@@ -144,10 +80,10 @@
|
|
|
144
80
|
|
|
145
81
|
// Change place holder text to dark gray (#43484e).
|
|
146
82
|
::placeholder {
|
|
147
|
-
color:
|
|
83
|
+
color: var(--input-text-placeholder);
|
|
148
84
|
}
|
|
149
85
|
|
|
150
86
|
// Force placeholder text color change for "date" field type.
|
|
151
87
|
input[type='date']::-webkit-datetime-edit {
|
|
152
|
-
color:
|
|
88
|
+
color: var(--input-text-placeholder);
|
|
153
89
|
}
|