Design System
Tous les formats éditoriaux disponibles pour construire les pages du site. Chaque composant montre le rendu, sa classe CSS, et le code HTML à copier.
Couleurs
Palette de marque Fournisseurs-Gaz. Utilisez les tokens CSS pour garantir la cohérence, jamais de valeurs hex hardcodées.
Typographie
Hiérarchie de titres et styles de texte disponibles dans .art-body. Règle : un seul H1 par page, au moins 2 sous-titres sous chaque parent (jamais de sous-titre isolé).
Titre H2 — Titre de section
Titre H3 — Sous-section
Titre H4 — Paragraphe
Paragraphe courant avec du texte en gras et un lien vers une autre page. Le corps de l'article utilise Inter en 16px avec une hauteur de ligne de 1.7 pour un confort de lecture maximal.
Paragraphe avec drop cap — la première lettre est agrandie. À utiliser une seule fois, au tout début de l'article, après le lead.
Code HTML
<h2>Titre H2</h2>
<h3>Titre H3</h3>
<h4>Titre H4</h4>
<p>Paragraphe courant avec <strong>gras</strong> et <a href="#">lien</a>.</p>
<p class="has-dropcap">Paragraphe avec drop cap...</p>Icônes R2 / background-image
Les icônes proviennent du sprite Selectra Design. Les SVG pré-colorés sont hébergés sur le R2 Fournisseurs-Gaz (images.fournisseurs-gaz.com/fournisseurs-gaz.com/icons/colored/) et affichés en background-image. Pour une nouvelle variante de couleur, uploader un SVG supplémentaire avec le fill voulu.
Code HTML & CSS
<!-- HTML : simple <span> — l'icône vient du CSS de la variante parent -->
<span class="al-ic" aria-hidden="true"></span>
/* CSS : SVG pré-colorés sur R2, chargés en background-image (cross-origin OK, pas besoin de CORS) */
.al-ic {
width: 28px; height: 28px;
display: block;
background-size: contain;
background-position: center;
background-repeat: no-repeat;
}
.alert.info .al-ic {
background-image: url('https://images.fournisseurs-gaz.com/fournisseurs-gaz.com/icons/colored/info-blue.svg');
}Barre de progression .progress-bar
Fine barre orange fixée en haut de la fenêtre, indique la progression de lecture d'un article (proportionnelle au scroll). Ajoutée automatiquement dans le layout article via article-design.js. Hauteur 3px, accompagnée d'un léger glow orange.
Code HTML
<div class="progress-bar"></div>
<!-- Un seul élément vide suffit. article-design.js met à jour width
selon la position du scroll dans l'élément .art-body. -->Callouts .alert
Blocs éditoriaux pour mettre en avant une information contextuelle. Une seule classe suffit : alert + la variante. Structure HTML identique pour toutes : icône + titre H4 + paragraphe.
Variantes sémantiques
Utilisent le code couleur universel (bleu=info, orange=tip, ambré=warning, vert=success, rouge=error).
Précision factuelle ou complément d'explication. Fond bleu clair, neutre et pédagogique.
Conseil pratique, astuce, insight éditorial. Fond orange clair, couleur de marque.
Point d'attention, risque financier, piège à éviter. Fond ambré.
Valider une action, confirmer un choix, signaler un avantage clair. Fond vert clair.
Information critique, danger. À utiliser avec parcimonie. Fond rouge clair.
Variantes thématiques
Chaque variante thématique embarque son fond + son icône spécialisée. Utile pour signaler immédiatement la nature de l'info (prix, durée, garantie, compteur, etc.).
Pour chiffrer un coût, signaler une évolution de tarif, ou détailler une grille tarifaire. Fond bleu, icône euro.
Pour rassurer sur un engagement légal, une certification, une garantie d'origine. Fond bleu, icône bouclier.
Spécifique aux contextes gaz naturel, chauffage, combustion. Fond orange, icône flamme.
Pour une astuce d'économie d'énergie, un geste écologique, une bonne pratique. Fond orange, icône ampoule.
Pour rappeler les pièces à rassembler, détailler une étape administrative. Fond vert, icône presse-papier.
Checklist courte, critères à vérifier, validation positive. Fond vert, icône coche.
Pour signaler une date butoir, un calendrier de paiement, une échéance réglementaire. Fond neutre, icône calendrier.
Temps de lecture d'une démarche, délai de bascule fournisseur, durée d'un engagement. Fond neutre, icône chronomètre.
Relevé de consommation, numéro PCE, conversion m³ → kWh. Fond neutre, icône compteur gaz.
Mentions légales, clauses contractuelles, où trouver une info sur la facture. Fond neutre, icône document.
Code HTML
<div class="alert info">
<span class="al-ic" aria-hidden="true"></span>
<div class="al-body">
<div class="al-title">Titre du callout</div>
<p>Contenu avec <strong>du gras</strong> et des liens possibles.</p>
</div>
</div>
<!-- Sémantiques : info · tip · warning · success · error -->
<!-- Thématiques : pricing · guarantee · gas · eco · step · check ·
deadline · duration · meter · contract -->
<!-- Une seule classe de variante par callout. Fond + icône inclus. -->TL;DR .tldr-card
Encadré récapitulatif en début d'article. À passer via le slot tldr de <x-layouts.article>. Liste de 5 à 8 puces essentielles.
- Le Prix Repère Gaz de la CRE sert de référence depuis la fin du TRVG en juillet 2023 ;
- L'offre la moins chère est Spéciale Gaz de TotalEnergies à 0,0996 €/kWh ;
- Le prix du gaz varie selon la zone tarifaire GRDF (1 à 6) ;
- Comparer les offres peut faire économiser plus de 100 €/an sur la facture.
Code HTML
<x-slot:tldr>
<li>Premier point clé ;</li>
<li>Deuxième point clé ;</li>
<li>Troisième point clé.</li>
</x-slot:tldr>Chiffres clés .keyfigs
Grille de 2 à 4 chiffres clés pour mettre en avant des données importantes (prix, volumes, moyennes). Source en libellé discret en bas.
Code HTML
<div class="keyfigs">
<div>
<div class="val">0,1042<span class="sup">€/kWh</span></div>
<div class="lab">Libellé du chiffre</div>
<div class="src">Source de la donnée</div>
</div>
</div>Avis d'expert .expert
Verdict éditorial d'un rédacteur Selectra sur une offre ou un fournisseur. Format : photo de l'auteur (round 120 px) + citation + note optionnelle (sur 5 ou /10). Mettre la photo réelle de l'auteur depuis config/authors.php via une balise <img> dans .ex-photo. Les initiales (texte brut dans .ex-photo) restent un fallback acceptable si la photo n'est pas disponible.
Code HTML — avec photo (recommandé)
<div class="expert">
<div class="ex-photo">
<img src="https://images.fournisseurs-gaz.com/fournisseurs-gaz.com/authors/matias-perea.webp"
alt="Matias Perea, Expert marché de l'énergie chez Selectra"
loading="lazy" decoding="async" width="120" height="120">
</div>
<div>
<div class="ex-label">Avis Selectra</div>
<div class="ex-text">« Citation du verdict éditorial. »</div>
<div class="ex-by"><strong>Nom Rédacteur</strong> · Titre</div>
</div>
<div class="ex-score">8,5<small>/10</small></div>
</div>Code HTML — fallback initiales
<div class="expert">
<div class="ex-photo">MP</div>
<div>
<div class="ex-label">Avis Selectra</div>
<div class="ex-text">« Citation du verdict éditorial. »</div>
<div class="ex-by"><strong>Nom Rédacteur</strong> · Titre</div>
</div>
</div>Exemple concret .example
Encadré pour illustrer un calcul, une mini-histoire ou un cas concret chiffré. Fond bleu clair, rail orange à gauche, label « Exemple concret » et icône ampoule générés automatiquement par le CSS. L'éditeur écrit juste .example + un .b-title — ce dernier est rendu comme un titre de bloc (même style que .alert .al-title : font display 20 px, bold, ink-900).
Sophie quitte un T2 à Paris pour un T3 chauffé au gaz à Lyon. Elle souscrit chez un nouveau fournisseur le 10 du mois pour une prise d'effet le 26. GRDF intervient en standard (5 jours ouvrés) pour 22,34 €. Total des frais : 22,34 €. En choisissant une offre 9 % moins chère que l'ancienne, elle économise 156 € sur l'année.
Code HTML
<div class="example">
<div class="b-title">Sujet de l'exemple (personnage nommé ou titre du calcul)</div>
<p>Contenu chiffré de l'exemple.</p>
</div>
<!-- Le label "Exemple concret" + l'icône ampoule sont générés par
.example::before — ne pas le saisir manuellement. -->Définition .def
Encadré pour définir un terme technique ou un sigle. À utiliser pour expliquer un jargon métier (CTA, TRVG, PEG, etc.).
- PRG — Prix Repère Gaz
- Indicateur mensuel publié par la CRE depuis juillet 2023, qui sert de référence pour comparer les offres de gaz entre elles. Il reflète le coût moyen du gaz pour un consommateur type : approvisionnement, acheminement, taxes et marge commerciale.
Code HTML
<dl class="def">
<dt>Terme à définir</dt>
<dd>Définition complète du terme.</dd>
</dl>
<!-- Le badge § orange et le label « Définition » sont générés
automatiquement par le CSS. L'éditeur écrit juste <dl> + <dt> + <dd>. -->Citation éditoriale .quote-ed
Citation mise en valeur (officielle, rapport, porte-parole). Format sobre avec guillemets typographiques.
« Le Prix Repère Gaz permet aux consommateurs de disposer d'une référence fiable pour comparer les offres de marché, dans un contexte où le Tarif Réglementé n'existe plus. »
Commission de régulation de l'énergie (CRE)
Code HTML
<blockquote class="quote-ed">
<p>« Texte de la citation. »</p>
<cite>Source ou auteur</cite>
</blockquote>Points forts / Points faibles .proscons
Bloc à deux colonnes pour synthétiser les avantages et inconvénients d'une offre ou d'un fournisseur. Carte verte pour les points forts (#f5fbf6 / #cde7d2), carte saumon pour les points faibles (#fdf5f0 / #ebcfbd). Eyebrow en majuscules préfixé d'un tiret cadratin, puces sous forme de pastilles colorées pleines. Règles globales dans article-design.css.
- Prix du kWh compétitif à 0,0996 € sous le Prix Repère Gaz CRE.
- 15 % de gaz vert injecté dans le réseau via Garanties d'Origine.
- Souscription 100 % en ligne, sans engagement et sans frais.
- Abonnement annuel élevé (489,12 € en B1, +6 % vs concurrence).
- Aucune option à prix fixe sur 2 ou 3 ans, exposition à la volatilité.
- Service client noté 3,1/5, en deçà de la moyenne du secteur.
Code HTML
<div class="proscons">
<div class="pros">
<div class="b-title">— Les points forts</div>
<ul>
<li>Avantage 1</li>
<li>Avantage 2</li>
</ul>
</div>
<div class="cons">
<div class="b-title">— Les points faibles</div>
<ul>
<li>Inconvénient 1</li>
<li>Inconvénient 2</li>
</ul>
</div>
</div>Classement d'offres .ds-offer-row
Classement riche inspiré du comparateur-gaz : rang + logo fournisseur + nom d'offre + liste d'avantages + prix + économies + CTA téléphone. Chaque ligne est auto-suffisante, cliquable, et responsive sur mobile (passage en 1 colonne).
-
01
Offre
Spéciale GazPrix fixe 1 an- Prix du kWh fixé 1 an
- Sans engagement
- Souscription 100 % en ligne
1 211 €/an TTC · 0,0996 €/kWhÉconomies de 148 € -
02
Offre
Astucio GazPrix indexé mensuel- Indexé sur le Prix Repère
- 10 % de biométhane français
- Conseillers du lundi au samedi
1 247 €/an TTC · 0,1024 €/kWhÉconomies de 112 € -
03
Offre
Éco GazPrix indexé- Énergie verte certifiée
- Sans frais de résiliation
- Gestion via l'espace client
1 281 €/an TTC · 0,1051 €/kWhÉconomies de 78 €
Code HTML
<ul class="ds-offer-list">
<li class="ds-offer-row">
<span class="rank">01</span>
<div class="supplier">
<div class="lg"><img src="logo-url" alt="Fournisseur"></div>
<div>
<p class="offer-kicker">Offre</p>
<div class="b-title">Nom de l'offre</div>
<span class="ofn">Type de tarif</span>
</div>
</div>
<ul class="checklist">
<li>Avantage 1</li>
<li>Avantage 2</li>
<li>Avantage 3</li>
</ul>
<div class="price-cell">
<div class="pr">1 211 €<small>/an TTC · 0,0996 €/kWh</small></div>
<span class="eco">Économies de 148 €</span>
</div>
<div class="cta">
<a class="row-phone" href="tel:...">09 75 18 41 65</a>
<a href="..." class="row-online">Découvrir l'offre →</a>
</div>
</li>
</ul>Timeline .timeline
Chronologie d'événements verticale. Axe gris fin à gauche, jalons en pastille creuse (cerclé gris). Le jalon courant utilise .is-current sur le <li> : pastille orange pleine avec halo. Chaque jalon contient une date mono-space en exergue (.tl-date), un titre display (.tl-title) et une description courte.
-
Juillet 2023Fin du tarif réglementé du gaz
Disparition des anciens tarifs bleus Engie. Les clients basculent automatiquement sur une offre de marché.
-
Janvier 2024Introduction du PRG
La CRE publie chaque mois un prix repère de vente du gaz, destiné à servir de référence au marché.
-
Mai 2026Baisse de 3,2 % sur le PRG
Recul du prix spot européen qui se répercute sur l'indice référence. Premier recul de l'année — jalon courant.
Code HTML
<ol class="timeline">
<li>
<div class="tl-date">Juillet 2023</div>
<div class="tl-title">Titre de l'événement</div>
<p>Description courte.</p>
</li>
<li class="is-current">
<div class="tl-date">Mai 2026</div>
<div class="tl-title">Jalon courant</div>
<p>Pastille orange pleine avec halo.</p>
</li>
</ol>Étapes ol.steps
Liste ordonnée pour un how-to (changer de fournisseur, résilier un contrat, lire son compteur). Numéros Newsreader dans une pastille orange pâle à gauche, titre + description en regard. Sélecteur ol.steps pour éviter tout conflit avec div.steps utilisé sur la home pour un autre layout (grille 3-col « comment ça marche »).
-
Munissez-vous de votre dernière facture
Vous aurez besoin du PCE (14 chiffres), de votre consommation annuelle, et du nom de votre fournisseur actuel.
-
Comparez les offres sur notre simulateur
Entrez votre consommation. Notre outil classe les offres disponibles dans votre commune par économie annuelle.
-
Souscrivez en ligne ou par téléphone
Le nouveau fournisseur résilie automatiquement votre ancien contrat. Pas de coupure, pas de frais, pas d'intervention technique.
Code HTML
<ol class="steps">
<li>
<div>
<div class="b-title">Titre de l'étape</div>
<p>Description détaillée.</p>
</div>
</li>
</ol>
<!-- Le <div> wrapper est obligatoire : .steps > li est un grid à 2 colonnes
(pastille numérotée + contenu). Sans wrapper, le <p> passerait sous
la pastille. Compteur CSS automatique, pas d'attribut value à gérer. -->Podium top-3 .ds-t3-*
Trois cartes d'offres gagnantes, inspirées du podium prix-elec et du pattern Cards--new-design de Selectra Design. Chaque carte a un drapeau coloré en haut (vert = moins cher, orange-foncé = sélection Selectra, jaune = meilleure note). La carte centrale featured est légèrement plus grande et ombrée. Sous chaque carte : logo + offre + étoiles, puis le prix / l'économie en gros, la liste d'arguments, et le CTA téléphone.
Nos 3 meilleures offres de gaz pour réduire votre facture
Comparatif Selectra — mis à jour en avril 2026
Simulation réalisée pour un foyer consommant 11 000 kWh/an, chauffage gaz, zone tarifaire 2. Les économies sont calculées par rapport au Prix Repère de Vente du Gaz (PRVG). Prix susceptibles d'évoluer.
Code HTML (structure globale)
<div class="ds-t3-grid">
<article class="ds-t3-card">
<div class="ds-t3-flag ds-t3-flag--green">Offre la moins chère</div>
<div class="ds-t3-header">
<div class="ds-t3-logo"><img src="..." alt="..."></div>
<div class="ds-t3-meta">
<div class="ds-t3-provider">TotalEnergies</div>
<div class="ds-t3-offer">Spéciale Gaz</div>
<div class="ds-t3-rating">★★★★★ <strong>4,3</strong></div>
<div class="ds-t3-tags"><span class="ds-t3-tag ds-t3-tag--blue">Prix fixe</span></div>
</div>
<div class="ds-t3-score">
<img class="sscore-badge" src="/scores/A-score.svg" alt="Selectra Score A" width="23" height="36">
</div>
</div>
<div class="ds-t3-divider"></div>
<div class="ds-t3-savings">
<div class="ds-t3-savings-label">Économies</div>
<div class="ds-t3-savings-value">−148 €</div>
<div class="ds-t3-savings-note">/an vs le Prix Repère Gaz</div>
</div>
<div class="ds-t3-divider"></div>
<div class="ds-t3-args">...liste des arguments avec coches...</div>
<div class="ds-t3-cta">
<a href="tel:..." class="btn btn-primary btn-lg">09 69 32 14 60</a>
<div class="ds-t3-footer">
<a class="ds-t3-footer-link">Voir les tarifs détaillés</a>
<div class="ds-t3-partner">Partenaire Selectra</div>
</div>
</div>
</article>
</div>
<!-- Variantes de flag : .ds-t3-flag--green · .ds-t3-flag--featured · .ds-t3-flag--yellow
La carte featured utilise .ds-t3-card--featured pour être scalée / centrée. -->Catalogue fournisseur .ds-offer-row
Même format que le classement d'offres, appliqué cette fois au catalogue complet d'un seul fournisseur. Pour les pages /fournisseurs/{provider} qui listent toutes les offres gaz d'un provider (ici TotalEnergies). Le rang sert à ordonner par prix croissant ; le logo reste visible sur chaque ligne pour renforcer l'identité fournisseur.
-
01
Offre
Spéciale GazPrix fixe 1 an- Prix du kWh fixé 1 an
- Remise de 4 % sur le prix repère
- Sans engagement
1 211 €/an TTC · 0,0996 €/kWhÉconomies de 148 € -
02
Offre
Heures Éco GazPrix indexé · heures creuses- −50 % sur le kWh de 22 h à 6 h
- Indexé sur le Prix Repère Gaz
- Gestion 100 % en ligne
1 248 €/an TTC · 0,1025 €/kWhÉconomies de 111 € -
03
Offre
Essentielle GazPrix indexé mensuel- Indexé sur le Prix Repère Gaz
- Service client 6 jours sur 7
- Parrainage 30 € offert
1 275 €/an TTC · 0,1042 €/kWhÉconomies de 84 € -
04
Offre
Verte Fixe GazPrix fixe 2 ans · 100 % biogaz- Biogaz français certifié d'origine
- Prix du kWh bloqué 2 ans
- Compensation carbone incluse
1 318 €/an TTC · 0,1076 €/kWhÉconomies de 41 €
Code HTML
<!-- Même structure que #ranklist : .ds-offer-list > .ds-offer-row -->
<!-- Différence sémantique : toutes les lignes partagent le même fournisseur. -->
<ul class="ds-offer-list">
<li class="ds-offer-row">
<span class="rank">01</span>
<div class="supplier">
<div class="lg"><img src="logo-fournisseur" alt="..."></div>
<div>
<p class="offer-kicker">Offre</p>
<div class="b-title">Nom de l'offre</div>
<span class="ofn">Type tarifaire</span>
</div>
</div>
<ul class="checklist">...avantages...</ul>
<div class="price-cell">
<div class="pr">1 211 €<small>...</small></div>
<span class="eco">Économies de ... €</span>
</div>
<div class="cta">
<a class="row-phone" href="tel:...">...</a>
<a href="..." class="row-online">Découvrir l'offre →</a>
</div>
</li>
</ul>Carte partenaire .partner
Carte d'offre partenaire avec bordure orange épaisse et badge "Offre partenaire" qui dépasse en haut. Utilisée sur les pages fournisseurs partenaires de Selectra (EDF, Engie, TotalEnergies, etc.) — oblige à afficher la mention commerciale.
Prix fixe 1 an, abonnement économique.
Code HTML
<article class="partner">
<div class="prt-grid">
<div class="prt-lg" style="background: #...">T</div>
<div>
<div class="b-title">Spéciale Gaz — TotalEnergies</div>
<p class="prt-sub">Tagline courte.</p>
<div class="prt-tags">
<span>...badges...</span>
</div>
</div>
<div class="prt-price">
<div class="prt-price-row">
<strong>1 211 €</strong>
<span class="info-tip" data-tip="Détails...">ⓘ</span>
</div>
<small>/an TTC</small>
</div>
</div>
</article>
<!-- Le badge "Offre partenaire" en haut-gauche est généré automatiquement
par .partner::before. -->Selectra Score .sscore
Badge de notation A→E, inspiré du Nutri-Score. Deux déclinaisons :
maxi — échelle horizontale A à E avec la lettre courante mise en évidence (taille 1,45× + z-index) via l'attribut data-grade. Format identique à celui utilisé dans les lignes du comparateur.
mini — badge vertical mono-lettre pré-rendu en SVG (hébergé sur R2), affiché dans les cartes compactes (podium top-3, tableaux d'offres).
Version maxi — échelle A à E (lignes comparateur) ↓
Version mini — badge SVG mono-lettre (top-3, tableaux) ↓
Variante .sscore-badge-sm (hauteur 24 px, intégration tableaux serrés) ↓
Code HTML
<!-- Version maxi : échelle horizontale A-E, data-grade boost la lettre courante -->
<div class="sscore sscore-mini" data-grade="B">
<span class="sscore-grades">
<span>A</span><span>B</span><span>C</span><span>D</span><span>E</span>
</span>
</div>
<!-- Version mini : badge SVG pré-rendu hébergé sur R2 -->
<img class="sscore-badge"
src="https://images.fournisseurs-gaz.com/scores/B-score.svg"
alt="Selectra Score B" width="23" height="36" loading="lazy">
<!-- Variante petite (tableaux serrés) : ajouter .sscore-badge-sm -->
<img class="sscore-badge sscore-badge-sm" src="..." alt="..." width="15" height="24">
<!-- Fichiers disponibles : /scores/{A|B|C|D|E}-score.svg -->Tableau de données .ds-savings-table
Tableau éditorial sobre : header bleu uppercase, colonne 1 en gras, chiffres alignés en tabular-nums, mise en valeur d'une métrique clé (.eco en vert mono). Format repris de la section « Combien peut-on vraiment économiser ? » du comparateur.
| Profil de consommation | Conso annuelle | Facture médiane | Meilleure offre | Économie/an |
|---|---|---|---|---|
| Petit foyer (cuisson seule) | ~1 000 kWh | 280 € | 232 € | −48 € |
| Foyer moyen (eau chaude) | ~6 000 kWh | 960 € | 845 € | −115 € |
| Maison chauffage gaz | ~14 000 kWh | 1 797 € | 1 549 € | −248 € |
| Grande maison | ~20 000 kWh | 2 408 € | 2 076 € | −332 € |
Estimations TTC calculées à partir des offres disponibles pour Lyon (zone 1), au 22/04/2026. Votre résultat réel dépend de votre consommation relevée.
Code HTML
<div class="ds-savings-table-wrap">
<table class="ds-savings-table">
<thead>
<tr>
<th>Profil</th><th>Conso</th><th>Médiane</th><th>Meilleure</th><th>Économie</th>
</tr>
</thead>
<tbody>
<tr>
<td>Libellé en gras</td>
<td>~6 000 kWh</td>
<td>960 €</td>
<td>845 €</td>
<td><strong class="eco">−115 €</strong></td>
</tr>
</tbody>
</table>
</div>
<p class="tbl-caption">Légende ou source du tableau.</p>Onglets .tabs
Onglets horizontaux avec underline orange sur l'onglet actif, pilotés par Alpine.js. Utile pour présenter des déclinaisons (consommation/abonnement/services, classes tarifaires, zones, profils) sans allonger la page.
Votre consommation annuelle (kWh) dépend surtout de la surface chauffée au gaz et de l'isolation du logement. Un T2 de 50 m² consomme en moyenne 12 500 kWh/an.
L'abonnement est identique chez tous les fournisseurs (fixé par la CRE). Seul le prix du kWh varie, c'est là que se jouent les économies.
Option verte, paiement mensualisé, service client étendu : autant de services qui peuvent faire pencher la balance entre deux fournisseurs à prix équivalent.
Code HTML
<div class="tabs" x-data="{ tab: 't1' }">
<div class="tab-list" role="tablist">
<button type="button" class="tab-btn" :class="{ 'on': tab === 't1' }" @click="tab = 't1'" data-tab="t1" role="tab">Onglet 1</button>
<button type="button" class="tab-btn" :class="{ 'on': tab === 't2' }" @click="tab = 't2'" data-tab="t2" role="tab">Onglet 2</button>
</div>
<div class="tab-panel" :class="{ 'on': tab === 't1' }" data-tab="t1">Contenu 1</div>
<div class="tab-panel" :class="{ 'on': tab === 't2' }" data-tab="t2">Contenu 2</div>
</div>
<!-- IMPORTANT : les attributs data-tab sont obligatoires.
article-design.js utilise un switch vanilla en plus d'Alpine,
qui se base sur data-tab pour cibler le bon panel. -->FAQ .faq
Liste de questions/réponses dépliables (balise native <details>, aucun JS requis pour l'affichage). Toutes les questions sont fermées par défaut — y compris la première — pour laisser l'utilisateur choisir ce qu'il ouvre et éviter de casser le rythme de lecture. Un schéma JSON-LD FAQPage est injecté en tête de page à partir du même tableau PHP : une seule source de vérité pour l'affichage et le SEO.
Comment changer de fournisseur sans coupure ?
Le nouveau fournisseur résilie automatiquement votre ancien contrat. Aucune intervention technique, pas de coupure, pas de frais. Délai moyen de bascule : 21 jours.
Quelle différence entre PRG et tarif réglementé ?
Le tarif réglementé a disparu en juillet 2023. Le PRG est un indice mensuel publié par la CRE, qui sert de référence aux fournisseurs pour construire leurs offres, sans leur être imposé.
Les offres vertes sont-elles plus chères ?
L'option verte (biogaz ou compensation carbone) coûte en moyenne 1,5 à 3 % de plus que l'équivalent non-vert chez le même fournisseur.
Code Blade + JSON-LD FAQPage
@php
$faqItems = [
['q' => 'Question 1 ?', 'a' => 'Réponse 1.'],
['q' => 'Question 2 ?', 'a' => 'Réponse 2.'],
];
$faqSchema = [
'@context' => 'https://schema.org',
'@type' => 'FAQPage',
'mainEntity' => array_map(fn ($i) => [
'@type' => 'Question',
'name' => $i['q'],
'acceptedAnswer' => ['@type' => 'Answer', 'text' => $i['a']],
], $faqItems),
];
@endphp
@push('head')
<script type="application/ld+json">{"@context":"https://schema.org","@type":"FAQPage","mainEntity":[{"@type":"Question","name":"Comment changer de fournisseur sans coupure ?","acceptedAnswer":{"@type":"Answer","text":"Le nouveau fournisseur résilie automatiquement votre ancien contrat. Aucune intervention technique, pas de coupure, pas de frais. Délai moyen de bascule : 21 jours."}},{"@type":"Question","name":"Quelle différence entre PRG et tarif réglementé ?","acceptedAnswer":{"@type":"Answer","text":"Le tarif réglementé a disparu en juillet 2023. Le PRG est un indice mensuel publié par la CRE, qui sert de référence aux fournisseurs pour construire leurs offres, sans leur être imposé."}},{"@type":"Question","name":"Les offres vertes sont-elles plus chères ?","acceptedAnswer":{"@type":"Answer","text":"L'option verte (biogaz ou compensation carbone) coûte en moyenne 1,5 à 3 % de plus que l'équivalent non-vert chez le même fournisseur."}}]}</script>
@endpush
<div class="faq">
@foreach($faqItems as $item)
<details>
<summary>Les offres vertes sont-elles plus chères ?</summary>
<div class="faq-body"><p>L'option verte (biogaz ou compensation carbone) coûte en moyenne 1,5 à 3 % de plus que l'équivalent non-vert chez le même fournisseur.</p></div>
</details>
@endforeach
</div>Phone CTA fournisseur .phone-cta-provider
Variante enrichie pour les pages fournisseur : fond crème, badge blanc d'économies avec check vert, titre Inter avec accent orange sur la dernière clause, logo fournisseur centré au-dessus du bouton, bouton plein orange avec kicker « APPELEZ — SERVICE GRATUIT » en petites caps. Mention légale Selectra en pied avec filet supérieur. À placer au-dessus du pli sur les pages fournisseur à forte intention (EDF, TotalEnergies, Engie). Remplacer logo, nom et description selon le fournisseur. Stacke en colonne sous 900px.
Code HTML
<aside class="phone-cta-provider" aria-label="Parler à un conseiller EDF">
<div class="pcp-main">
<div class="pcp-txt">
<div class="pcp-badge">
<span class="pcp-badge-ic" aria-hidden="true"><svg>...</svg></span>
<span>Jusqu'à <strong>350 €</strong> d'économies<sup>(1)</sup></span>
</div>
<h3 class="pcp-title">
Infos et souscriptions EDF :
<span class="pcp-accent">un conseiller vous accompagne.</span>
</h3>
<p>Obtenez toutes les informations sur les offres EDF…
<strong>Service gratuit, sans engagement.</strong></p>
</div>
<div class="pcp-right">
<div class="pcp-logo"><img src="..." alt="Logo EDF"></div>
<a href="tel:..." class="pcp-phone">
<span class="pcp-phone-ic" aria-hidden="true"><svg>...</svg></span>
<span class="pcp-phone-txt">
<small>Appelez — service gratuit</small>
<strong>09 69 32 14 60</strong>
</span>
</a>
</div>
</div>
<p class="pcp-mention">Service Selectra non surtaxé…</p>
</aside>
<!-- Règle légale : la mention .pcp-mention est obligatoire (service Selectra, courtier).
L'accent orange se pose UNIQUEMENT sur la clause finale du titre (la promesse conseiller). -->Phone CTA 2 .phone-cta-2
Bloc inline éditorial à insérer entre les sections H2 (matrix de placement dans convention.md). Badge d'économies vert avec .info-tip qui expose la méthodologie au survol — pas de <sup>(1)</sup> ni de mention légale en pied par défaut (cf. règle tooltip, not footnote dans convention.md). Layout 2-col : bloc texte à gauche, CTA téléphone centré verticalement à droite.
Code HTML
<aside class="phone-cta-2" aria-label="Parler à un conseiller Selectra">
<div class="pc2-main">
<div class="pc2-txt">
<div class="pc2-badge">
<span class="pc2-badge-ic" aria-hidden="true"><svg>...</svg></span>
<span>Jusqu'à <strong>350 €</strong> d'économies</span>
<span class="info-tip" data-tip="Estimation basée sur…" tabindex="0" aria-label="Détails du calcul">
<svg>...</svg>
</span>
</div>
<h3 class="pc2-title">
Un conseiller Selectra
<span class="pc2-accent">compare pour vous.</span>
</h3>
<p>Il identifie une offre adaptée à votre profil et souscrit à votre place.</p>
</div>
<a href="tel:..." class="pc2-phone">
<span class="pc2-phone-ic" aria-hidden="true"><svg>...</svg></span>
<span class="pc2-phone-txt">
<small>Appelez — service gratuit</small>
<strong>09 74 59 22 94</strong>
</span>
</a>
</div>
</aside>
<!-- Page générique : pas de .pc2-mention. La mention légale n'est requise que sur
les pages partenaire / non-partenaire / Engie / Enedis-GRDF (cf. /monetisation). -->Phone CTA hero .phone-cta-hero
Variante compacte en rail étroit (~440px max) destinée à la colonne droite du hero article. Fond blanc, bord unique, coin arrondi, ombre douce. Le badge d'économies est suivi d'un .info-tip qui expose la méthodologie du calcul au survol — plus de <sup>(1)</sup> ni de mention légale en pied par défaut. Cette CTA est alimentée par les props ctaHeadline, ctaText, ctaSavings, ctaTooltip, ctaAnnonce de <x-layouts.article>.
Page éditoriale générique (sans annonce légale)
Page fournisseur partenaire (avec logo et annonce)
Code Blade (via x-layouts.article)
<x-layouts.article
ctaHeadline="Votre déménagement gaz clés en main —"
ctaAccentHeadline="un conseiller s'occupe de tout."
ctaText="Résiliation, comparaison… <strong>Service gratuit.</strong>"
:ctaSavings="$ctaSavings ?? null"
ctaTooltip="Estimation basée sur 14 000 kWh/an à Paris 11ᵉ…"
>
<x-layouts.article
ctaHeadline="Infos et souscriptions EDF :"
ctaAccentHeadline="un conseiller vous accompagne."
ctaText="Obtenez toutes les informations… <strong>Service gratuit.</strong>"
:ctaSavings="$ctaSavings ?? null"
ctaTooltip="Estimation basée sur 6 000 kWh/an en 6 kVA option Base…"
ctaAnnonce="Annonce — Service Selectra partenaire d'EDF pour une sélection d'offres…"
ctaLogo="https://images.fournisseurs-gaz.com/logos/fournisseurs/edf-md.png"
ctaLogoAlt="Logo EDF"
>La mention .pch-mention (annonce légale) n'apparaît QUE si la prop ctaAnnonce est explicitement fournie. Sur une page éditoriale générique (prix, guide, FAQ), laissez-la vide. Sur une page fournisseur partenaire, Engie, Enedis ou non-partenaire, la mention est obligatoire selon les règles de /monetisation.
Comparateur intégré .art-comparator
Formulaire à insérer dans le corps d'un article pour rediriger le lecteur vers le comparateur de gaz avec sa commune et sa consommation pré-remplies. Le titre suit le même format que .phone-cta-2 (30 px, accent orange). Bouton sur sa propre ligne, champs ville et consommation à 50/50 sur desktop, empilés sur mobile (< 720 px). Réutilise le composant Alpine heroCityPicker() de la home — autocomplete commune, validation INSEE, soumission GET vers /comparateur-gaz.
Code Blade
<x-article-comparator />
<x-article-comparator
title="Comparez les offres avant la mise en service —"
accent="Selectra trouve l'offre adaptée à votre commune."
subtitle="Renseignez votre code postal et votre consommation pour obtenir le classement personnalisé des offres disponibles à votre adresse."
buttonLabel="Voir les offres pour ma commune"
/>Props disponibles :
| Prop | Type | Valeur par défaut | Rôle |
|---|---|---|---|
title |
string | « Comparez les offres de gaz pour votre commune — » | Première partie du titre, en noir. Doit se terminer par un tiret cadratin si accent est rempli. |
accent |
string|null | « Selectra trouve l'offre adaptée à votre profil. » | Deuxième partie du titre, en orange (rendue dans <span class="ac-accent">). C'est ici que doit apparaître le mot « Selectra » pour la conformité monétisation. |
subtitle |
string|null | Phrase d'instruction sur la saisie du CP + consommation | Sous-titre éditorial sous le titre. Mettre null pour le supprimer. |
buttonLabel |
string | « Voir les offres pour ma commune » | Libellé du CTA principal (bouton orange). |
Une seule instance par article (deux instances marcheraient grâce aux IDs uniques générés par uniqid(), mais multiplier les blocs de conversion sur la même page nuit à la lisibilité). Respecter la règle de block spacing de la convention : au moins un paragraphe de texte avant et après le widget. Ne pas l'enchaîner directement avec un autre bloc visuel (.phone-cta-2, <x-shortcode>, .alert, etc.).
Sticky mobile .sticky-footer
Barre fixe en bas de l'écran, visible uniquement sur mobile. Design inspiré de prix-elec : fond blanc translucide avec backdrop-blur, ombre portée vers le haut, bouton CTA en orange de marque pleine largeur. Deux états : ouvert (appel téléphonique) / fermé (souscription en ligne ou comparaison). Sur pages fournisseur partenaire, le logo s'affiche à gauche. La barre n'apparaît qu'après 400px de scroll.
État 1 — Conseillers ouverts (CTA appel)
État 2 — Conseillers fermés (CTA comparateur)
État 3 — Avec logo fournisseur partenaire
↑ Aperçus statiques — sur un vrai téléphone, la barre est position: fixed en bas d'écran, md:hidden, apparition après 400px de scroll.
Code HTML (Tailwind + Alpine)
<div
x-data="businessHours(hoursConfig)"
x-cloak
class="fixed bottom-0 inset-x-0 z-40 md:hidden"
>
<div
x-data="{ show: false }"
x-init="const update = () => { show = window.scrollY > 400; };
window.addEventListener('scroll', update, { passive: true });
update();"
:class="show ? 'translate-y-0' : 'translate-y-full'"
class="bg-white/95 backdrop-blur-md border-t border-gray-200 shadow-[0_-6px_20px_rgba(20,36,59,0.08)] px-3 py-2.5 transition-transform duration-200 ease-out"
style="padding-bottom: max(0.625rem, env(safe-area-inset-bottom))"
>
<div class="flex items-stretch gap-2">
<!-- Logo (partenaire uniquement) -->
@if($isPartner)
<img src="{{ $logoUrl }}" alt="..." class="h-7 w-auto max-w-[72px] object-contain shrink-0">
@endif
<!-- Ouvert : CTA appel -->
<a href="tel:{{ $phoneTel }}" x-show="isOpen" x-cloak
class="flex-1 inline-flex items-center justify-center gap-2 bg-primary text-white rounded-xl py-2.5 px-3 shadow-[inset_0_-2px_0_rgba(0,0,0,0.14)] active:scale-[0.98]">
<svg class="w-4 h-4">...</svg>
<span class="flex flex-col leading-tight text-left">
<span class="text-[9px] opacity-85 uppercase tracking-wider">Appel gratuit</span>
<span class="text-[15px] font-extrabold">{{ $phone }}</span>
</span>
</a>
<!-- Fermé : CTA comparateur -->
<a href="/comparateur-gaz" x-show="!isOpen" x-cloak
class="flex-1 inline-flex items-center justify-center gap-1.5 bg-primary text-white text-sm font-bold rounded-xl py-2.5 px-3">
<svg class="w-4 h-4">...</svg>
Comparer les offres
</a>
</div>
</div>
</div>
<!-- Logique ouvert/fermé via x-data="businessHours(...)" (helper Alpine global)
Apparition au scroll > 400px, translate-y-full par défaut -->Mini-diagnostic 3 questions .fg-aides-tool
Outil éditorial à insérer en début d'article pour guider le lecteur vers les sections qui le concernent. Trois questions à choix unique → panneau de résultats avec liste hiérarchisée par niveau d'éligibilité (vert « claire » / ambre « sous conditions »). Le panneau de résultat n'apparaît qu'une fois les trois réponses données — pas de bloc orphelin tant que rien n'est rempli. Aucun CTA téléphonique : l'objectif est uniquement la navigation interne. Le financement éditorial reste assuré par les .phone-cta-2 du flux principal.
Quelles aides pour mon déménagement ?
Trois questions, des aides personnalisées. On vérifie en direct votre éligibilité aux dispositifs nationaux 2026 (CAF, Action Logement, FSL, France Travail, Crous…).
Vous avez droit à
Cliquez sur un dispositif pour aller au détail dans l'article : conditions, démarches, justificatifs.
Markup Blade
<x-tools.diagnostic-aides-demenagement />Anatomie du composant
.fg-aides-rail— bandeau dégradé orange→bleu en haut, signature visuelle de l'outil ;.fg-aides-head— kicker, titre<h2>avec emphase italique sur le sujet, lede courte, pastille de progression0/3;.fg-q-block× 3 — chaque bloc question contient un numéro circulaire (passe au vert quand répondu), un label, et une grille d'options.fg-q-opts.cols-2ou.cols-3;.fg-result— panneau crème (mêmes tokens que.author-footer),x-show="answeredCount === 3", transition opacity 300 ms ;.fg-aide— carte résultat.border-left: 4px solidavec couleur dépendante du niveau (.is-highvert,.is-mediumambre). Première colonne figée à 140 px pour que les montants s'alignent verticalement entre cartes. Bouton flèche.fg-aide-linkà droite, palette assortie au niveau ;.fg-aides-foot— disclaimer légal en bas (« Diagnostic indicatif, chaque organisme reste seul juge… »).
Niveaux d'éligibilité
| Niveau | Classe | Couleur | Sens |
|---|---|---|---|
| Éligibilité claire | .is-high |
vert #0a8023 |
Tous les critères principaux sont remplis sur la base des réponses. |
| Sous conditions | .is-medium |
ambre #d97706 |
Profil compatible mais des conditions secondaires restent à vérifier (ressources, délai, département). |
Réutiliser ce design pour un autre sujet
Le composant est aujourd'hui calé sur les aides au déménagement, mais sa structure visuelle (3 questions → panneau de résultats avec niveaux d'éligibilité) se transpose à n'importe quel sujet où le lecteur a besoin d'un parcours éditorial guidé : aides à la rénovation énergétique, choix d'un mode de chauffage, éligibilité à un dispositif… Pour décliner :
- Dupliquez
components/tools/diagnostic-aides-demenagement.blade.phpsous un nouveau nom (ex :diagnostic-aides-renovation.blade.php) — le CSS scopé par.fg-aides-toolreste tel quel. - Dans la copie Blade, remplacez les libellés des 3 questions et leurs options (icônes lucide-like, valeurs) selon votre sujet. Gardez la structure
.fg-q-block / .fg-q-head / .fg-q-opts.cols-X. - Dupliquez
js/tools/diagnostic-aides-demenagement.jset adaptez la logique du getteraides: unifpar dispositif, attribuantlevel: 'high'ou'medium'selon les réponses. Les champs attendus par carte sontid(ancre dans l'article),title,amount,org,level,note. - Enregistrez le module Alpine dans
js/app.js(Alpine.data('nomDuModule', module)) et référencez-le dans le markup viax-data="nomDuModule()".
À placer en début d'article, juste après le tableau de synthèse ou la première section structurante. Une seule instance par page (la lecture des résultats demande de l'attention — multiplier les outils brouille le message). Chaque entrée de la liste de résultats doit pointer vers une ancre réelle (id sur un <h2> ou <h3> existant dans l'article).
Composants avancés
Ces composants requièrent une intégration plus lourde (Alpine + API + données dynamiques). Ils ne sont pas prévisualisés ici — allez voir leur intégration en production via les liens ci-dessous, puis copiez le pattern depuis la page source.
Courbes d'évolution, barres, donuts, jauges — lazy-loadés via Alpine (x-data="lineChart"). Classes : .chart-line, .chart-bar, .chart-donut, .chart-gauge.
SVG des régions cliquables pour redirection vers pages régionales. Classe : .map-fr.
Formulaire interactif conso/zone/équipement qui calcule un budget annuel. Alpine + API Engine. Classes : .estim-v2, .calcsav.
Saisie adresse + conso, retour classement live de toutes les offres. Classe : .cmp-form. Page dédiée déjà prête.
Tableau ou mini-chart des prix temps réel du gaz sur le marché PEG. Classes : .spot, .heatmap.