|
1 | 1 | <link rel="icon" href="{{ '/assets/images/streamforge-mark.svg' | relative_url }}" type="image/svg+xml"> |
| 2 | +<script> |
| 3 | + (function () { |
| 4 | + var savedTheme = null; |
| 5 | + try { |
| 6 | + savedTheme = window.localStorage.getItem("streamforge-theme"); |
| 7 | + } catch (error) { |
| 8 | + savedTheme = null; |
| 9 | + } |
| 10 | + document.documentElement.dataset.theme = |
| 11 | + savedTheme === "dark" || savedTheme === "light" ? savedTheme : "light"; |
| 12 | + })(); |
| 13 | +</script> |
2 | 14 | <link rel="stylesheet" href="{{ '/assets/css/streamforge-site.css' | relative_url }}"> |
3 | 15 | {% if page.permalink == '/404.html' %}<base href="{{ '/' | relative_url }}">{% endif %} |
4 | | -<meta name="theme-color" content="#0b1117"> |
| 16 | +<meta name="theme-color" content="#f6f9fb"> |
5 | 17 | <meta property="og:type" content="website"> |
6 | 18 | <meta property="og:title" content="{{ page.title | default: site.title | escape }}"> |
7 | 19 | <meta property="og:description" content="{{ page.description | default: site.description | escape }}"> |
|
14 | 26 | <meta name="twitter:title" content="{{ page.title | default: site.title | escape }}"> |
15 | 27 | <meta name="twitter:description" content="{{ page.description | default: site.description | escape }}"> |
16 | 28 | <meta name="twitter:image" content="{{ '/assets/images/streamforge-social-card.png' | absolute_url }}"> |
| 29 | +<script> |
| 30 | + document.addEventListener("DOMContentLoaded", function () { |
| 31 | + var themeButton = document.createElement("button"); |
| 32 | + var themeColor = document.querySelector('meta[name="theme-color"]'); |
| 33 | + |
| 34 | + themeButton.type = "button"; |
| 35 | + themeButton.className = "sf-theme-toggle"; |
| 36 | + |
| 37 | + function renderThemeButton() { |
| 38 | + var isDark = document.documentElement.dataset.theme === "dark"; |
| 39 | + themeButton.setAttribute("aria-label", isDark ? "Use light theme" : "Use dark theme"); |
| 40 | + themeButton.setAttribute("title", isDark ? "Use light theme" : "Use dark theme"); |
| 41 | + themeButton.innerHTML = |
| 42 | + '<span aria-hidden="true">' + (isDark ? "☀" : "☾") + "</span>" + |
| 43 | + "<b>" + (isDark ? "Light" : "Dark") + "</b>"; |
| 44 | + if (themeColor) { |
| 45 | + themeColor.setAttribute("content", isDark ? "#0b131a" : "#f6f9fb"); |
| 46 | + } |
| 47 | + } |
| 48 | + |
| 49 | + themeButton.addEventListener("click", function () { |
| 50 | + var nextTheme = |
| 51 | + document.documentElement.dataset.theme === "dark" ? "light" : "dark"; |
| 52 | + document.documentElement.dataset.theme = nextTheme; |
| 53 | + try { |
| 54 | + window.localStorage.setItem("streamforge-theme", nextTheme); |
| 55 | + } catch (error) { |
| 56 | + /* Theme selection remains active for the current page. */ |
| 57 | + } |
| 58 | + renderThemeButton(); |
| 59 | + }); |
| 60 | + |
| 61 | + renderThemeButton(); |
| 62 | + document.body.appendChild(themeButton); |
| 63 | + }); |
| 64 | +</script> |
0 commit comments