feat: harmonisation charte OKI dark/light, command bar, local-first stats & SEO

This commit is contained in:
2026-08-16 22:21:29 -04:00
parent 9b867243fd
commit 6a041a938e
21 changed files with 2152 additions and 410 deletions
+10
View File
@@ -122,3 +122,13 @@ Règles :
- **Visionneuse** : `StreetPanel.svelte`, lazy load façon MapLibre (`import('mapillary-js')` + CSS — chunk séparé ~1 MB, 0 occurrence dans le bundle initial), `component.cover: false`, `moveTo()` avec état d'erreur (image retirée → message + round suivant possible). Token `PUBLIC_MAPILLARY_TOKEN` via `$env/dynamic/public` (pattern `PUBLIC_TILES_URL`) : **token client**, conçu par Mapillary pour être exposé côté navigateur.
- **Réutilisation sans modification** : `GameMap`, `ResultPanel`, `WikiFiche`, scoring (`scoreGuess`/`skipResult` acceptent `Lieu | StreetLieu`), timer, indices, bouton « Passer ». `RoundPlace.photo` devient optionnel (`mapillaryId`/`credit` ajoutés) ; lookup unifié `getLieuById` (2 corpus) pour `/api/guess`, `getLieuPhotoById` conservé pour le défi et le proxy photo.
- **Hors scope v1** : street dans `/defi/[seed]` et `/explorer`, cache SW des tuiles Mapillary (les requêtes `graph.mapillary.com`/FBCDN passent en direct).
## 11. ADR-004 — Harmonisation Charte OKI, Command Bar, Local-First & SEO (2026-08-16)
Mise en conformité intégrale avec les référentiels de marque OKI et la doctrine Nerve-First :
- **Charte Visuelle & Thème Sombre/Clair** : Thème sombre par défaut (identité afrofuturiste panafricaine : fond `#0D0D0D`, surfaces `#1A0F1A`, texte `#FFF8E7`, action or `#FDB813`). Thème clair opt-in (`html.light-theme`) vérifié WCAG AA avec accents assombris (`#B87A00`, vert `#006B3D`, rouge `#A01030`) et ratios de contraste ≥ 4.5:1. Intégration du composant `ThemeSwitch.svelte` (persistance `localStorage`).
- **Signature Graphique Flag-Bar** : Bandeau signature 6 px à 4 segments francs (`#0D0D0D` / or / vert / rouge) positionné en bord inférieur du header fixe et au pied de page sur `+page.svelte`.
- **Command Bar Intent-Centric (`Ctrl+K` / `⌘K`)** : Composant `CommandBar.svelte` omniprésent permettant l'exécution directe des intentions sans friction (lancer les modes, filtrer par région, basculer langue/thème, ouvrir les stats).
- **Souveraineté & Local-First (Historique & Statistiques)** : Store `history.svelte.ts` et vue `StatsModal.svelte` garantissant que 100% des scores, parties et précisions géographiques restent stockés localement sur l'appareil du joueur sans aucun pistage ni compte serveur, avec fonction d'export JSON et de purge locale.
- **AI Overview & SEO Top-Tier** : HTML sémantique strict, balisage Schema.org structuré `WebApplication` + `FAQPage` dans `Seo.svelte` optimisé pour l'indexation par les moteurs et les modèles d'intelligence artificielle.