Skip to content

Commit 02f3823

Browse files
authored
Merge pull request #2175 from qaqland/sidebar-pure-css
Sidebar but Pure CSS, fix #859
2 parents 56c225b + 36327ef commit 02f3823

File tree

3 files changed

+19
-8
lines changed

3 files changed

+19
-8
lines changed

src/theme/css/chrome.css

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ a > .hljs {
9393
display: flex;
9494
margin: 0 5px;
9595
}
96-
.no-js .left-buttons {
96+
.no-js .left-buttons button {
9797
display: none;
9898
}
9999

@@ -187,9 +187,10 @@ a > .hljs {
187187
.nav-wrapper { display: block; }
188188
}
189189

190+
/* sidebar-visible */
190191
@media only screen and (max-width: 1380px) {
191-
.sidebar-visible .nav-wide-wrapper { display: none; }
192-
.sidebar-visible .nav-wrapper { display: block; }
192+
#sidebar-toggle-anchor:checked ~ .page-wrapper .nav-wide-wrapper { display: none; }
193+
#sidebar-toggle-anchor:checked ~ .page-wrapper .nav-wrapper { display: block; }
193194
}
194195

195196
/* Inline code */
@@ -375,6 +376,7 @@ ul#searchresults span.teaser em {
375376
-ms-user-select: none;
376377
user-select: none;
377378
}
379+
.no-js .sidebar,
378380
.js:not(.sidebar-resizing) .sidebar {
379381
transition: transform 0.3s; /* Animation: slide away */
380382
}
@@ -402,8 +404,10 @@ ul#searchresults span.teaser em {
402404
cursor: col-resize;
403405
width: 5px;
404406
}
405-
.sidebar-hidden .sidebar {
407+
/* sidebar-hidden */
408+
#sidebar-toggle-anchor:not(:checked) ~ .sidebar {
406409
transform: translateX(calc(0px - var(--sidebar-width)));
410+
z-index: -1;
407411
}
408412
.sidebar::-webkit-scrollbar {
409413
background: var(--sidebar-bg);
@@ -412,11 +416,12 @@ ul#searchresults span.teaser em {
412416
background: var(--scrollbar);
413417
}
414418

415-
.sidebar-visible .page-wrapper {
419+
/* sidebar-visible */
420+
#sidebar-toggle-anchor:checked ~ .page-wrapper {
416421
transform: translateX(var(--sidebar-width));
417422
}
418423
@media only screen and (min-width: 620px) {
419-
.sidebar-visible .page-wrapper {
424+
#sidebar-toggle-anchor:checked ~ .page-wrapper {
420425
transform: none;
421426
margin-left: var(--sidebar-width);
422427
}

src/theme/css/general.css

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,9 @@ h6:target::before {
8484
}
8585
.page-wrapper {
8686
box-sizing: border-box;
87+
background-color: var(--bg);
8788
}
89+
.no-js .page-wrapper,
8890
.js:not(.sidebar-resizing) .page-wrapper {
8991
transition: margin-left 0.3s ease, transform 0.3s ease; /* Animation: slide away */
9092
}

src/theme/index.hbs

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -89,16 +89,20 @@
8989
html.classList.add('js');
9090
</script>
9191

92+
<input type="checkbox" id="sidebar-toggle-anchor" class="hidden">
93+
9294
<!-- Hide / unhide sidebar before it is displayed -->
9395
<script>
9496
var html = document.querySelector('html');
9597
var sidebar = null;
98+
var sidebar_toggle = document.getElementById("sidebar-toggle-anchor");
9699
if (document.body.clientWidth >= 1080) {
97100
try { sidebar = localStorage.getItem('mdbook-sidebar'); } catch(e) { }
98101
sidebar = sidebar || 'visible';
99102
} else {
100103
sidebar = 'hidden';
101104
}
105+
sidebar_toggle.checked = sidebar === 'visible';
102106
html.classList.remove('sidebar-visible');
103107
html.classList.add("sidebar-" + sidebar);
104108
</script>
@@ -139,9 +143,9 @@
139143
<div id="menu-bar-hover-placeholder"></div>
140144
<div id="menu-bar" class="menu-bar sticky">
141145
<div class="left-buttons">
142-
<button id="sidebar-toggle" class="icon-button" type="button" title="Toggle Table of Contents" aria-label="Toggle Table of Contents" aria-controls="sidebar">
146+
<label id="sidebar-toggle" class="icon-button" for="sidebar-toggle-anchor" title="Toggle Table of Contents" aria-label="Toggle Table of Contents" aria-controls="sidebar">
143147
<i class="fa fa-bars"></i>
144-
</button>
148+
</label>
145149
<button id="theme-toggle" class="icon-button" type="button" title="Change theme" aria-label="Change theme" aria-haspopup="true" aria-expanded="false" aria-controls="theme-list">
146150
<i class="fa fa-paint-brush"></i>
147151
</button>

0 commit comments

Comments
 (0)