Skip to content

Commit a02f1d1

Browse files
fix(checkbox): add invalid+checked+hover checkbox styles (#3617)
- add missing ::before pseudo to target the before element in the invalid/checked/hover state - update metadata.json - create changeset
1 parent 6448f37 commit a02f1d1

File tree

3 files changed

+8
-2
lines changed

3 files changed

+8
-2
lines changed

.changeset/blue-wasps-talk.md

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"@spectrum-css/checkbox": patch
3+
---
4+
5+
Adds a `::before` pseudo element to properly target the `.spectrum-Checkbox-input:checked + .spectrum-Checkbox-box` element. The selector update, specifically in the invalid+checked+hover state should now get the proper error background color, as opposed to the default background color.

components/checkbox/dist/metadata.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@
6666
".spectrum-Checkbox.is-invalid.is-indeterminate:hover .spectrum-Checkbox-input:checked + .spectrum-Checkbox-box:before",
6767
".spectrum-Checkbox.is-invalid.is-indeterminate:hover .spectrum-Checkbox-label",
6868
".spectrum-Checkbox.is-invalid:hover .spectrum-Checkbox-box:before",
69-
".spectrum-Checkbox.is-invalid:hover .spectrum-Checkbox-input:checked + .spectrum-Checkbox-box",
69+
".spectrum-Checkbox.is-invalid:hover .spectrum-Checkbox-input:checked + .spectrum-Checkbox-box:before",
7070
".spectrum-Checkbox.is-readOnly .spectrum-Checkbox-input",
7171
".spectrum-Checkbox.is-readOnly .spectrum-Checkbox-input:checked:disabled + .spectrum-Checkbox-box:before",
7272
".spectrum-Checkbox.is-readOnly .spectrum-Checkbox-input:checked:disabled ~ .spectrum-Checkbox-label",

components/checkbox/index.css

+2-1
Original file line numberDiff line numberDiff line change
@@ -158,7 +158,7 @@
158158
}
159159

160160
&:hover {
161-
.spectrum-Checkbox-input:checked + .spectrum-Checkbox-box,
161+
.spectrum-Checkbox-input:checked + .spectrum-Checkbox-box::before,
162162
.spectrum-Checkbox-box::before {
163163
border-color: var(--highcontrast-checkbox-color-hover, var(--mod-checkbox-invalid-color-hover, var(--spectrum-checkbox-invalid-color-hover)));
164164
}
@@ -280,6 +280,7 @@
280280
}
281281
}
282282

283+
/* TODO: Because this selector was moved to the default variant's styles, this selector block can be deleted when it is safe to make changes to selectors. */
283284
/* Invalid Hover States */
284285
&.is-invalid:hover {
285286
&.is-indeterminate .spectrum-Checkbox-box,

0 commit comments

Comments
 (0)