- Rebuild complet SvelteKit 2 + Svelte 5 runes + TypeScript, adapter-static - Images self-hébergées optimisées au build (vite-imagetools), fonts Archivo/Inter en woff2 local — BunnyCDN et Google Fonts supprimés (corrige les 403 d'images) - Tokens charte OKI, thème sombre par défaut / clair opt-in, zéro emoji (set SVG) - Motion : KineticText (stagger syncopé gwoka), ScrollProgressBar, View Transitions - Village SVG isométrique pour les services hébergés + fallback accessible - PWA (manifest + SW hors-ligne), 404 en KA, CSP nettoyée (.htaccess + _headers) - Lighthouse mobile : 91/100/100/100 — JS initial 67 Ko gzip
18 lines
561 B
JavaScript
18 lines
561 B
JavaScript
(function() {
|
|
// Récupérer le thème stocké ou détecter le thème système
|
|
const storedTheme = localStorage.getItem('oki-theme');
|
|
const systemPrefersDark = window.matchMedia('(prefers-color-scheme: dark)').matches;
|
|
|
|
let theme = storedTheme;
|
|
|
|
// Si pas de préférence stockée, utiliser le thème système
|
|
if (!storedTheme) {
|
|
theme = systemPrefersDark ? 'dark' : 'light';
|
|
}
|
|
|
|
// Appliquer le thème immédiatement
|
|
if (theme === 'light') {
|
|
document.documentElement.classList.add('light-theme');
|
|
}
|
|
})();
|