db5a997e50
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>
15 lines
524 B
CSS
15 lines
524 B
CSS
/*
|
|
* app.css — ordre de cascade explicite et auditable (doctrine §5.2).
|
|
* Chaque couche est déclarée AVANT tout import : la position dans la
|
|
* cascade est ici, pas dans l'ordre des fichiers.
|
|
*/
|
|
@layer reset, tokens, base, layouts, components, utilities;
|
|
|
|
/* @font-face n'est pas concerné par les couches */
|
|
@import './styles/fonts.css';
|
|
|
|
@import './styles/reset.css' layer(reset);
|
|
@import './styles/tokens.css' layer(tokens);
|
|
@import './styles/base.css' layer(base);
|
|
@import './styles/layouts.css' layer(layouts);
|