|
4 | 4 |
|
5 | 5 | <meta charset="utf-8">
|
6 | 6 | <meta name="viewport min-width=320px" content="min-width=320, initial-scale=1.0" />
|
7 |
| - <script> |
8 |
| - (() => { |
9 |
| - 'use strict' |
10 |
| - |
11 |
| - const getStoredTheme = () => localStorage.getItem('theme') |
12 |
| - const setStoredTheme = theme => localStorage.setItem('theme', theme) |
13 |
| - |
14 |
| - const getPreferredTheme = () => { |
15 |
| - const storedTheme = getStoredTheme() |
16 |
| - if (storedTheme) { |
17 |
| - return storedTheme |
18 |
| - } |
19 |
| - |
20 |
| - return window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light' |
21 |
| - } |
22 |
| - |
23 |
| - const setTheme = theme => { |
24 |
| - if (theme === 'auto') { |
25 |
| - document.documentElement.setAttribute('data-theme', (window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light')) |
26 |
| - } else { |
27 |
| - document.documentElement.setAttribute('data-theme', theme) |
28 |
| - } |
29 |
| - } |
30 |
| - |
31 |
| - setTheme(getPreferredTheme()) |
32 |
| - |
33 |
| - const showActiveTheme = (theme, focus = false) => { |
34 |
| - const themeSwitcher = document.querySelector('#bd-theme') |
35 |
| - |
36 |
| - if (!themeSwitcher) { |
37 |
| - return |
38 |
| - } |
39 |
| - |
40 |
| - const themeSwitcherText = document.querySelector('#bd-theme-text') |
41 |
| - const activeThemeIcon = document.querySelector('.theme-icon-active use') |
42 |
| - const btnToActive = document.querySelector(`[data-theme-value="${theme}"]`) |
43 |
| - const svgOfActiveBtn = btnToActive.querySelector('svg use').getAttribute('href') |
44 |
| - |
45 |
| - document.querySelectorAll('[data-theme-value]').forEach(element => { |
46 |
| - element.classList.remove('active') |
47 |
| - element.setAttribute('aria-pressed', 'false') |
48 |
| - }) |
49 |
| - |
50 |
| - btnToActive.classList.add('active') |
51 |
| - btnToActive.setAttribute('aria-pressed', 'true') |
52 |
| - activeThemeIcon.setAttribute('href', svgOfActiveBtn) |
53 |
| - const themeSwitcherLabel = `${themeSwitcherText.textContent} (${btnToActive.dataset.bsThemeValue})` |
54 |
| - themeSwitcher.setAttribute('aria-label', themeSwitcherLabel) |
55 |
| - |
56 |
| - if (focus) { |
57 |
| - themeSwitcher.focus() |
58 |
| - } |
59 |
| - } |
60 |
| - |
61 |
| - window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', () => { |
62 |
| - const storedTheme = getStoredTheme() |
63 |
| - if (storedTheme !== 'light' && storedTheme !== 'dark') { |
64 |
| - setTheme(getPreferredTheme()) |
65 |
| - } |
66 |
| - }) |
67 |
| - |
68 |
| - window.addEventListener('DOMContentLoaded', () => { |
69 |
| - showActiveTheme(getPreferredTheme()) |
70 |
| - |
71 |
| - document.querySelectorAll('[data-theme-value]') |
72 |
| - .forEach(toggle => { |
73 |
| - toggle.addEventListener('click', () => { |
74 |
| - const theme = toggle.getAttribute('data-theme-value') |
75 |
| - setStoredTheme(theme) |
76 |
| - setTheme(theme) |
77 |
| - showActiveTheme(theme, true) |
78 |
| - }) |
79 |
| - }) |
80 |
| - }) |
81 |
| - })() |
82 |
| - </script> |
83 |
| - <link rel="stylesheet" |
84 |
| - href="https://assets.phalcon.io/phalcon/test/dark.css"> |
85 | 7 | <meta name="author" content="{{ site.app.author }}">
|
86 | 8 | <meta name="generator" content="{{ site.app.generator }}">
|
87 | 9 | <meta name="application-name" content="{{ site.app.name }}">
|
|
128 | 50 | <meta name="msapplication-config" content="https://assets.phalcon.io/phalcon/favicons/browserconfig.xml" />
|
129 | 51 | <meta name="msapplication-TileColor" content="#273646">
|
130 | 52 | <meta name="theme-color" content="#273646">
|
| 53 | + <script>document.documentElement.classList.add(localStorage.getItem('mode') === 'auto' ? (matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light') : localStorage.getItem('mode'))</script> |
131 | 54 |
|
| 55 | + <link rel="stylesheet" |
| 56 | + href="https://assets.phalcon.io/phalcon/test/dark.css"> |
132 | 57 | <link rel="stylesheet"
|
133 | 58 | href="https://assets.phalcon.io/phalcon/test/core.css">
|
134 | 59 | <link rel="stylesheet"
|
|
0 commit comments