|
9 | 9 | <meta name="MobileOptimized" content="320"/> |
10 | 10 | <meta name="HandheldFriendly" content="true"/> |
11 | 11 | <meta name="viewport min-width=320px" content="min-width=320, initial-scale=1.0"/> |
12 | | - |
13 | | - <script> |
14 | | - (() => { |
15 | | - 'use strict' |
16 | | - |
17 | | - const getStoredTheme = () => localStorage.getItem('theme') |
18 | | - const setStoredTheme = theme => localStorage.setItem('theme', theme) |
19 | | - |
20 | | - const getPreferredTheme = () => { |
21 | | - const storedTheme = getStoredTheme() |
22 | | - if (storedTheme) { |
23 | | - return storedTheme |
24 | | - } |
25 | | - |
26 | | - return window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light' |
27 | | - } |
28 | | - |
29 | | - const setTheme = theme => { |
30 | | - if (theme === 'auto') { |
31 | | - document.documentElement.setAttribute('data-theme', (window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light')) |
32 | | - } else { |
33 | | - document.documentElement.setAttribute('data-theme', theme) |
34 | | - } |
35 | | - } |
36 | | - |
37 | | - setTheme(getPreferredTheme()) |
38 | | - |
39 | | - const showActiveTheme = (theme, focus = false) => { |
40 | | - const themeSwitcher = document.querySelector('#bd-theme') |
41 | | - |
42 | | - if (!themeSwitcher) { |
43 | | - return |
44 | | - } |
45 | | - |
46 | | - const themeSwitcherText = document.querySelector('#bd-theme-text') |
47 | | - const activeThemeIcon = document.querySelector('.theme-icon-active use') |
48 | | - const btnToActive = document.querySelector(`[data-theme-value="${theme}"]`) |
49 | | - const svgOfActiveBtn = btnToActive.querySelector('svg use').getAttribute('href') |
50 | | - |
51 | | - document.querySelectorAll('[data-theme-value]').forEach(element => { |
52 | | - element.classList.remove('active') |
53 | | - element.setAttribute('aria-pressed', 'false') |
54 | | - }) |
55 | | - |
56 | | - btnToActive.classList.add('active') |
57 | | - btnToActive.setAttribute('aria-pressed', 'true') |
58 | | - activeThemeIcon.setAttribute('href', svgOfActiveBtn) |
59 | | - const themeSwitcherLabel = `${themeSwitcherText.textContent} (${btnToActive.dataset.bsThemeValue})` |
60 | | - themeSwitcher.setAttribute('aria-label', themeSwitcherLabel) |
61 | | - |
62 | | - if (focus) { |
63 | | - themeSwitcher.focus() |
64 | | - } |
65 | | - } |
66 | | - |
67 | | - window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', () => { |
68 | | - const storedTheme = getStoredTheme() |
69 | | - if (storedTheme !== 'light' && storedTheme !== 'dark') { |
70 | | - setTheme(getPreferredTheme()) |
71 | | - } |
72 | | - }) |
73 | | - |
74 | | - window.addEventListener('DOMContentLoaded', () => { |
75 | | - showActiveTheme(getPreferredTheme()) |
76 | | - |
77 | | - document.querySelectorAll('[data-theme-value]') |
78 | | - .forEach(toggle => { |
79 | | - toggle.addEventListener('click', () => { |
80 | | - const theme = toggle.getAttribute('data-theme-value') |
81 | | - setStoredTheme(theme) |
82 | | - setTheme(theme) |
83 | | - showActiveTheme(theme, true) |
84 | | - }) |
85 | | - }) |
86 | | - }) |
87 | | - })() |
88 | | - </script> |
89 | | - <link rel="stylesheet" |
90 | | - href="https://assets.phalcon.io/phalcon/test/dark.css?v=111"> |
91 | | - |
92 | 12 | <meta name="generator" content="Jekyll"> |
93 | 13 | <meta name="application-name" content="{{ site.app.name }}"> |
94 | 14 | <meta name="description" content="{{ site.app.description }}"> |
|
137 | 57 | gtag('config', '{{ site.app.analytics }}'); |
138 | 58 | </script> |
139 | 59 | <!-- End Google Analytics --> |
| 60 | + <script>document.documentElement.classList.add(localStorage.getItem('mode') === 'auto' ? (matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light') : localStorage.getItem('mode'))</script> |
| 61 | + <script type="module" src="/assets/js/theme.js"></script> |
| 62 | + <link rel="stylesheet" |
| 63 | + href="/assets/css/dark.css"> |
| 64 | + |
140 | 65 | <link rel="stylesheet" |
141 | | - href="https://assets.phalcon.io/phalcon/test/core.css?v=111"> |
| 66 | + href="https://assets.phalcon.io/phalcon/test/core.css"> |
142 | 67 | <link rel="stylesheet" |
143 | | - href="https://assets.phalcon.io/phalcon/test/custom.css?v=111"> |
| 68 | + href="https://assets.phalcon.io/phalcon/test/custom.css"> |
144 | 69 |
|
145 | 70 | <title> |
146 | 71 | {{ site.data.languages[page.language][page.title] }} - {{ site.app.title }} |
|
0 commit comments