Skip to content

Commit 7991fa4

Browse files
committed
Keep sidebar open when clicking inside it
The "sidebar menu" is implemented via two <div>s, one acting as the button (`.sidebar-btn`), the other as the menu (`.sidebar`). The menu is shown by virtue of a `.sidebar-btn:focus + .sidebar` rule that sets the `transform` attribute to 0 (it defaults to -105.5%). The big problem with this design is that clicking inside the sidebar menu transfers focus away from the button, and the sidebar menu vanishes. Typically without following the link that the viewer clicked, as reported in git#1916. Let's let the sidebar menu be shown also when the focus is within said menu, via the `:focus-within` pseudo-class (for more details, see https://developer.mozilla.org/en-US/docs/Web/CSS/:focus-within), which is supported reasonably widely by browsers. Signed-off-by: Johannes Schindelin <[email protected]>
1 parent c6e9a2b commit 7991fa4

File tree

1 file changed

+3
-3
lines changed

1 file changed

+3
-3
lines changed

assets/sass/sidebar.scss

+3-3
Original file line numberDiff line numberDiff line change
@@ -52,9 +52,9 @@ aside.sidebar.active {
5252
border: none;
5353
left: 0;
5454
width: 1.6rem;
55-
&:focus + .sidebar {
56-
@include responsive-sidebar-ui;
57-
}
55+
}
56+
.sidebar-btn:focus + .sidebar, .sidebar:focus-within {
57+
@include responsive-sidebar-ui;
5858
}
5959
aside{
6060
&.sidebar {

0 commit comments

Comments
 (0)