Skip to content

Commit f55cf0e

Browse files
committed
fix: Collapse gets closed when interactive input inside is focused. closes: #4128
1 parent 4ef2116 commit f55cf0e

File tree

1 file changed

+11
-6
lines changed

1 file changed

+11
-6
lines changed

packages/daisyui/src/components/collapse.css

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -21,12 +21,12 @@
2121
opacity: 0;
2222
}
2323

24-
&:is([open], :focus:not(.collapse-close)),
24+
&:is([open], :focus:not(.collapse-close), :focus-within:not(.collapse-close)),
2525
&:not(.collapse-close):has(> input:is([type="checkbox"], [type="radio"]):checked) {
2626
grid-template-rows: max-content 1fr;
2727
}
2828

29-
&:is([open], :focus:not(.collapse-close)) > .collapse-content,
29+
&:is([open], :focus:not(.collapse-close), :focus-within:not(.collapse-close)) > .collapse-content,
3030
&:not(.collapse-close)
3131
> :where(input:is([type="checkbox"], [type="radio"]):checked ~ .collapse-content) {
3232
visibility: visible;
@@ -48,11 +48,15 @@
4848
}
4949
}
5050

51-
&:focus:not(.collapse-close, .collapse[open]) > .collapse-title {
52-
cursor: unset;
51+
&:focus:not(.collapse-close, .collapse[open]),
52+
&:focus-within:not(.collapse-close, .collapse[open]) {
53+
> .collapse-title {
54+
cursor: unset;
55+
}
5356
}
5457

55-
&:is([open], :focus:not(.collapse-close)) > :where(.collapse-content),
58+
&:is([open], :focus:not(.collapse-close), :focus-within:not(.collapse-close))
59+
> :where(.collapse-content),
5660
&:not(.collapse-close)
5761
> :where(input:is([type="checkbox"], [type="radio"]):checked ~ .collapse-content) {
5862
padding-bottom: 1rem;
@@ -83,7 +87,8 @@
8387
}
8488
}
8589

86-
&.collapse-arrow:focus:not(.collapse-close) {
90+
&.collapse-arrow:focus:not(.collapse-close),
91+
&.collapse-arrow:focus-within:not(.collapse-close) {
8792
> .collapse-title:after {
8893
transform: translateY(-50%) rotate(225deg);
8994
}

0 commit comments

Comments
 (0)