feat(app) : socle SvelteKit phase 0 — SSO, thème OKI, adapter-node

- 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
This commit is contained in:
cyber-mawonaj
2026-08-01 09:18:27 -04:00
parent dc6bf1bbde
commit ff26136dfb
37 changed files with 5178 additions and 0 deletions
Binary file not shown.
Binary file not shown.
Binary file not shown.
+50
View File
@@ -0,0 +1,50 @@
/* Fonts self-hébergées (woff2, subset latin) — zéro appel externe. */
/* Fichiers : Archivo 600/700/800 (display) + Inter 400/600/700 (body). */
@font-face {
font-family: 'Archivo';
font-style: normal;
font-weight: 600;
font-display: swap;
src: url('archivo-latin-600.woff2') format('woff2');
}
@font-face {
font-family: 'Archivo';
font-style: normal;
font-weight: 700;
font-display: swap;
src: url('archivo-latin-700.woff2') format('woff2');
}
@font-face {
font-family: 'Archivo';
font-style: normal;
font-weight: 800;
font-display: swap;
src: url('archivo-latin-800.woff2') format('woff2');
}
@font-face {
font-family: 'Inter';
font-style: normal;
font-weight: 400;
font-display: swap;
src: url('inter-latin-400.woff2') format('woff2');
}
@font-face {
font-family: 'Inter';
font-style: normal;
font-weight: 600;
font-display: swap;
src: url('inter-latin-600.woff2') format('woff2');
}
@font-face {
font-family: 'Inter';
font-style: normal;
font-weight: 700;
font-display: swap;
src: url('inter-latin-700.woff2') format('woff2');
}
Binary file not shown.
Binary file not shown.
Binary file not shown.