File tree Expand file tree Collapse file tree 2 files changed +39
-6
lines changed Expand file tree Collapse file tree 2 files changed +39
-6
lines changed Original file line number Diff line number Diff line change 6868}
6969
7070# observablehq-sidebar {
71- display : none;
7271 position : fixed;
7372 background : var (--theme-background-alt );
7473 color : var (--theme-foreground );
7877 z-index : 1 ;
7978 top : 0 ;
8079 bottom : 0 ;
81- left : 0 ;
80+ left : calc ( -240 px - 2 rem ) ;
8281 padding : 1rem ;
8382}
8483
@@ -92,6 +91,26 @@ main {
9291 margin : 0 ;
9392}
9493
94+ # observablehq-sidebar-toggle {
95+ position : fixed;
96+ top : 0 ;
97+ bottom : 0 ;
98+ left : 0 ;
99+ appearance : none;
100+ display : flex;
101+ align-items : center;
102+ margin : 0 ;
103+ cursor : pointer;
104+ z-index : 2 ;
105+ }
106+
107+ # observablehq-sidebar-toggle ::before {
108+ content : "≡" ;
109+ padding : 2px ;
110+ color : var (--theme-foreground-faint );
111+ font-size : 20px ;
112+ }
113+
95114.observablehq-link a {
96115 display : block;
97116 padding : 0.5rem 1rem ;
@@ -123,11 +142,23 @@ main {
123142 color : var (--theme-foreground-focus );
124143}
125144
145+ # observablehq-sidebar-toggle : checked + # observablehq-sidebar {
146+ left : 0 ;
147+ box-shadow : 0 0 8px 8px rgba (0 , 0 , 0 , 0.5 );
148+ }
149+
150+ # observablehq-sidebar {
151+ transition : left 150ms ease;
152+ }
153+
126154@media (min-width : calc (640px + 4rem + 0.5rem + 240px + 2rem )) {
127155 # observablehq-sidebar {
128- display : initial;
156+ transition : none;
157+ }
158+ # observablehq-sidebar-toggle : checked + # observablehq-sidebar {
159+ box-shadow : none;
129160 }
130- # observablehq-center . observablehq--sidebar {
161+ # observablehq-sidebar-toggle : checked ~ # observablehq-center {
131162 padding-left : calc (240px + 3rem );
132163 }
133164 pre {
Original file line number Diff line number Diff line change @@ -85,7 +85,8 @@ ${JSON.stringify(parseResult.data)}
8585 }
8686${
8787 showSidebar
88- ? `<nav id="observablehq-sidebar">
88+ ? `<input id="observablehq-sidebar-toggle" type="checkbox">
89+ <nav id="observablehq-sidebar">
8990 <ol>${ pages
9091 ?. map (
9192 ( p ) => `
9697 . join ( "" ) }
9798 </ol>
9899</nav>
100+ <script>document.querySelector("#observablehq-sidebar-toggle").checked = matchMedia("(min-width: calc(640px + 4rem + 0.5rem + 240px + 2rem))").matches;</script>
99101`
100102 : ""
101- } <div id="observablehq-center"${ showSidebar ? ` class="observablehq--sidebar"` : "" } >
103+ } <div id="observablehq-center">
102104<main class="observablehq">
103105${ parseResult . html } </main>
104106</div>
You can’t perform that action at this time.
0 commit comments