Files
lage-chat-control/frontend/README.md
T
sucupira db5a997e50 feat(oki): fondations de la migration vers la stack souveraine OKI
Architecture décidée et documentée dans ADR.md : SvelteKit natif en
fichiers plats plutôt que Strapi (55 outils, données statiques,
souveraineté et budget performance prioritaires — doctrine §1.2, §4.4).

- frontend/ : SvelteKit 2 + Svelte 5 (runes), adapter-static, 58 pages
  prérendues, CSS natif en @layer (reset→tokens→base→layouts→components),
  tokens oklch(), container queries, typo fluide clamp(), 2 polices WOFF2
  auto-hébergées (Atkinson Hyperlegible, Fraunces), zéro CDN tiers
- i18n FR/gcf typé (clé manquante = erreur de build), bascule Kréyòl
  persistée en localStorage, micro-textes créoles (« Ou pa manké ayen »)
- Composants : ToolCard, DifficultyBadge (forme+texte+couleur, jamais la
  couleur seule), CategoryNav (≤5 entrées, divulgation progressive),
  SearchBar (raccourci /), LanguageSwitcher, EndMarker
- content/ : 55 fiches migrées depuis src/ (script frontend/scripts/
  migrate-tools.mjs, idempotent), licences SPDX reprises de directory.json
- docs/ : DESIGN_SYSTEM.md et CONTENT_GUIDE.md

Budgets vérifiés : JS 41 Ko gzip, CSS 2,9 Ko gzip, svelte-check 0 erreur.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-10 12:51:17 -04:00

41 lines
1.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# exitchatcontrol × OKI — frontend
Annuaire souverain d'outils libres. SvelteKit 2 + Svelte 5, site 100 %
prérendu, zéro CDN tiers, zéro tracker. Voir [`ADR.md`](../ADR.md) pour la
décision d'architecture et `../docs/` pour le design system et le guide
de contenu.
## Prérequis
Node ≥ 22.12, pnpm.
## Commandes
```sh
pnpm install
pnpm migrate # (re)génère content/ depuis l'ancien site Astro (src/)
pnpm dev # serveur de développement
pnpm build # build statique dans build/ (prérend les 58 pages)
pnpm preview # sert le build localement
pnpm check # svelte-check (types + a11y)
```
## Déploiement
`build/` est un site statique : n'importe quel serveur de fichiers convient
(nginx du `docker/` existant, YunoHost `my_webapp`, etc.). Aucune dépendance
cloud, aucun service à maintenir — un miroir = une copie du dossier.
## Arborescence
```
src/styles/ tokens, reset, base, layouts (cascade @layer)
src/lib/i18n/ fr.json + gcf.json typés, store de langue (runes)
src/lib/components/ ToolCard, DifficultyBadge, CategoryNav, SearchBar,
LanguageSwitcher, EndMarker
src/lib/content/ chargeur build-time des fichiers ../content/
src/routes/ / (landing), /outils (annuaire filtrable), /outils/[slug]
static/fonts/ 2 WOFF2 auto-hébergés (Atkinson Hyperlegible, Fraunces)
scripts/ migrate-tools.mjs
```