Date: Fri, 22 May 2026 12:00:11 +0000 From: Vladlen Popolitov <vladlen@FreeBSD.org> To: doc-committers@FreeBSD.org, dev-commits-doc-all@FreeBSD.org Subject: git: a23bfd024c - main - website: fix light-dark themes switch Message-ID: <6a10454b.31e3d.28fc3d87@gitrepo.freebsd.org>
index | next in thread | raw e-mail
The branch main has been updated by vladlen: URL: https://cgit.FreeBSD.org/doc/commit/?id=a23bfd024cc0d33c3a89f7b152c7ca01ed895906 commit a23bfd024cc0d33c3a89f7b152c7ca01ed895906 Author: Vladlen Popolitov <vladlen@FreeBSD.org> AuthorDate: 2026-05-22 12:00:02 +0000 Commit: Vladlen Popolitov <vladlen@FreeBSD.org> CommitDate: 2026-05-22 12:00:02 +0000 website: fix light-dark themes switch Reviewed by: carlavilla, ziaee Approved by: carlavilla Differential Revision: https://reviews.freebsd.org/D57057 PR: 295341 --- website/themes/beastie/assets/js/theme-chooser.js | 47 ++++++++++++++++++++++ .../beastie/layouts/_partials/site-head.html | 3 ++ 2 files changed, 50 insertions(+) diff --git a/website/themes/beastie/assets/js/theme-chooser.js b/website/themes/beastie/assets/js/theme-chooser.js new file mode 100644 index 0000000000..0bdd3dc23a --- /dev/null +++ b/website/themes/beastie/assets/js/theme-chooser.js @@ -0,0 +1,47 @@ +/* +BSD 2-Clause License + +Copyright (c) 1994-2026, The FreeBSD Documentation Project +Copyright (c) 2026, Vladlen Popolitov +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +// FreeBSD light/dark theme persists +;(function() { + const toggle = document.getElementById('theme-switch'); + if (!toggle) return; + + // restore saved state + const saved = localStorage.getItem('theme-preference'); + if (saved === 'dark') { + toggle.checked = true; + } else if (saved === 'light') { + toggle.checked = false; + } + // if state was no saved - use current state (CSS uses prefers-color-scheme) + // save state, when theme switched to or from dark + toggle.addEventListener('change', function() { + localStorage.setItem('theme-preference', this.checked ? 'dark' : 'light'); + }); +})(); diff --git a/website/themes/beastie/layouts/_partials/site-head.html b/website/themes/beastie/layouts/_partials/site-head.html index ceafa1006f..5aa6a86463 100644 --- a/website/themes/beastie/layouts/_partials/site-head.html +++ b/website/themes/beastie/layouts/_partials/site-head.html @@ -44,6 +44,9 @@ </script> <!-- END SEO --> + {{- $themeChooser := resources.Get "js/theme-chooser.js" | resources.Minify }} + <script defer src="{{ $themeChooser.RelPermalink }}"></script> + {{- if hugo.IsServer -}} {{- printf "<!-- Dev mode: Not loading plausible script to avoid bloating stats -->" | safeHTML }} {{- else -}}home | help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?6a10454b.31e3d.28fc3d87>
