|
| 1 | +// Dark mode functionality |
| 2 | +function initTheme() { |
| 3 | + const savedTheme = localStorage.getItem('theme'); |
| 4 | + const systemPrefersDark = window.matchMedia('(prefers-color-scheme: dark)').matches; |
| 5 | + const theme = savedTheme || (systemPrefersDark ? 'dark' : 'light'); |
| 6 | + |
| 7 | + document.documentElement.setAttribute('data-theme', theme); |
| 8 | + const toggle = document.getElementById('theme-toggle'); |
| 9 | + if (toggle) { |
| 10 | + toggle.checked = theme === 'dark'; |
| 11 | + } |
| 12 | +} |
| 13 | + |
| 14 | +function toggleTheme() { |
| 15 | + const currentTheme = document.documentElement.getAttribute('data-theme'); |
| 16 | + const newTheme = currentTheme === 'dark' ? 'light' : 'dark'; |
| 17 | + |
| 18 | + document.documentElement.setAttribute('data-theme', newTheme); |
| 19 | + localStorage.setItem('theme', newTheme); |
| 20 | +} |
| 21 | + |
| 22 | +// Listen for system theme changes |
| 23 | +window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', (e) => { |
| 24 | + if (!localStorage.getItem('theme')) { |
| 25 | + document.documentElement.setAttribute('data-theme', e.matches ? 'dark' : 'light'); |
| 26 | + const toggle = document.getElementById('theme-toggle'); |
| 27 | + if (toggle) { |
| 28 | + toggle.checked = e.matches; |
| 29 | + } |
| 30 | + } |
| 31 | +}); |
| 32 | + |
| 33 | +// Initialize theme on page load |
| 34 | +if (document.readyState === 'loading') { |
| 35 | + document.addEventListener('DOMContentLoaded', initTheme); |
| 36 | +} else { |
| 37 | + initTheme(); |
| 38 | +} |
| 39 | + |
1 | 40 | function showCopied(node) { |
2 | 41 | const copied = "Copied!" |
3 | | - let tooltip = node.querySelector(".tooltiptext") |
4 | | - let curr = tooltip.textContent |
5 | | - tooltip.textContent = copied |
| 42 | + let curr = node.getAttribute("data-tooltip") |
| 43 | + node.setAttribute("data-tooltip", copied) |
6 | 44 | if (curr != copied) { |
7 | 45 | setTimeout(function() { |
8 | | - tooltip.textContent = curr |
| 46 | + node.setAttribute("data-tooltip", curr) |
9 | 47 | }, 1000) |
10 | 48 | } |
11 | 49 | } |
|
0 commit comments