# Contributing — Le Librodrome ## Architecture ``` app/ pages/ numerique/ # Section autonomie numérique index.vue # Vue d'ensemble (3 piliers) [slug].vue # Détail pilier (contenu YAML) economique/ # Section autonomie économique index.vue # Vue d'ensemble (monnaie libre, livre, productions) monnaie-libre.vue commande.vue # Commande du livre (Bookelis + librairie) productions-collectives.vue modele-eco/ index.vue # Couverture livre + sommaire chapitres [slug].vue # Lecteur de chapitre (Nuxt Content) citoyenne/ # Section autonomie citoyenne index.vue # Vue d'ensemble (decision, tarifs-eau) [slug].vue # Détail (contenu YAML) en-musique/ # Player audio evenement.vue admin/ # Back-office protégé pages/ index.vue # Liste toutes les pages YAML [...path].vue # Éditeur YAML (supporte les sous-dossiers) components/ book/Actions.vue # Boutons partagés du livre (player, PDF, chapitres, commande) home/BookSection.vue # Bloc couverture + CTAs (utilise BookActions) home/AxisBlock.vue # Bloc axe sur la home (supporte actions lien via `to`) home/AxisGrid.vue # Grille 3 axes + GrateWizard stores/palette.ts # 4 palettes saisonnières (été par défaut) ``` ## Contenu YAML API : `GET /api/content/pages/{path}` — supporte les chemins imbriqués (`numerique/logiciel-libre`). Admin : `PUT /api/admin/content/pages/{path}` + `GET /api/admin/content/pages` (liste). Les fichiers YAML sont dans `site/pages/`, organisés en sous-dossiers par section. ## Palettes 4 palettes dans `stores/palette.ts` : automne, hiver, printemps, été. - Défaut : **été** (premier visiteur) - Persisté en `localStorage('palette')` pour les visites suivantes - CSS : variables `--color-primary`, `--color-accent`, etc. + classe `.palette-light`/`.palette-dark` - Overrides light mode dans `main.css` (`.palette-light .text-white` → couleur adaptive) - Admin : tous les `color: white` dans les composants admin sont remplacés par `hsl(var(--color-text))` sauf les boutons sur fond `hsl(var(--color-primary))` (`AdminSaveButton`, `.login-btn`) ## Navigation contextuelle — pages détail `[slug].vue` (numérique, citoyenne) embarque : - **Prev/next** (`ctx-nav`) en haut de page — liens vers les pages adjacentes dans la section - **Sommaire flottant** (`.sommaire-sidebar`, `position: sticky`) dans un aside absolu à droite — visible ≥ 1300px, `overflow: clip` sur le parent pour ne pas casser le sticky Les ancres sont des `