@@ -33,20 +33,6 @@ const categoryOrder = ["syntax", "data_structures", "classes", "advanced"];
3333 <span class =" arrow-right" ><ChevronRight size ={ 16 } /></span >
3434 </button >
3535
36- <script is:inline >
37- // Run this immediately to prevent layout shift/flash
38- (function() {
39- const stored = localStorage.getItem('sidebar-collapsed');
40- const isMobile = window.innerWidth < 900;
41- const isCollapsed = isMobile || stored === 'true';
42- if (isCollapsed) {
43- const container = document.querySelector('.app-container');
44- if (container) {
45- container.classList.add('sidebar-collapsed');
46- }
47- }
48- })();
49- </script >
5036
5137 <div class =" sidebar-header" >
5238 <div class =" header-top" >
@@ -125,7 +111,7 @@ const categoryOrder = ["syntax", "data_structures", "classes", "advanced"];
125111 position: relative;
126112 }
127113
128- :global(.app-container .sidebar-transitioning) .sidebar {
114+ :global(html .sidebar-transitioning) .sidebar {
129115 transition: margin-left 0.3s cubic-bezier(0.4, 0, 0.2, 1);
130116 }
131117
@@ -151,7 +137,7 @@ const categoryOrder = ["syntax", "data_structures", "classes", "advanced"];
151137 font-weight: bold;
152138 }
153139
154- :global(.app-container .sidebar-transitioning) .sidebar-toggle-btn {
140+ :global(html .sidebar-transitioning) .sidebar-toggle-btn {
155141 transition: right 0.3s cubic-bezier(0.4, 0, 0.2, 1), background-color var(--transition-speed), transform var(--transition-speed);
156142 }
157143
@@ -165,11 +151,11 @@ const categoryOrder = ["syntax", "data_structures", "classes", "advanced"];
165151 display: none;
166152 }
167153
168- :global(.app-container .sidebar-collapsed) .arrow-left {
154+ :global(html .sidebar-collapsed) .arrow-left {
169155 display: none;
170156 }
171157
172- :global(.app-container .sidebar-collapsed) .arrow-right {
158+ :global(html .sidebar-collapsed) .arrow-right {
173159 display: flex;
174160 }
175161
@@ -178,11 +164,11 @@ const categoryOrder = ["syntax", "data_structures", "classes", "advanced"];
178164 transform: scale(1.05);
179165 }
180166
181- :global(.app-container .sidebar-collapsed) .sidebar {
167+ :global(html .sidebar-collapsed) .sidebar {
182168 margin-left: calc(-1 * var(--sidebar-width));
183169 }
184170
185- :global(.app-container .sidebar-collapsed) .sidebar-toggle-btn {
171+ :global(html .sidebar-collapsed) .sidebar-toggle-btn {
186172 right: -45px;
187173 }
188174
@@ -371,7 +357,7 @@ const categoryOrder = ["syntax", "data_structures", "classes", "advanced"];
371357
372358
373359
374- :global(.app-container :not(.sidebar-collapsed)) .sidebar-backdrop {
360+ :global(html :not(.sidebar-collapsed)) .sidebar-backdrop {
375361 display: block;
376362 position: fixed;
377363 top: 0;
@@ -465,30 +451,29 @@ const categoryOrder = ["syntax", "data_structures", "classes", "advanced"];
465451 // Handle sidebar toggle collapsing/expanding
466452 function setupSidebarToggle() {
467453 const toggleBtn = document.getElementById('sidebar-toggle');
468- const container = document.querySelector('.app-container');
469454 const backdrop = document.getElementById('sidebar-backdrop');
470- if (!toggleBtn || !container || toggleBtn.dataset.toggleInitialized) return;
455+ if (!toggleBtn || toggleBtn.dataset.toggleInitialized) return;
471456 toggleBtn.dataset.toggleInitialized = 'true';
472457
473458 // Load initial state
474459 const stored = localStorage.getItem('sidebar-collapsed');
475460 const isMobile = window.innerWidth < 900;
476461 const isCollapsed = isMobile || stored === 'true';
477462 if (isCollapsed) {
478- container .classList.add('sidebar-collapsed');
463+ document.documentElement .classList.add('sidebar-collapsed');
479464 } else {
480- container .classList.remove('sidebar-collapsed');
465+ document.documentElement .classList.remove('sidebar-collapsed');
481466 }
482467
483468 const closeSidebar = () => {
484- container .classList.add('sidebar-transitioning');
485- container .classList.add('sidebar-collapsed');
469+ document.documentElement .classList.add('sidebar-transitioning');
470+ document.documentElement .classList.add('sidebar-collapsed');
486471 localStorage.setItem('sidebar-collapsed', 'true');
487472 };
488473
489474 toggleBtn.addEventListener('click', () => {
490- container .classList.add('sidebar-transitioning');
491- const collapsed = container .classList.toggle('sidebar-collapsed');
475+ document.documentElement .classList.add('sidebar-transitioning');
476+ const collapsed = document.documentElement .classList.toggle('sidebar-collapsed');
492477 localStorage.setItem('sidebar-collapsed', String(collapsed));
493478 });
494479
@@ -500,7 +485,7 @@ const categoryOrder = ["syntax", "data_structures", "classes", "advanced"];
500485 const sidebar = document.querySelector('.sidebar');
501486 if (sidebar) {
502487 const clearTransition = () => {
503- container .classList.remove('sidebar-transitioning');
488+ document.documentElement .classList.remove('sidebar-transitioning');
504489 };
505490 sidebar.addEventListener('transitionend', clearTransition);
506491 sidebar.addEventListener('transitioncancel', clearTransition);
@@ -514,10 +499,10 @@ const categoryOrder = ["syntax", "data_structures", "classes", "advanced"];
514499 const isMobile = currentWidth < 900;
515500
516501 if (wasDesktop && isMobile) {
517- container .classList.add('sidebar-collapsed');
502+ document.documentElement .classList.add('sidebar-collapsed');
518503 } else if (!wasDesktop && !isMobile) {
519504 // Always expand the sidebar on desktop width and save state
520- container .classList.remove('sidebar-collapsed');
505+ document.documentElement .classList.remove('sidebar-collapsed');
521506 localStorage.setItem('sidebar-collapsed', 'false');
522507 }
523508 lastWidth = currentWidth;
0 commit comments