Skip to content

Commit

Permalink
feat: use CSS scrollbar-gutter for drawer. close #2622, close #2483, c…
Browse files Browse the repository at this point in the history
…lose #2782, close #2142
  • Loading branch information
saadeghi committed Feb 12, 2024
1 parent a795f48 commit 863afaf
Show file tree
Hide file tree
Showing 3 changed files with 25 additions and 12 deletions.
1 change: 0 additions & 1 deletion src/components/styled/drawer.css
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
.drawer {
width: 100%;
&-side {
@apply overflow-x-hidden;
& > .drawer-overlay {
@apply cursor-pointer bg-transparent transition-colors duration-200 ease-out;
}
Expand Down
4 changes: 2 additions & 2 deletions src/components/unstyled/drawer.css
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
@apply col-start-2 row-start-1 min-w-0;
}
&-side {
@apply pointer-events-none fixed start-0 top-0 col-start-1 row-start-1 grid w-full grid-cols-1 grid-rows-1 items-start justify-items-start overflow-y-auto overscroll-contain;
@apply pointer-events-none fixed start-0 top-0 col-start-1 row-start-1 grid w-full grid-cols-1 grid-rows-1 items-start justify-items-start overflow-x-hidden overflow-y-hidden overscroll-contain;
height: 100vh;
height: 100dvh;
& > .drawer-overlay {
Expand All @@ -26,7 +26,7 @@
@apply fixed h-0 w-0 appearance-none opacity-0;
&:checked {
& ~ .drawer-side {
@apply pointer-events-auto visible;
@apply pointer-events-auto visible overflow-y-auto;
& > *:not(.drawer-overlay) {
transform: translateX(0%);
}
Expand Down
32 changes: 23 additions & 9 deletions src/utilities/unstyled/drawer.css
Original file line number Diff line number Diff line change
@@ -1,15 +1,29 @@
.drawer-open > .drawer-toggle {
@apply hidden;
& ~ .drawer-side {
@apply pointer-events-auto visible sticky block w-auto overscroll-auto;
& > *:not(.drawer-overlay) {
transform: translateX(0%);
[dir="rtl"] & {
.drawer-open {
& > .drawer-toggle {
@apply hidden;
& ~ .drawer-side {
@apply pointer-events-auto visible sticky block w-auto overscroll-auto;
& > *:not(.drawer-overlay) {
transform: translateX(0%);
[dir="rtl"] & {
transform: translateX(0%);
}
}
}
&:checked ~ .drawer-side {
@apply pointer-events-auto visible;
}
}
&:checked ~ .drawer-side {
@apply pointer-events-auto visible;
& > .drawer-side {
@apply overflow-y-auto;
}
}
/* these two should have the same specificity */
html:has(.drawer-toggle:checked) {
@apply overflow-y-hidden;
scrollbar-gutter: stable;

This comment has been minimized.

Copy link
@Vladastos

Vladastos Feb 22, 2024

Probably the cause of #2859

}
html:has(.drawer-open.drawer-open) {
@apply overflow-y-auto;
scrollbar-gutter: auto;
}

0 comments on commit 863afaf

Please sign in to comment.