Pages équipe + conclusion, colonnes de page libre, réglages couverture

- Page « équipe » : roster statique du collectif (composables/useTeam),
  portraits servis depuis public/portraits, grille ≤ 3 colonnes équilibrée
  (portrait/nom/rôle/présentation), sélection + surcharges par membre
  (repliables, réordonnables, réinitialisables) dans le composeur
- Page « conclusion » : « Merci ! » centré + rappel des contacts
- Page libre : 1 à 3 colonnes texte (markdown) ou images avec sous-titres,
  réordonnables ; migration des champs body/media legacy vers columns
- Couverture : texte libre sous l'intro, adresse en bas à gauche (3 lignes),
  case « afficher les années » au niveau du document
- Sommaire : items centrés (self-center), filet en points dégradés stable
- Retrait de la dépendance morte pagedjs
- Docs à jour (CLAUDE.md, README) ; spec marquée comme archive réalisée
This commit is contained in:
2026-07-13 16:00:59 +02:00
parent ef1f14335d
commit 1c1604ea2f
29 changed files with 802 additions and 265 deletions

79
composables/useTeam.ts Normal file
View File

@@ -0,0 +1,79 @@
// Roster de l'équipe du collectif Figures Libres — données statiques de l'app
// (pas du contenu Grav). Les portraits sont servis en statique depuis
// public/portraits/. La page « équipe » (TeamPage) référence ces membres par id
// et peut surcharger rôle et présentation ; nom et portrait viennent d'ici.
export interface TeamMember {
id: string // slug stable (= base du portrait)
name: string
portrait: string // fichier dans public/portraits/
role?: string // rôle par défaut
bio?: string // présentation par défaut
defaultEnabled?: boolean // coché à la création de la page équipe
}
export const TEAM_ROSTER: TeamMember[] = [
{
id: 'maud',
name: 'Maud Boyer',
portrait: 'maud.png',
role: 'cheffe de projet et directrice artistique',
bio: 'Maud travaille depuis plus de 15 ans pour les acteur.trices des services publics et les associations. Après un diplôme des Arts décoratifs de Strasbourg, un passage par lIUFM et quelques premières expériences dans les grosses agences de communication parisiennes, Maud co-fonde en premier lieu un collectif de design graphique dédié à la communication dutilité publique. Elle travaillera notamment pour Médecins sans frontières, le CCFD-Terre Solidaire, Oxfam, Le Grand Paris Aménagement… En 2016, Maud poursuit son engagement en mettant ses outils de production en adéquation avec les objectifs de ses client.es. Cest la transition douce vers les logiciels libres, Figures Libres est né. Rigoureuse, patiente et organisée, Maud est linterlocutrice privilégiée pour tous vos travaux au long cours, notamment la conception des sites web, pour lesquels elle assure la gestion avec son binôme technique, Bachir Soussi-Chiadmi.',
defaultEnabled: true,
},
{
id: 'bachir',
name: 'Bachir Soussi-Chiadmi',
portrait: 'bachir.png',
role: 'designer interactif et développeur',
bio: 'Après son diplôme des Arts Décoratifs de Strasbourg qui clôture un parcours détudes débuté sous le signe des sciences, Bachir entame sa carrière professionnelle en conjuguant créativité et rigueur du code. En plongeant dans la bulle internet des années 2000 et son interactivité émergeante, Bachir se forme en autodidacte pour devenir aujourdhui le maître incontesté de plusieurs langages de programmation (html/CSS, Javascript / Nodejs, PHP, Mysql, Python) et de plusieurs types de CMS (Drupal, SPIP, Grav, Wordpress…). Enseignant aux Beaux-Arts du Havre et fondateur de lassociation O.L.A. (Outils Libres Alternatifs) pour la promotion des logiciels libres de création, Bachir maitrise également lécosystème Linux, la gestion et la maintenance de serveurs et maîtrise les machines aussi bien que le code qui les dirige. Sa vision de « linformation en mouvement » produit les sites web les plus complexes dotés dune interface fluide et intuitive.',
defaultEnabled: true,
},
{
id: 'sandrine',
name: 'Sandrine Ripoll',
portrait: 'sandrine.png',
role: 'cheffe de projet et directrice artistique',
bio: 'Sandrine, fondatrice du collectif « Entrez-sans-frapper » en 2001 avec Maud Boyer, est aujourdhui en pilotage de la plupart des projets de Figures Libres. Après un début professionnel dans un grand groupe industriel français, Sandrine rejoint le service communication de la ville dIvry-sur-Seine où elle apprend les enjeux de la communication locale. Toujours à la recherche du visuel qui fait sens pour un impact maximum, cest la spécialiste des campagnes de communication grand public et des visuels de plaidoyer. Forte de ses compétences rédactionnelles, elle est aussi en charge du travail éditorial et du rewriting de contenus. Passionnée de façonnage, de couleur et de texture de papier, Sandrine est la responsable fabrication de lagence, également en charge des projets de scénographie. Comme une évidence, dans son parcours, elle sengage en tant que bénévole dans des associations locales en tant que militante féministe.',
defaultEnabled: true,
},
{
id: 'chloe',
name: 'Chloé Listrat',
portrait: 'chloe.png',
role: 'graphiste',
bio: 'Après six mois de stage intensif chez Figures Libres en 2020, Chloé Listrat rejoint léquipe à la suite de son Master en Design Graphique et multimédia mené à Rennes. Enthousiaste et généreuse dans ses propositions créatives, elle analyse avant tout les sujets abordés pour concevoir la réponse adaptée qui a du sens. De cette génération élevée à limage et au rythme des réseaux sociaux, elle met son talent en mouvement pour concevoir motions design et montages vidéos. Lœil toujours ouvert sur le monde, Chloé mène une vie dengagement associatif intense entre éducation populaire et initiation à la sérigraphie dans les tiers-lieux du Val-de-Marne.',
defaultEnabled: true,
},
{
id: 'ouidade',
name: 'Ouidade Soussi-Chiadmi',
portrait: 'ouidade.png',
role: 'photographe et développeuse',
bio: 'Ouidade commence son parcours créatif en passant par lécole des Arts décoratifs de Paris. Photographe indépendant pour les centres culturels parisiens et les milieux de lhôtellerie du luxe, Ouidade poursuit son parcours en intégrant lagence Figures Libres en 2017. Formées aux logiciels de traitement dimages Gimp et Darktable, Ouidade est la spécialiste du montage et de la retouche dimage. En 2020, elle entame une formation de développeuse web et assure aujourdhui la gestion et la réalisation des sites.',
defaultEnabled: true,
},
{
id: 'val',
name: 'Valentin Le Moign',
portrait: 'val.png',
role: 'graphiste et développeur',
bio: 'Valentin diplômé de lÉcole dart du Havre (quil a quitté sous les félicitations du Jury), est aussi à laise dans la conception de supports print que de sites web. Curieux des nouveautés, il affine ses compétences de graphiste et de développeur au gré des projets de lagence. Naturellement, il sinstalle dans sa région de cœur, la Bretagne, pour mener de front une vie de professeur en design et designer web pour le collectif en accord avec ses engagements sociaux et citoyens.',
defaultEnabled: true,
},
// Autres membres du roster — décochés par défaut ; rôle et présentation à
// renseigner dans l'UI de composition.
{ id: 'arman', name: 'Arman', portrait: 'arman.png' },
{ id: 'cathy', name: 'Cathy', portrait: 'cathy.png' },
{ id: 'hugo', name: 'Hugo', portrait: 'hugo.png' },
{ id: 'jean-elie', name: 'Jean-Élie', portrait: 'jean-elie.png' },
{ id: 'julia', name: 'Julia', portrait: 'julia.png' },
{ id: 'lilia', name: 'Lilia', portrait: 'Lilia.png' },
{ id: 'marion', name: 'Marion', portrait: 'marion.png' },
{ id: 'sabine', name: 'Sabine', portrait: 'sabine.png' },
]
/** URL statique du portrait d'un membre (servi depuis public/portraits/). */
export function portraitUrl(portrait: string): string {
return `/portraits/${portrait}`
}