- Scaffold SvelteKit 2 + Svelte 5 (runes), TypeScript strict, adapter-node - Auth SSO via header Ynh-User (hooks.server) ; accueil public minimal sans header, 401 sur toute autre route ; DEV_USER en dev local uniquement - Design system OKI : tokens, thème sombre par défaut, clair opt-in anti-FOUC, flag-bar, fonts Archivo/Inter self-hébergées, sprite icons.svg (zéro emoji) - CSP via kit.csp (mode nonce) + en-têtes de sécurité ; paths.base configurable au build (BASE_PATH) pour le sous-chemin YunoHost, paths.relative = false - i18n fr (structure prête gcf/en), pages : accueil public/privé, erreurs designées - Tests vitest : résolution SSO + routes publiques (10 cas) - Vérifié : check/lint/test/build verts, test fumée HTTP sur build (SSO, CSP, sous-chemin /veille), zéro emoji et zéro domaine tiers dans le build
12 lines
406 B
JavaScript
12 lines
406 B
JavaScript
// Bascule de thème anti-FOUC — script externe (CSP : aucun script inline).
|
|
// Thème sombre par défaut (identité OKI) ; clair opt-in persisté en localStorage.
|
|
(function () {
|
|
try {
|
|
if (localStorage.getItem('veille-ia-theme') === 'light') {
|
|
document.documentElement.classList.add('light-theme');
|
|
}
|
|
} catch {
|
|
// localStorage indisponible : thème sombre par défaut, rien à faire.
|
|
}
|
|
})();
|