$(function () { // theme switcher without reloading let themeStyle = $('#theme-style'); const lightURL = themeStyle.data('light-url'); const darkURL = themeStyle.data('dark-url'); const navbar = $('.page-navbar'); const logo = $('#navbar-logo'); window.toggleDarkMode = function () { let newStyle = document.createElement('link'); newStyle.rel = 'stylesheet'; if (themeStyle.attr('href') === lightURL) { newStyle.href = darkURL; navbar.removeClass('navbar-light'); navbar.addClass('navbar-dark'); logo.attr('src', logo.data('src-dark')); document.cookie = "dark_mode=1"; } else { newStyle.href = lightURL; navbar.removeClass('navbar-dark'); navbar.addClass('navbar-light'); logo.attr('src', logo.data('src-light')); document.cookie = "dark_mode=0;expires=" + new Date().toUTCString(); } // remove old css after new css has loaded to prevent FOUC let oldThemeStyle = themeStyle; themeStyle = $(newStyle); themeStyle.on('load', () => oldThemeStyle.remove()); $(document.head).append(themeStyle); }; });