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

1.4 KiB
Raw Blame History

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 pour la décision d'architecture et ../docs/ pour le design system et le guide de contenu.

Prérequis

Node ≥ 22.12, pnpm.

Commandes

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