24 KiB
AGENTS.md — CAHIER DES CHARGES COMPLET : THÈME WORDPRESS cgt-wp-theme
Projet : Site officiel de l'Union Locale CGT Foix Haute-Ariège (https://cgt-fha.fr/)
Dépôt Gitea officiel : https://git.cgt-fha.fr/Union_Locale_CGT_Foix_Haute-Ariege/cgt-wp-theme.git
Chemin de déploiement VPS : /var/www/fastuser/data/www/cgt-fha.fr/wp-content/themes/cgt-fha/
Ressource Skills locale : ../skills/ (../skills/wp-performance/SKILL.md et ../skills/wp-block-themes/SKILL.md)
Ressources graphiques locales : ../ressources/banniere union locale noir.png (assets/img/banniere-ul-noir.png pour l'en-tête), ../ressources/banniere union locale blanc.png (assets/img/banniere-ul-blanc.png pour le pied de page), logos officiels du réseau CGT (logo-cgt-09.jpg, logo-cgt.png, logo-nvo.png, logo-ihs.jpg, logo-indecosa.png) et screenshot.png (1200x900).
Maquette de référence visuelle : L'utilisateur fournit l'image de maquette validée en pièce jointe. Respecte fidèlement sa hiérarchie visuelle, ses proportions, ses espacements et son style graphique.
1. PHILOSOPHIE TECHNIQUE, SKILLS & RÈGLES D'ARCHITECTURE
Tu es l'unique développeur de ce thème WordPress sur mesure. Ce thème remplace un thème généraliste bridé (Neve) pour offrir une souveraineté totale, une vitesse de chargement maximale et une ergonomie pensée pour les salariés et militants de Haute-Ariège[cite: 6].
- Utilisation des Skills (
../skills/) :- Lis et applique les bonnes pratiques définies dans
../skills/wp-performance/SKILL.md(optimisation des requêtes, cache Transients, WP-Cron) et../skills/wp-block-themes/SKILL.md(uniquement pour la structure propre detheme.json)[cite: 6]. - Restriction stricte : Ne génère jamais de blocs Gutenberg personnalisés en React (
@wordpress/scripts,block.jsoncompilés) ni de Full Site Editing complet[cite: 6].
- Lis et applique les bonnes pratiques définies dans
- Architecture : Thème PHP Classique / Hybride Moderne :
- Utilise des gabarits PHP 8.x propres, typés et sécurisés (
header.php,footer.php,front-page.php,home.php,single.php,page.php,archive.php,404.php)[cite: 6]. - Utilise
theme.jsonuniquement pour déclarer la palette de couleurs CGT et les typographies dans l'éditeur d'articles[cite: 6].
- Utilise des gabarits PHP 8.x propres, typés et sécurisés (
- Zéro dépendance externe lourde (RGPD & Performance) :
- CSS moderne natif (
CSS Custom Properties,CSS Grid,Flexbox, mobile-first). Aucune bibliothèque CSS externe (pas de Bootstrap ni Tailwind CDN)[cite: 6]. - JavaScript Vanilla ES6 minimaliste uniquement pour le menu mobile accessible et les onglets de l'admin (pas de jQuery)[cite: 6].
- Aucune police Google Fonts chargée via CDN tiers : utilise des polices système modernes (
system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif) ou des fichiers hébergés localement[cite: 6].
- CSS moderne natif (
- 100 % Modifiable sans toucher au code & Préservation stricte des réglages :
- En dehors des articles locaux (publiés dans WordPress) et des actualités confédérales extraites automatiquement depuis
cgt.fr, tous les textes, images, icônes, liens, boutons et coordonnées du thème doivent être modifiables depuis l'administration WordPress (Apparence > Réglages UL CGT + Apparence > Menus + Médiathèque). - Pré-remplissage par défaut & Non-écrasement strict : Toutes les options possèdent des valeurs par défaut complètes lues dynamiquement via
wp_parse_args( get_option( 'cgt_fha_options', array() ), $defaults ). Aucun hook (after_switch_theme,upgrader_process_complete,init) ne doit écraser les options enregistrées en base (wp_options), les menus ou les médias lors des mises à jour ; d'éventuelles évolutions de structure passent uniquement par la fonction versionnée non destructivecgt_fha_maybe_migrate_options().
- En dehors des articles locaux (publiés dans WordPress) et des actualités confédérales extraites automatiquement depuis
- Identité territoriale Foix & Haute-Ariège + Syndicat Multipros :
- L'Union Locale CGT de Foix et de la Haute-Ariège fédère l'ensemble des syndicats CGT de son périmètre et assure le rattachement direct des salarié·e·s isolé·e·s (TPE/PME sans section syndicale) via son syndicat multiprofessionnel (Multipros).
- Intégration propre avec les extensions sœurs (Gitea) :
- Le thème gère le visuel, le SEO/OpenGraph de base, le bandeau de mobilisation et l'encart d'actualités confédérales[cite: 6].
- Il prévoit des hooks/emplacements propres (
do_action(...)/ support de shortcodes) pour accueillir les sorties des extensionscgt-wp-calendar(Agenda) etcgt-wp-forms(Formulaires Défense, Adhésion, Formation), tout en affichant un rendu cohérent même si ces extensions ne sont pas encore activées[cite: 6].
2. IDENTITÉ VISUELLE & CHARTE GRAPHIQUE
- Couleur primaire (Rouge CGT) :
--cgt-red: #d20012;(hover :--cgt-red-dark: #a8000e;)[cite: 7] - Couleurs neutres & surfaces :
- Fond principal :
--bg-main: #ffffff; - Fond alterné (section Confédérale / Formation / Footer) :
--bg-soft: #f1f3f5; - Barre supérieure contact :
--bg-topbar: #1c1e21; - Texte principal :
--text-main: #1a1a1a; - Texte secondaire :
--text-muted: #4a5568; - Bordures des cartes :
--border-card: #cbd5e1; - Rayons d'arrondi :
--radius-card: 12px;à14px, boutons pilules--radius-pill: 999px;.
- Fond principal :
3. EN-TÊTE (header.php) & NAVIGATION
Respecte exactement le haut de la maquette de référence :
- Barre supérieure (
topbar) :- Fond sombre (
#1c1e21), texte blanc fin (13px). - À gauche : icône téléphone + lien
tel:(07 60 49 64 69par défaut) et icône enveloppe + lienmailto:(union-locale@cgt-fha.frpar défaut)[cite: 7]. - À droite : icônes réseaux sociaux (Facebook officiel de l'UL
https://www.facebook.com/profile.php?id=61552410568856, etc., éditables dans les réglages)[cite: 7].
- Fond sombre (
- Bandeau d'Alerte Mobilisation Auto-Expirant :
- Bandeau pleine largeur sur fond rouge CGT (
#d20012), texte blanc centré en gras (ex. :MOBILISATION : Grève et manifestation à Foix - Allées de Villote), cliquable si une URL est renseignée[cite: 6]. - Condition stricte d'affichage : S'affiche uniquement si la case Activer le bandeau est cochée ET que l'horodatage actuel (
current_time('timestamp')) est strictement inférieur à la Date et heure d'expiration configurée dans l'admin[cite: 6]. Passé ce délai, le bandeau disparaît automatiquement[cite: 6].
- Bandeau pleine largeur sur fond rouge CGT (
- Barre de Navigation Principale (
<header>) :- Fond blanc, hauteur confortable, ombre légère au défilement.
- À gauche : Logo officiel de l'Union Locale CGT Foix Haute-Ariège (modifiable via
custom_logodans WordPress, avec fallback SVG/PNG local propre). - À droite : Menu principal horizontal (
wp_nav_menu: Accueil, Actualités, Calendrier, Contact), avec soulignement rouge sur l'élément actif. - IMPORTANT : Ne mets PAS de bouton rouge « Syndiquez-vous » dans cette barre de navigation (pour éviter la répétition avec le Hero juste en dessous).
- Sur mobile (
< 768px) : bouton menu hamburger accessible (aria-expanded="false", contrôle clavierEscape).
4. PAGE D'ACCUEIL (front-page.php) — STRUCTURE COMPLÈTE
La page d'accueil s'articule en 7 sections verticales dans cet ordre exact :
Section 1 : Bannière Hero Plein Écran (Ancrage Territorial & Action)
- Visuel de fond : Image panoramique des montagnes d'Ariège / territoire (configurable dans l'admin avec une image par défaut intégrée dans
assets/img/hero-ariege.jpg), recouverte d'un voile sombre dégradé (rgba(15, 18, 22, 0.62)) assurant une lisibilité parfaite du texte blanc. - Contenu centré verticalement et horizontalement :
- Titre principal (
<h1>, blanc, grand, gras, 2 lignes) :Union Locale CGT Foix Haute-AriègeVotre syndicat de proximité ! - Citation centrée en dessous (blanc doux, italique, éditable dans l'admin) :
« La régression sociale ne se négocie pas, elle se combat ! » — Henri Krasucki, Secrétaire Général de la CGT de 1982 à 1992 - Deux boutons d'action centrés côte à côte (
display: flex; justify-content: center; gap: 1rem; flex-wrap: wrap;) :- Bouton gauche (fond blanc
#ffffff, texte noir#1a1a1a, coins arrondis8px, gras) : « J'ai besoin d'aide » (lien configurable, par défaut vers la page Contact / Urgence salarié)[cite: 6]. - Bouton droit (fond sombre translucide ou rouge foncé, bordure blanche/rouge, texte blanc, coins arrondis
8px, gras) : « Rejoindre la CGT » (lien configurable, par défaut vers la page Syndiquez-vous)[cite: 6].
- Bouton gauche (fond blanc
- Titre principal (
Section 2 : Module « À QUOI NOUS SERVONS ? » (3 Cartes de Mission)
Placé immédiatement sous le Hero et avant les actualités (fond blanc #ffffff) :
- Titre de section :
À QUOI NOUS SERVONS ?centré en majuscules (<h2>). - Grille 3 colonnes (
grid-template-columns: repeat(3, 1fr); gap: 1.5rem;, 1 colonne sur mobile) :- Chaque carte possède un fond blanc, une bordure fine (
1px solid #cbd5e1), des coins arrondis (border-radius: 12px), un padding généreux (1.75rem) et un contenu centré :- Carte 1 : Icône poing levé / collectif (SVG propre) • Titre
S'ORGANISER• Texte par défaut : « Construire le syndicat dans votre entreprise, préparer les élections CSE et ne plus rester isolé face à l'employeur. » - Carte 2 : Icône bouclier (SVG propre) • Titre
SE DÉFENDRE• Texte par défaut : « Faire respecter vos droits, vos salaires et vos conditions de travail, avec l'appui de nos conseillers du salarié et juristes. » - Carte 3 : Icône bulles d'échange / livre (SVG propre) • Titre
S'INFORMER & SE FORMER• Texte par défaut : « Connaître les actualités des luttes en Haute-Ariège et bénéficier de vos droits à la formation syndicale (CFESES). »
- Carte 1 : Icône poing levé / collectif (SVG propre) • Titre
- Note : Les icônes (sélecteur parmi une bibliothèque SVG intégrée), titres et textes de ces 3 cartes sont modifiables dans l'admin WordPress.
- Chaque carte possède un fond blanc, une bordure fine (
Section 3 : Vitrine 1 — « SUR LE TERRAIN À FOIX ET EN HAUTE-ARIÈGE » (Actualités Locales)
- Priorité éditoriale locale : Affiche automatiquement les 3 derniers articles publiés dans le WordPress de l'UL (
WP_Querysurpost_type => 'post',posts_per_page => 3)[cite: 6]. - Titre de section :
SUR LE TERRAIN À FOIX ET EN HAUTE-ARIÈGEcentré en majuscules (<h2>), personnalisable dans l'admin. - Mise en page des 3 cartes (fidèle à la maquette) :
- Grille 3 colonnes (
gap: 1.5rem). - Image à la une en haut avec coins arrondis (
border-radius: 12px; height: 190px; object-fit: cover; width: 100%;), avec fallback SVG propre si un article n'a pas d'image. - Juste sous l'image : une pilule rouge CGT (
background: #d20012; color: #fff; border-radius: 999px; font-size: 12px; padding: 2px 10px;) affichant la catégorie principale (ex. Mobilisation, Vie syndicale) suivie de la date de publication (d.m.Y). - Titre de l'article en gras (
18px) cliquable verssingle.php. - Extrait nettoyé (
wp_trim_words, ~20 mots).
- Grille 3 colonnes (
- Pied de section : Bouton lien discret centré « Voir toutes les actualités locales → » vers la page des articles (
get_permalink(get_option('page_for_posts'))), suivi du hookdo_action('cgt_fha_after_local_news');permettant d'injecter les prochains rendez-vous decgt-wp-calendar[cite: 6].
Section 4 : Vitrine 2 — « ACTUALITÉ CONFÉDÉRALE » (Récupération automatique cgt.fr)
- Fond de section : Gris très doux (
#f1f3f5) pour bien la distinguer des actualités locales. - Titre de section :
ACTUALITÉ CONFÉDÉRALEcentré en majuscules (<h2>). - Moteur PHP (
inc/class-cgt-confederal-feed.php) :- Interroge
https://www.cgt.fr/viawp_remote_get()(timeout 10s, User-Agent propre) et parse le HTML avecDOMDocument+DOMXPath(sans polluerwp_posts) :- 1 article
featured(« À la une ») : extrait depuis la section "à la une de la cgt" (title,summary,image_urlconvertie en URL absoluehttps://www.cgt.fr/...,category,url). - 3 articles
latest(ARTICLE 1,ARTICLE 2,ARTICLE 3) : extraits depuis les 3 premiers articles de la section suivante "mais aussi..." (complétés viahttps://www.cgt.fr/actualitessi un résumé est manquant).
- 1 article
- Fallback de sécurité : Si la page d'accueil
cgt.fréchoue ou change de structure DOM, bascule automatiquement sur les 4 premiers articles dehttps://www.cgt.fr/actualites(le 1er devientfeatured, les 3 suivants deviennentlatest). - Cache & WP-Cron : Stockage dans le transient
cgt_fha_confederal_feed(expiration 3h) + sauvegarde de secourscgt_fha_confederal_feed_backupconservée en cas d'indisponibilité réseau. ÉvénementWP-Crontoutes les 2 heures + bouton "Actualiser les actus confédérales" dans la barre d'admin WordPress (admin_bar_menu).
- Interroge
- Rendu HTML/CSS fidèle à la maquette :
- Bloc supérieur « À LA UNE » :
- Conteneur centré aligné sur la largeur de la grille des 3 cartes ci-dessous (
max-width: 1040px; margin: 0 auto 2.5rem auto;), disposition horizontale Flexbox (align-items: center). - À gauche (
flex: 0 0 58%) : Image de l'article (border-radius: 14px; height: 290px; object-fit: cover;) avec un badge overlay discret en bas à droiteÀ LA UNE(right: 56px;pour ne jamais être masqué par le chevauchement). - À droite (
flex: 1; margin-left: -40px; position: relative; z-index: 2;) : Boîte blanche arrondie chevauchant le bord droit de l'image (background: #fff; border: 1px solid #cbd5e1; border-radius: 14px; padding: 1.75rem; box-shadow: 0 10px 25px rgba(0,0,0,0.06); text-align: center;) contenant :- Le titre de l'article (ou surtitre
À LA UNE+ titre). - La description / chapô nettoyé.
- Le bouton pilule encadré (
border: 1.5px solid #1a1a1a; border-radius: 999px; padding: 6px 28px; font-weight: 700;) : « LIRE SUR CGT.FR ↗ » (target="_blank" rel="noopener noreferrer").
- Le titre de l'article (ou surtitre
- Responsive mobile (
< 768px) :flex-direction: column,margin-left: 0,margin-top: -24px.
- Conteneur centré aligné sur la largeur de la grille des 3 cartes ci-dessous (
- Grille inférieure (3 colonnes : ARTICLE 1, ARTICLE 2, ARTICLE 3) :
- Grille CSS
grid-template-columns: repeat(3, 1fr); gap: 1.5rem; max-width: 1040px; margin: 0 auto;(1 colonne sous768px). - Chaque carte affiche l'image en haut (
height: 190px; width: 100%; object-fit: cover; border-radius: 14px;), puis une boîte blanche arrondie qui remonte par-dessus le bas de l'image (margin-top: -24px; position: relative; z-index: 2; background: #fff; border: 1px solid #cbd5e1; border-radius: 14px; padding: 1.25rem; box-shadow: 0 6px 18px rgba(0,0,0,0.05); display: flex; flex-direction: column; text-align: center; flex: 1;) contenant :- Le titre de l'article en gras.
- La description courte (~120 caractères).
- En bas (
margin-top: auto; padding-top: 1rem;), le bouton pilule encadré « Lire la suite → » (target="_blank" rel="noopener noreferrer").
- Grille CSS
- Bloc supérieur « À LA UNE » :
Section 5 : Parcours « SALARIÉS ISOLÉS & TPE : VOUS N'ÊTES PAS SEULS »
- Fond : Blanc (
#ffffff). - Contenu (entièrement éditable dans l'admin) :
- Bloc pédagogique destiné aux salariés des petites entreprises (< 11 salariés), commerces, artisanat ou chantiers sans CSE[cite: 6].
- Met en avant la confidentialité absolue de toute démarche vis-à-vis de l'employeur, le rattachement direct au syndicat Multipros de l'Union Locale, et l'accompagnement par les Conseillers du Salarié lors des entretiens préalables[cite: 6].
- Bouton d'action rouge CGT : « Contacter l'UL en toute confidentialité »[cite: 6].
Section 6 : Vie Militante, Formation Syndicale (CFESES) & Appli Mobile
- Fond : Gris doux (
#f1f3f5). - Grille adaptative (2 colonnes si l'Appli Mobile est activée, 1 colonne centrée sinon) :
- Colonne gauche — Formation Syndicale (CFESES) : Rappelle le droit légal de chaque salarié au Congé de Formation Économique, Sociale, Environnementale et Syndicale (maintien de salaire, demande à remettre à l'employeur 30 jours avant) et l'aide à la vie syndicale[cite: 6, 8].
- Colonne droite — L'Application Mobile UL CGT Foix Haute-Ariège (désactivable et désactivée par défaut) : Présente l'application Android/KMP (actualités locales, alertes mobilisation Push, carte de syndiqué virtuelle & 13 timbres 100 % hors-ligne) avec emplacement pour le lien de téléchargement direct (
.apk/ Play Store) et l'image QR Code (configurables et activables dans l'admin)[cite: 8].
Section 7 : Réseau Syndical CGT
- Fond : Blanc (
#ffffff). - Grille de 5 cartes verticales (logo officiel circulaire/encadré en haut, titre, description courte, bouton « Visiter le site ↗ ») vers l'écosystème confédéral et départemental : UD CGT 09, Confédération CGT (
cgt.fr), La NVO (nvo.fr), IHS CGT, INDECOSA-CGT[cite: 6].
5. PIED DE PAGE (footer.php) — SOUVERAIN & PRATIQUE
- Aucune mention "Propulsé par WordPress" ou "Thème..."[cite: 6].
- Fond sombre (
#1c1e21), texte blanc/gris clair, grille 3 colonnes :- Union Locale CGT Foix Haute-Ariège : Logo version blanche (
assets/img/banniere-ul-blanc.png, modifiable dans l'admin), courte présentation (union de tous les syndicats du périmètre & syndicat Multipros pour les isolé·e·s), et appel militant : « Une lutte dans votre entreprise, une info à partager ? Contactez l'UL ». - Nos Locaux & Permanences (visible sur 100 % des pages) :[cite: 6]
- Adresse :
Espace Sabart, 10 Av. de l'Ayroule, 09400 Tarascon-sur-Ariège(modifiable dans l'admin)[cite: 7]. - Téléphone cliquable :
07 60 49 64 69[cite: 7] - Email cliquable :
union-locale@cgt-fha.fr[cite: 7] - Horaires des permanences d'accueil et juridiques (éditables)[cite: 6].
- Lien vers la page Facebook officielle de l'UL[cite: 7].
- Adresse :
- Accès rapides & Mentions : Liens vers Actualités, Calendrier, Se syndiquer, Urgence salarié, Mentions légales & Confidentialité.
- Union Locale CGT Foix Haute-Ariège : Logo version blanche (
6. PANNEAU D'ADMINISTRATION WORDPRESS (inc/theme-options.php)
Crée une page de réglages complète et intuitive dans Apparence > Réglages UL CGT (organisée en onglets propres sans dépendance JS externe) permettant de modifier sans coder :
- Onglet 1 — Identité & Coordonnées : Téléphone, E-mail, Adresse des locaux, Horaires des permanences, URL Facebook, URL page Syndiquez-vous, URL page Besoin d'aide / Contact.
- Onglet 2 — Bandeau Mobilisation : Case Activer, Texte du mot d'ordre & lieu, Lien URL optionnel, Champ
datetime-locald'expiration automatique[cite: 6]. - Onglet 3 — Page d'accueil (Hero & Blocs statiques) :
- Sélecteur d'image de fond du Hero (via la Médiathèque WP
wp_enqueue_media()), Titre H1, Citation, Libellés et liens des 2 boutons du Hero. - Champs pour les 3 cartes « À quoi nous servons ? » (choix d'icône SVG, titre, description pour chaque carte).
- Champs pour les blocs Salariés isolés / TPE, Formation CFESES et Application Mobile (URL APK/Store + sélecteur image QR Code + cases pour afficher/masquer chaque bloc)[cite: 6, 8].
- Sélecteur d'image de fond du Hero (via la Médiathèque WP
- Onglet 4 — Flux Confédéral (
cgt.fr) : État du cache actuel (date de dernière synchronisation, aperçu de l'article À la une en cache) et bouton de rafraîchissement manuel immédiat.
7. SEO LOCAL, OPENGRAPH & PERFORMANCE (inc/seo-performance.php)
- Balises
<title>et<meta name="description">:- Sur la page d'accueil :
Union Locale CGT Foix Haute-Ariège | Défense des salariés et action syndicale[cite: 6]. - Sur les articles et pages :
[Titre] | Union Locale CGT Foix Haute-Ariège+ meta description extraite automatiquement du contenu nettoyé[cite: 6].
- Sur la page d'accueil :
- Balises OpenGraph : Injection automatique de
og:title,og:description,og:url,og:type,og:locale(fr_FR) etog:image(image à la une ou image Hero par défaut) pour des aperçus propres sur Facebook, WhatsApp et SMS[cite: 6]. - Alerte Indexation Admin : Si
get_option('blog_public') == '0', affiche une alerte rouge dans le tableau de bord WordPress invitant à autoriser l'indexation dans Réglages > Lecture[cite: 6]. - Optimisation & Nettoyage : Suppression de
wp-emojietwp-embed, ajout deloading="lazy"sur les images hors ligne de flottaison, échappement systématique (esc_html,esc_url,esc_attr,wp_kses_post)[cite: 6].
8. GESTION DE VERSIONS, MISE À JOUR GITEA & PUBLICATION
- Dépôt distant public :
https://git.cgt-fha.fr/Union_Locale_CGT_Foix_Haute-Ariege/cgt-wp-theme.git(branche principale :main). - Mise à jour en un clic depuis WordPress (
inc/class-cgt-gitea-updater.php) :- Vérification directe sans jeton d'authentification sur
https://git.cgt-fha.fr/Union_Locale_CGT_Foix_Haute-Ariege/cgt-wp-theme/raw/branch/main/style.css(cache Transient 6 h). - Téléchargement via
https://git.cgt-fha.fr/Union_Locale_CGT_Foix_Haute-Ariege/cgt-wp-theme/archive/main.zipet renommage automatique du dossier extrait versget_stylesheet()(upgrader_source_selection, compatible mises à jour unitaires et groupées). - Préservation stricte de
wp_options(cgt_fha_options), des menus et des médias lors de chaque mise à jour.
- Vérification directe sans jeton d'authentification sur
- Documentation & Aperçu :
README.md(documentation d'utilisation et de mise à jour en français) etscreenshot.png(1200x900pxpour Apparence > Thèmes). - Fichier
.gitignore: Exclut les fichiers système (.DS_Store,Thumbs.db), les éditeurs (.vscode/,.idea/), et d'éventuels dossiers temporaires, tout en conservant le code source du thème,README.mdetAGENTS.md. - Compatibilité déploiement VPS : Tous les chemins dans le thème utilisent exclusivement les fonctions natives WordPress (
get_template_directory(),get_template_directory_uri(),get_stylesheet()) afin que le déploiement automatisé vers/var/www/fastuser/data/www/cgt-fha.fr/wp-content/themes/cgt-fha/fonctionne sans aucune dépendance de chemin en dur[cite: 6].
9. ARBORESCENCE DES FICHIERS À GÉNÉRER
/
├── AGENTS.md # Ce cahier des charges
├── README.md # Documentation du thème & procédure de mise à jour Gitea
├── screenshot.png # Aperçu visuel 1200x900px dans Apparence > Thèmes
├── .gitignore # Exclusions propres pour Gitea
├── style.css # En-tête thème WP + Variables CSS + Design System complet
├── theme.json # Palette couleurs CGT (#d20012) & réglages éditeur
├── functions.php # Chargement des modules, supports WP, menus, enqueues
├── header.php # Topbar, Bandeau Mobilisation auto-expirant, Nav responsive
├── footer.php # Footer 3 colonnes avec coordonnées Espace Sabart & liens CGT
├── front-page.php # Page d'accueil complète (7 sections fidèles à la maquette)
├── home.php # Liste paginée des actualités locales de l'UL
├── single.php # Gabarit d'article local (partage social, catégorie, navigation)
├── page.php # Gabarit de page standard (Contact, Calendrier, Syndiquez-vous...)
├── archive.php # Archives par catégorie/étiquette locale
├── 404.php # Page d'erreur 404 utile avec recherche et liens vers l'UL
├── index.php # Gabarit de secours WordPress requis
├── inc/
│ ├── class-cgt-confederal-feed.php # Scraper cgt.fr + cache Transients + WP-Cron + rendu wireframe
│ ├── class-cgt-gitea-updater.php # Mise à jour WordPress en un clic depuis le dépôt public Gitea
│ ├── theme-options.php # Page d'admin WP : Réglages UL CGT + migration non destructive
│ └── seo-performance.php # Titres SEO locaux, OpenGraph, alerte indexation, nettoyage WP
└── assets/
├── js/main.js # Menu mobile accessible & onglets admin (Vanilla JS)
└── img/ # Bannières UL (noir/blanc), hero-ariege.jpg, logos réseau CGT, SVG