@@ -65,5 +65,65 @@ <h2 id="modalName"></h2>
6565 </ div >
6666
6767 < script src ="certManager.js "> </ script >
68+ < script >
69+ // sidebar-toggle (minimal) — add to certManager.js end
70+ ( function ( ) {
71+ const body = document . body ;
72+ const hamburger = document . querySelector ( '.hamburger' ) ;
73+ if ( ! hamburger ) return ;
74+ // create overlay node if missing
75+ let overlay = document . querySelector ( '.sidebar-overlay' ) ;
76+ if ( ! overlay ) {
77+ overlay = document . createElement ( 'div' ) ;
78+ overlay . className = 'sidebar-overlay' ;
79+ document . body . appendChild ( overlay ) ;
80+ }
81+
82+ function openSidebar ( ) {
83+ body . classList . add ( 'sidebar-open' ) ;
84+ hamburger . setAttribute ( 'aria-expanded' , 'true' ) ;
85+ // focus first item for keyboard users
86+ const first = document . querySelector ( '.sidebar .sidebar-item' ) ;
87+ if ( first ) first . focus ( ) ;
88+ }
89+ function closeSidebar ( ) {
90+ body . classList . remove ( 'sidebar-open' ) ;
91+ hamburger . setAttribute ( 'aria-expanded' , 'false' ) ;
92+ hamburger . focus ( ) ;
93+ }
94+ function toggleSidebar ( ) {
95+ if ( body . classList . contains ( 'sidebar-open' ) ) closeSidebar ( ) ;
96+ else openSidebar ( ) ;
97+ }
98+
99+ hamburger . addEventListener ( 'click' , ( e ) => {
100+ e . stopPropagation ( ) ;
101+ toggleSidebar ( ) ;
102+ } ) ;
103+
104+ overlay . addEventListener ( 'click' , closeSidebar ) ;
105+ document . addEventListener ( 'keydown' , ( e ) => {
106+ if ( e . key === 'Escape' && body . classList . contains ( 'sidebar-open' ) ) closeSidebar ( ) ;
107+ } ) ;
108+
109+ // auto-close on menu item click for small screens
110+ document . addEventListener ( 'click' , ( e ) => {
111+ const item = e . target . closest ( '.sidebar-item' ) ;
112+ if ( ! item ) return ;
113+ if ( window . innerWidth <= 860 ) {
114+ setTimeout ( closeSidebar , 160 ) ;
115+ }
116+ } ) ;
117+
118+ // keep state sane when resizing/rotating
119+ window . addEventListener ( 'resize' , ( ) => {
120+ if ( window . innerWidth > 860 ) {
121+ body . classList . remove ( 'sidebar-open' ) ;
122+ hamburger . setAttribute ( 'aria-expanded' , 'false' ) ;
123+ }
124+ } ) ;
125+ } ) ( ) ;
126+
127+ </ script >
68128 </ body >
69129</ html >
0 commit comments