Onise's picture
Create a react starter
c589536 verified
// Theme toggle functionality
document.addEventListener('DOMContentLoaded', () => {
const themeToggle = document.getElementById('theme-toggle');
const prefersDark = window.matchMedia('(prefers-color-scheme: dark)').matches;
const storedTheme = localStorage.getItem('theme');
// Set initial theme
if (storedTheme === 'dark' || (!storedTheme && prefersDark)) {
document.documentElement.classList.add('dark');
if (themeToggle) themeToggle.checked = true;
}
// Theme toggle handler
if (themeToggle) {
themeToggle.addEventListener('change', () => {
if (themeToggle.checked) {
document.documentElement.classList.add('dark');
localStorage.setItem('theme', 'dark');
} else {
document.documentElement.classList.remove('dark');
localStorage.setItem('theme', 'light');
}
});
}
// Initialize tooltips
const tooltipTriggers = document.querySelectorAll('[data-tooltip]');
tooltipTriggers.forEach(trigger => {
new bootstrap.Tooltip(trigger);
});
});