Référence interne · goodassur.com
Catalogue des shortcodes
Tous les composants Blade disponibles sur goodassur.com. Chaque shortcode s'utilise avec une seule balise <x-...> dans un fichier Blade. Les widgets « assurance » interrogent l'comparateur Selectra en temps réel.
Classement top N x-goodassur-top-ranking
Liste classée des N meilleures offres pour un profil donné (auto, habitation, mutuelle). Trie par prix, par Selectra Score, par avis clients, ou via une recipe. Sélecteur de profil optionnel.
Conformité (cf. convention-compliance.md) :
- CTA par carte : Devis gratuit en ligne →
/selection/{slug}/{vertical}(partenaire affilié web), 📞 numéro Selectra →/selection/fr-ii-cs-gda{slug}(partenaire phone), Comparer en ligne →/selection/comparateur-assurance-{vertical}(sinon) — résolu par le partialpartials.offer-card-{vertical}override goodassur. - Chaque carte affiche en bas « Prix mis à jour le X ; Selectra Score mis à jour en X » — pas besoin de la répéter dans la caption générale.
- Caption auto en pied de tableau : décrit la source du classement et le critère de tri (par prix, par Selectra Score, moyenne des avis ou sélection éditoriale) — exactement la vérité du tri.
- Mention « ☑ partenaire » n'apparaît que si au moins un partenaire figure dans le tableau (§5.2).
Clone du composant département x-insurance-top-ranking spécifique à goodassur — permet d'évoluer sans impacter selectra.info / en.selectra.info.
$profileKey clé URL-friendly du profil (ex: auto-jeune-conducteur) $vertical auto | habitation | mutuelle (alternative à $profileKey) $profile nom du profil (alternative — résolu via france-insurance.profiles) $sortBy price | score (par défaut price) $limit nombre d'offres (par défaut 5) $priceLevel 0 | 1 | 2 | 'all' (0 = pas chères seulement) $onlyPartners n'inclure que les partenaires Selectra (false par défaut) $insurerSlugs array|csv — restreint à une liste d'assureurs $withProfileSelector affiche un <select> profil au-dessus (false) $verdictDate override date affichée dans la caption (default = mois en cours) $methodologyUrl override lien méthodo (default Selectra Score) <x-slot:caption> slot custom pour remplacer entièrement le footer auto
Exemples
<x-goodassur-top-ranking vertical="mutuelle" profile="Famille" :limit="5" />
<x-goodassur-top-ranking
profileKey="auto-jeune-conducteur"
:limit="3"
:only-partners="true"
/>
<x-goodassur-top-ranking vertical="habitation" :with-profile-selector="true" />
<x-goodassur-top-ranking vertical="mutuelle" profile="Senior 65 ans">
<x-slot:caption>
Classement personnalisé senior, basé sur le profil 65 ans (notre relevé en mai 2026).
</x-slot:caption>
</x-goodassur-top-ranking>Exemple vivant ci-dessous :
Famille
Essentiel F1
137,95 € /mois
Essentiel F3
200,22 € /mois
Active F4
318,33 € /mois
| Soins courants | Remboursement |
|---|---|
| Auxiliaires médicaux | 150% BR |
| Analyse et examen de laboratoire | 150% BR |
| Prothèses externes remboursées par la Sécurité sociale (capillaires, mammaires, oculaires) | 200% BR |
| Transport | 100% BR |
| Médecin généraliste NON OPTAM | 200% BR |
| Médecin spécialiste NON OPTAM | 200% BR |
| Médecin généraliste OPTAM | 275% BR |
| Médecin spécialiste OPTAM | 275% BR |
| Imagerie médicale OPTAM | 275% BR |
| Imagerie médicale NON OPTAM | 200% BR |
| Médicaments à SMR faible (prise en charge par la SS à 15%) | 150% BR |
| Médicaments à SMR modéré (prise en charge par la SS à 30%) | 150% BR |
| Médicaments à SMR important (prise en charge par la SS à 65%) | 150% BR |
| Actes techniques 200% si non optam | 275% BR |
| Hospitalisation | Remboursement |
|---|---|
| Frais d'accompagnement par jour | 50 € |
| Honoraires médicaux et chirurgicaux OPTAM | 300% BR |
| Honoraires médicaux et chirurgicaux NON OPTAM | 200% BR |
| Hospitalisation à domicile | 100% BR |
| Frais de séjour en secteur NON OPTAM | 100% BR |
| Frais de séjour OPTAM | 100% BR |
| Chambre particulière OPTAM par jour | 100 € |
| Forfait journalier hospitalier OPTAM | Frais réels |
| Forfait confort hospitalier par jour | 2 € |
| Optique | Remboursement |
|---|---|
| Monture + 1 verre simple + 1 verre complexe ou très complexe | 300 € |
| Plafond monture | 100 € |
| Lentilles acceptées par la Sécurité sociale par an | 100% BR |
| Lentilles refusées par la Sécurité sociale par an | 100% BR |
| Équipement 100% santé optique | Frais réels |
| Monture + verres complexes | 400 € |
| Monture + verres très complexes | 400 € |
| Monture + verres simples | 250 € |
| Dentaire | Remboursement |
|---|---|
| Orthodontie remboursée par la Sécurité sociale (An1) / 225% (An2) / 250% (An3+) | 200% BR |
| Plafond sur le poste dentaire par an et par bénéficiaire (An1) / 1750€ (An2) / 2000€ (An3+) | 1 500 € |
| Soins et prothèses dentaires non remboursés par la Sécurité sociale par an | 50 € |
| Inlays / Onlays | 100% BR |
| Prothèses dentaires remboursées par l'AMO (An1) / 225% (An2) / 250% (An3+) | 200% BR |
| Soins dentaires | 100% BR |
| Equipement 100% santé dentaire | Frais réels |
| Auditif | Remboursement |
|---|---|
| Equipement 100% santé auditif | Frais réels |
| Prothèses auditives classe 2 par an | 100% BR |
| Médecine douce | Remboursement |
|---|---|
| Actes de prévention | 100% BR |
| Médecine douce | 25 € |
| Cure thermale (hébergement et transport) | 300 € |
Notes moyennes des clients
Famille
Initial
145,84 € /mois
Intermédiaire
183,72 € /mois
Intégral
387,54 € /mois
| Soins courants | Remboursement |
|---|---|
| Auxiliaires médicaux | 200% BR |
| Accompagnement psychologique remboursé par le RO | 100% BR |
| Imagerie médicale OPTAM | 240% BR |
| Imagerie médicale NON OPTAM | 200% BR |
| Analyse et examen de laboratoire | 100% BR |
| Médicaments à SMR important (prise en charge par la SS à 65%) | Frais réels |
| Médicaments à SMR modéré (prise en charge par la SS à 30%) | Frais réels |
| Médicaments à SMR faible (prise en charge par la SS à 15%) | Frais réels |
| Médecin généraliste OPTAM | 240% BR |
| Médecin généraliste NON OPTAM | 200% BR |
| Médecin spécialiste NON OPTAM | 200% BR |
| Médecin spécialiste OPTAM | 240% BR |
| Forfait patient urgences | Frais réels |
| Matériel Médical | 200% BR |
| Transport | 100% BR |
| Actes techniques | 240% BR |
| Hospitalisation | Remboursement |
|---|---|
| Frais d'accompagnement par nuit | 20 € |
| Honoraires médicaux et chirurgicaux OPTAM | 300% BR |
| Honoraires médicaux et chirurgicaux NON OPTAM | 200% BR |
| Hospitalisation à domicile | 100% BR |
| Frais de séjour OPTAM | Frais réels |
| Chambre particulière OPTAM par nuit | 80 € |
| Forfait journalier hospitalier OPTAM | Frais réels |
| Chambre particulière en ambulatoire par jour | 20 € |
| Optique | Remboursement |
|---|---|
| Chirurgie réfractive par an (1ère et 2ème année) / 220€ par an (3ème et 4ème année) / 230€ par an (5ème année et suivantes) | 180 € |
| Lentilles acceptées par la Sécurité sociale par an / +20€ si réseau Kalixia | 180 € |
| Lentilles refusées par la Sécurité sociale par an (1ère et 2ème année) / 220€ par an (3ème et 4ème année) / 230€ par an (5ème année et suivantes) | 180 € |
| Équipement 100% santé optique | Frais réels |
| Monture + verres complexes +40€ dès la 3ème année et +50€ dès la 5ème année | 440 € |
| Monture + verres très complexes +40€ dès la 3ème année et +50€ dès la 5ème année | 440 € |
| Adaptation de la correction visuelle | 100% BR |
| Monture + verres simples +40€ dès la 3ème année et +50€ dès la 5ème année | 250 € |
| Monture + 1 verre simple + 1 verre complexe ou très complexe +40€ dès la 3ème année et +50€ dès la 5ème année | 345 € |
| Plafond monture +10€ si réseau Kalixia | 90 € |
| Dentaire | Remboursement |
|---|---|
| Orthodontie remboursée par la Sécurité sociale par semestre | 200% BR |
| Plafond sur le poste dentaire par an et par bénéficiaire (1ère et 2ème année) / 1600€ (3ème et 4ème année) / 1700€ (5ème année et suivantes) | 1 500 € |
| Soins et prothèses dentaires non remboursés par la Sécurité sociale par an / +50€ si réseau Kalixia | 250 € |
| Prothèses dentaires remboursées par l'AMO +50% si réseau Kalixia | 300% BR |
| Soins dentaires | 100% BR |
| Equipement 100% santé dentaire | Frais réels |
| Auditif | Remboursement |
|---|---|
| Prothèses auditives classe 2 par oreille / +20€ et +20% si réseau Kalixia / +100€ dès la 3ème année et +200€ dès la 5ème année | 180% BR |
| Equipement 100% santé auditif | Frais réels |
| Piles et accessoires | 100% BR |
| Médecine douce | Remboursement |
|---|---|
| Actes de prévention | 100% BR |
| Cure thermale (honoraires et traitement) Forfait global honoraires, traitement, hébergement et transport | 200 € |
| Cure thermale (hébergement et transport) Forfait global honoraires, traitement, hébergement et transport | 200 € |
| Médecine douce | 50 € |
Notes moyennes des clients
Famille
Energik EN1
149,19 € /mois
Pulse PU2
190,53 € /mois
Plénitude P6
474,52 € /mois
| Soins courants | Remboursement |
|---|---|
| Auxiliaires médicaux | 100% BR |
| Médicaments prescrits non remboursés par la Sécurité sociale par an | 30 € |
| Imagerie médicale OPTAM | 100% BR |
| Imagerie médicale NON OPTAM | 100% BR |
| Analyse et examen de laboratoire | 100% BR |
| Médecin généraliste OPTAM | 175% BR |
| Médecin généraliste NON OPTAM | 150% BR |
| Médecin spécialiste NON OPTAM | 150% BR |
| Médecin spécialiste OPTAM | 175% BR |
| Prothèses externes remboursées par la Sécurité sociale (capillaires, mammaires, oculaires) | 100% BR |
| Actes techniques | Frais réels |
| Matériel Médical | 100% BR |
| Transport | 100% BR |
| Honoraires médicaux OPTAM | |
| Honoraires médicaux NON OPTAM | |
| Forfait patient urgences | Frais réels |
| Médicaments à SMR faible (prise en charge par la SS à 15%) | 100% BR |
| Médicaments à SMR important (prise en charge par la SS à 65%) | 100% BR |
| Médicaments à SMR modéré (prise en charge par la SS à 30%) | 100% BR |
| Hospitalisation | Remboursement |
|---|---|
| Frais d'accompagnement par jour | 40 € |
| Honoraires médicaux et chirurgicaux OPTAM (1ère année) / 330% (3ème année et suivantes) | 315% BR |
| Honoraires médicaux et chirurgicaux NON OPTAM (1ère année) / 200% (3ème année et suivantes) | 200% BR |
| Frais de séjour en secteur NON OPTAM | 100% BR |
| Frais de séjour OPTAM | Frais réels |
| Chambre particulière OPTAM par jour (1ère année) / 100€ par jour (3ème année et suivantes) | 90 € |
| Forfait journalier hospitalier OPTAM | Frais réels |
| Forfait confort hospitalier par jour | 40 € |
| Optique | Remboursement |
|---|---|
| Chirurgie réfractive par an | 300 € |
| Plafond monture | 100 € |
| Lentilles acceptées par la Sécurité sociale | 100% BR |
| Lentilles refusées par la Sécurité sociale par an | 150 € |
| Équipement 100% santé optique | Frais réels |
| Monture + verres complexes (1ère année) / 450€ (3ème année) / 500€ (4ème année et suivantes) | 400 € |
| Monture + verres simples (1ère année) / 200€ (3ème année) / 300€ (4ème année et suivantes) | 275 € |
| Monture + verres très complexes (1ère année) / 450€ (3ème année) / 500€ (4ème année et suivantes) | 400 € |
| Dentaire | Remboursement |
|---|---|
| Orthodontie remboursée par la Sécurité sociale (1ère année) / 265% (3ème année) / 280% (4ème année et suivantes) | 250% BR |
| Plafond sur le poste dentaire par an et par bénéficiaire (1ère année) / Illimité (2ème année) / Illimité (3ème année) / Illimité (4ème année et suivantes) | 2 000 € |
| Soins et prothèses dentaires non remboursés par la Sécurité sociale par an | 250 € |
| Inlays / Onlays | 250% BR |
| Prothèses dentaires remboursées par l'AMO (1ère année) / 315% (3ème année) / 330% (4ème année et suivantes) | 300% BR |
| Soins dentaires | 250% BR |
| Equipement 100% santé dentaire | Frais réels |
| Auditif | Remboursement |
|---|---|
| Prothèses auditives classe 2 | 200% BR |
| Equipement 100% santé auditif | Frais réels |
| Piles et accessoires | 100% BR |
| Médecine douce | Remboursement |
|---|---|
| Médecine douce 180€ (3ème année)/ 190€ (4ème année et suivantes) Forfait médecines complémentaires : ostéopathe, homéopathe, acupuncteur, naturopathe, étiopathe, diététicien, chiropracteur, micro-kinésithérapeute, pédicure/podologue, réflexologue, sophrologue, luminothérapeute, hypnothérapeute, tabacologue, mésothérapeute, psychomotricien, psychologue, ergothérapeute, sexologue. (par année d’adhésion et par Assuré - limité à 30 € / acte) | 120 € |
| Cure thermale (honoraires et traitement) | 100% BR |
| Cure thermale (hébergement et transport) | 200 € |
| Dépistage et prévention (actes non remboursés par le RO) dans la limite de 2 actes par an | Frais réels |
Notes moyennes des clients
Classement Selectra Score (top N + méthodo) x-selectra-score-ranking
Classement « top N » compact (badge + médailles podium + nom + pill partenaire + CTA 3-mode), trié par Selectra Score, avec sa méthodologie intégrée en collapse et sa légende auto-conforme. Le caller calcule le classement (rows) et le passe via :items — le composant gère le rendu, les pills, les CTA et la méthodo. Remplace les blocs « top 10 » inline qui n'avaient ni pill partenaire ni CTA 3-mode.
Conformité (cf. convention-compliance.md) :
- CTA 3-mode par item (§7−2) : Devis gratuit en ligne (partenaire + affilié web), 📞 numéro (partenaire + phone affi), Comparer en ligne (sinon).
- Pill « Partenaire de Selectra » par item partenaire (§5.2 / §5.9 règle 1) — absence = non-partenaire.
- Selectra Score = cadence mensuelle (§5.7) : légende « mis à jour en {mois} » maillée vers la page méthodo, jamais de date par row.
- Méthodologie Selectra Score (40 % garanties / 40 % prix / 20 % avis) UNIVERSELLE — s'applique quelle que soit la verticale ; seuls les profils types changent (passés via
:profiles). - CTA uniform width (min-width 210px) + alignement homogène (§5.9 Règle 10).
$items (required) rows ordonnées : insurer_slug, insurer_name, partner(bool),
is_online(bool), is_phone(bool), formula_name(string, opt)
$vertical auto | habitation | mutuelle-sante (défaut mutuelle-sante)
$title titre H3 au-dessus de la liste
$limit nombre d'items rendus (défaut 10)
$panel nombre d'assureurs étudiés (méthodologie)
$profiles [['label' => 'Senior 65 ans', 'desc' => '…'], …] profils types (méthodo)
$minProfilesNote phrase de filtre éditorial (HTML léger)
$methodologyHeading titre du collapse méthodologie
<x-slot> contenu additionnel injecté en bas du collapse méthodologieExemple
<x-selectra-score-ranking
:items="$top10"
vertical="mutuelle-sante"
title="Notre top 10 des meilleures mutuelles santé en {{ $annee }}"
:panel="25"
:profiles="$meilleureProfiles" />Exemple vivant (top 5 santé, données live) ci-dessous :
Top 5 des meilleures mutuelles santé (démo)
Classement établi selon le Selectra Score, mis à jour en mai 2026.
📋 Méthodologie de notre classement des meilleures mutuelles santé
Nos experts ont étudié les offres d'un panel de 25 assureurs afin d'établir ce classement des meilleures mutuelles santé.
Ce classement repose sur la moyenne des Selectra Score points obtenus par chaque formule sur 3 profils représentatifs :
- Senior 65 ans : femme retraitée de 65 ans, vivant à Lille.
- Famille : couple marié de 45 ans avec deux enfants, vivant à Caen.
- Étudiant : homme étudiant de 22 ans, vivant à Bordeaux.
Les critères évalués par le Selectra Score (méthodologie identique sur toutes nos verticales d'assurance) :
- Garanties (40 %) : niveau et étendue des couvertures par poste.
- Prix (40 %) : positionnement du tarif par rapport à la moyenne du marché sur le profil.
- Avis clients (20 %) : moyenne pondérée des avis vérifiés (Trustpilot, Avis Vérifiés, Opinion Assurances) par volume.
Comparateur habitation guidé x-habitation-comparator
Mini-comparateur d'assurance habitation en 2 étapes (server-rendered via query params, SEO-friendly, faible mémoire) : statut (4 grandes cartes : locataire / propriétaire résidence principale / résidence secondaire / PNO) → logement (maison ou appartement) → top 3 des assureurs partenaires du profil résolu, triable par Selectra Score ou par prix. Utilisé sur /comparateur-assurance-habitation.
Conformité : les résultats sont délégués à x-goodassur-top-ranking (only-partners → §5.2 « sélection d'assureurs partenaires », CTA 3-mode §7−2, pills, légende Selectra Score mensuelle). Le comparateur ne rend aucun prix/date en propre. En tri par prix il passe price-level=1 (l'API home ne supporte pas sort=lowest_price).
$heading (optional) H2 au-dessus du comparateur statut : locataire | proprietaire-principal | proprietaire-secondaire | pno logement : appartement | maison tri : score | prix (défaut prix)
Exemple
<x-habitation-comparator />
Exemple vivant (étape 1) ci-dessous — les cartes naviguent via query params :
Top 3 de nos assureurs partenaires pour propriétaire (résidence principale) en maison
← Modifier mes critèresPropriétaire occupant d'une maison
Standard
14,61 € /mois Avec une franchise de 300,00€
- Incendie et explosion
- Dégats des eaux
- Attentats et terrorisme
- Vol et vandalisme
- Bris de vitres : 1 200 €
- Évènements climatiques
| Garanties | Standard |
|---|---|
| Garanties obligatoires Responsabilité civile vie privée, Incendie et explosion, Dégats des eaux, Catastrophes naturelles et technologiques, Attentats et terrorisme | |
| Responsabilité civile mobilière | |
| Protection juridique | |
| Défense et recours | |
| Reconstruction à neuf | |
| Protection des biens extérieurs (canalisations, végétaux, abris de jardin) | |
| Assurance Scolaire | |
| Bris de vitres mobilier | |
| Protection piscine | |
| Bris de vitres immobilier | |
| Dommages électriques | |
| Dépannage plomberie | |
| Vêtements et objets de première nécessité | |
| Logement temporaire | |
| Gardiennage | |
| Nettoyage domicile | |
| Garde d’enfants | |
| Garde animaux | |
| Dépannage électricité | |
| Dépannage serrurerie | |
| Lutte contre les nuisibles | |
| Violences intrafamiliales | |
| Évènements climatiques | |
| Perte d'usage | |
| Garanties différenciantes habitation | |
| Vol et vandalisme à domicile |
Notes moyennes des clients
Propriétaire occupant d'une maison
Formule Standard
16,25 € /mois Avec une franchise de 300,00€
- Responsabilité civile vie privée : 6 000 000 €
- Incendie et explosion
- Dégats des eaux : 30 000 €
- Attentats et terrorisme
- Vol et vandalisme : 30 000 €
- Bris de vitres
- Évènements climatiques
- Valeur à neuf
| Garanties | Formule Standard |
|---|---|
| Garanties obligatoires Responsabilité civile vie privée, Incendie et explosion, Dégats des eaux, Catastrophes naturelles et technologiques, Attentats et terrorisme | |
| Responsabilité civile mobilière | |
| Reconstruction à neuf | |
| Protection des biens extérieurs (canalisations, végétaux, abris de jardin) | |
| Vol et vandalisme auto | |
| Bris de vitres mobilier | |
| Protection juridique | |
| Responsabilité civile chiens dangereux | |
| Assurance Scolaire | |
| Défense et recours | |
| Bris de vitres immobilier | |
| Dommages électriques | |
| Dépannage plomberie | |
| Logement temporaire | |
| Gardiennage | |
| Vêtements et objets de première nécessité | |
| Nettoyage domicile | |
| Garde d’enfants | |
| Garde animaux | |
| Dépannage électricité | |
| Dépannage serrurerie | |
| Évènements climatiques | |
| Perte d'usage | |
| Hébergement d'urgence | |
| Clés perdues, brisées ou volées | |
| Responsabilité civile locative | |
| Vol et vandalisme à domicile | |
| Responsabilité civile immeuble | |
| Responsabilité civile villégiature | |
| Rééquipement à neuf | |
| Valeur à neuf | |
| Protection équipement énergies renouvelables | |
| Responsabilité civile "fête" | |
| Vol à l'extérieur | |
| Frais complémentaires | |
| Assistance psychologique | |
| Rapatriement à domicile | |
| Remise en état | |
| Casse et dommages accidentels |
Notes moyennes des clients
Propriétaire occupant d'une maison
Formule Essentielle
19,00 € /mois Avec une franchise de 150,00€
- Responsabilité civile vie privée
- Incendie et explosion
- Dégats des eaux
- Attentats et terrorisme
- Évènements climatiques
- Valeur à neuf
| Garanties | Formule Essentielle |
|---|---|
| Garanties obligatoires Responsabilité civile vie privée, Incendie et explosion, Dégats des eaux, Catastrophes naturelles et technologiques, Attentats et terrorisme | |
| Évènements climatiques | |
| Défense et recours | |
| Valeur à neuf | |
| Protection piscine | |
| Dommages électriques | |
| Responsabilité civile locative | |
| Responsabilité civile immeuble | |
| Responsabilité civile villégiature | |
| Responsabilité civile "fête" | |
| Garanties différenciantes habitation | |
| Perte d'usage | |
| Hébergement d'urgence | |
| Dépannage serrurerie | |
| Nettoyage domicile | |
| Gardiennage | |
| Dépannage électricité | |
| Dépannage plomberie |
Notes moyennes des clients
Tableau comparatif x-insurance-comparison-table
Tableau multi-assureurs avec critères personnalisables (prix, score, garanties, plafonds). Idéal pour les pages comparatives éditoriales.
$product auto | habitation | mutuelle $profile nom du profil (ex: Famille, Senior, Jeune conducteur) $insurers array|csv — slugs d'assureurs (acheel, alan, april, …) $priceLevel 0 | 1 | 2 | 'all' $criteria array|csv — colonnes additionnelles (ex: hospitalisation,dentaire,optique)
Exemples
<x-insurance-comparison-table
product="mutuelle"
profile="Senior"
:insurers="['alan','april','harmonie-mutuelle','malakoff-humanis']"
:criteria="['hospitalisation','dentaire','optique']"
/>
<x-insurance-comparison-table product="auto" profile="Famille" />Remboursements santé x-insurance-health-reimbursement
Cartes multi-assureurs montrant les remboursements pour un poste santé donné (hospitalisation, soins courants, dentaire, optique, audition, médecines douces, prévention).
$profile nom du profil (ex: Famille, Senior) $insurerSlugs array|csv — assureurs à afficher $healthPost hospitalisation | soins-courants | dentaire | optique | audition | medecines-douces | prevention $priceLevel 0 | 1 | 2 | 'all' $sortBy null | refund_desc
Exemple
<x-insurance-health-reimbursement
profile="Senior 65 ans"
:insurer-slugs="['swiss-life','acheel','direct-assurance','gan','malakoff-humanis','april']"
health-post="Dentaire"
/>BIEN-ÊTRE +
132,77 €/mois
Tarif mis à jour le 05/02/2026- Orthodontie remboursée par la Sécurité sociale : 305 %
- Plafond sur le poste dentaire par an et par bénéficiaire : 1600 €
- Soins et prothèses dentaires non remboursés par la Sécurité sociale : 300 € par an
- Prothèses dentaires remboursées par l'AMO : 305 %
- Soins dentaires : 305 %
- Equipement 100% santé dentaire : Frais réels
Intégral
163,39 €/mois
Tarif mis à jour le 05/02/2026- Orthodontie remboursée par la Sécurité sociale : 200 € par semestre
- Plafond sur le poste dentaire par an et par bénéficiaire : 1500 € (1ère et 2ème année) / 1600€ (3ème et 4ème année) / 1700€ (5ème année et suivantes)
- Soins et prothèses dentaires non remboursés par la Sécurité sociale : 250 € par an / +50€ si réseau Kalixia
- Prothèses dentaires remboursées par l'AMO : 300 % +50% si réseau Kalixia
- Soins dentaires : 100 %
- Equipement 100% santé dentaire : Frais réels
Active F4
188,70 €/mois
Tarif mis à jour le 05/02/2026- Orthodontie remboursée par la Sécurité sociale : 200 % (An1) / 225% (An2) / 250% (An3+)
- Plafond sur le poste dentaire par an et par bénéficiaire : 1500 € (An1) / 1750€ (An2) / 2000€ (An3+)
- Soins et prothèses dentaires non remboursés par la Sécurité sociale : 50 € par an
- Inlays / Onlays : 100 %
- Prothèses dentaires remboursées par l'AMO : 200 % (An1) / 225% (An2) / 250% (An3+)
- Soins dentaires : 100 %
- Equipement 100% santé dentaire : Frais réels
Niveau 5
284,43 €/mois
Tarif mis à jour le 05/02/2026- Orthodontie remboursée par la Sécurité sociale : 400 % 600€ pour les plus de 16 ans
- Prothèses dentaires remboursées par l'AMO : 400 € ou 450€ avec réseau Sévéane
- Soins dentaires : 100 %
- Equipement 100% santé dentaire : Frais réels
- Soins et prothèses dentaires non remboursés par la Sécurité sociale : 600 € 650€ réseau Sévéane
Santé Zen niveau 6
312,06 €/mois
Tarif mis à jour le 05/02/2026- Orthodontie remboursée par la Sécurité sociale : 250 %
- Plafond sur le poste dentaire par an et par bénéficiaire : 2500 € au-delà 100%
- Inlays / Onlays : 200 %
- Prothèses dentaires remboursées par l'AMO : 400 %
- Soins dentaires : 200 %
- Equipement 100% santé dentaire : Frais réels
Sélection d'assureurs partenaires de Selectra retenus pour leur niveau de remboursement dentaire, classés par prix croissant. Garanties de la formule la plus complète affichées (couverture maximale). Remboursements exprimés sur la base des tarifs conventionnels de la Sécurité sociale (BRSS) en vigueur en mai 2026. Profil utilisé pour les devis : Profil : Femme retraitée de 65 ans, célibataire, sans enfant, vivant à Lille. Affiliée au régime général de la sécurité sociale.. Source du barème : ameli.fr. Référencement gratuit.
Simulateur RAC x-insurance-rac-simulator
Calculatrice « reste à charge » : l'utilisateur saisit le coût d'un soin, le composant calcule le RAC et propose les 3 meilleures mutuelles pour le réduire.
$categorie equipement | dentaire | hospitalisation | imagerie | analyses | paramedical | consultations-generalistes | consultations-specialistes | prevention | cure-thermale (slug catégorie, optionnel) $profile profil par défaut (par défaut « Famille »)
Exemple
<x-insurance-rac-simulator categorie="equipement" />
Lettre de résiliation x-insurance-resignation-letter
Sélecteur de modèle de lettre de résiliation par situation (loi Hamon, échéance annuelle, déménagement, etc.) avec téléchargement PDF.
$vertical habitation | auto | mutuelle $default slug de la situation pré-sélectionnée (optionnel)
Exemple
<x-insurance-resignation-letter vertical="auto" />
Demande d'attestation d'assurance habitation x-insurance-attestation-letter
Générateur interactif de lettre de demande d'attestation d'assurance habitation envoyée par un propriétaire/bailleur à son locataire (article 7 de la loi du 6 juillet 1989). Questionnaire bailleur + locataire + adresse du logement + date du bail. Aperçu live + téléchargement PDF généré côté client via jsPDF (aucune donnée transmise au serveur).
Aucune prop. Le composant gère lui-même son état (Alpine x-data).
Exemple
<x-insurance-attestation-letter />
1. Renseignez vos informations
Vous (bailleur)
Votre locataire
2. Vérifiez et téléchargez votre lettre
Lettre recommandée avec accusé de réception
Objet :
Madame, Monsieur,
Je vous prie d'agréer, Madame, Monsieur, l'expression de mes salutations distinguées.
Modèle à titre indicatif, vérifié en mai 2026 et conforme à l'article 7 de la loi n° 89-462 du 6 juillet 1989. Tous les champs sont modifiables avant téléchargement ; le PDF est généré dans votre navigateur (aucune donnée transmise à goodassur). Adaptez le contenu à votre situation personnelle avant envoi.
3. Conseils pour l'envoi
- Privilégiez la lettre recommandée avec accusé de réception (LRAR) pour avoir une preuve d'envoi opposable.
- Joignez une copie du bail signé pour rappeler la date de prise d'effet du contrat de location.
- Laissez au locataire un délai raisonnable (15 jours ouvrés) pour vous transmettre son attestation.
- À défaut de réponse, adressez une mise en demeure par huissier : c'est l'étape obligatoire avant toute action en résiliation du bail pour défaut d'assurance.
Cadre légal : article 7 de la loi n° 89-462 du 6 juillet 1989 et loi Alur du 24 mars 2014 (art. 6).
Carte d'offre unique x-insurance-offer-card
Affiche une seule offre (assureur + profil) avec les détails (prix, garanties principales, CTA). Utilisée sur les pages assureur ou les comparatifs ciblés.
$product auto | habitation | mutuelle $insurer slug de l'assureur $profile nom du profil (par défaut « Famille ») $priceLevel 0 | 1 | 2 | 'all' $offer offre pré-hydratée (alternative à $insurer) $withProfileSelector affiche un sélecteur de profil (false) $defaultProfile profil par défaut quand le sélecteur est actif $allowedProfiles restreint la liste du sélecteur
Exemple
<x-insurance-offer-card product="auto" insurer="acheel" />
CTA téléphone x-phone-cta
Bandeau d'appel avec horaire d'ouverture en direct. Le numéro et l'URL de tracking dépendent de la verticale.
$vertical habitation | auto | mutuelle | animaux | general $title titre (par défaut « Besoin d'aide ? ») $description texte explicatif $hours ligne horaires (par défaut « Appel non surtaxé · du lundi au vendredi… »)
Un expert Selectra vous aide gratuitement
Nos experts en assurance sont prêts à vous guider pour trouver la meilleure offre adaptée à vos besoins.
Nos experts vous accompagnent gratuitement par téléphone :
01 86 65 20 05Appel non surtaxé · du lundi au vendredi de 9h à 20h, samedi de 9h à 18h
Code
<x-phone-cta vertical="auto" />
<x-phone-cta
vertical="mutuelle"
title="Trouvez la meilleure mutuelle santé"
description="Nos conseillers comparent gratuitement les offres."
/>CTA affiliation x-affiliate-cta
Bloc de redirection vers une landing partenaire (Acheel, April, etc.). Logo, badge, titre, description, liste de bénéfices et bouton.
$title titre principal $description paragraphe sous le titre $badge petit badge en tête (ex: « Devis gratuit et sans engagement ») $href URL de destination (selection/...) $ctaLabel libellé du bouton $logo URL du logo partenaire $logoAlt alt text du logo $features array — bullets de bénéfices
Exemple
<x-affiliate-cta
title="Protégez votre chien dès aujourd'hui"
description="Comparez les meilleures assurances chien en 2 minutes."
badge="Devis gratuit"
href="/selection/acheel/chien-chat"
cta-label="Obtenir mon devis"
logo="https://images.goodassur.com/fr-insurance/logos/acheel-xs.png"
:features="[
'Couverture vétérinaire jusqu\'à 2 000 €/an',
'Sans questionnaire de santé',
'Souscription 100 % en ligne',
]"
/>CTA carte grise x-carte-grise-cta
Bloc CTA dédié au service carte grise. Auto-affiche le numéro de téléphone correspondant.
$title titre du bloc $description texte explicatif
Exemple
<x-carte-grise-cta
title="Faites votre carte grise en 5 minutes"
description="Service en ligne agréé ANTS — paiement sécurisé."
/>Service de souscription assureur x-monetisation-service-souscription
Encadré orange in-content positionnant Selectra comme service de souscription d'un assureur partenaire. Badge + titre + bouton phone CTA + légende horaires italiques. Le numéro est résolu en cascade : (1) override phone/phone-href, (2) CS partenaire via slug dans sticky-footer.phones — ex. Acheel, Axa, Luko —, (3) fallback pool vertical (général / mutuelle / auto / habitation). Les horaires sont générés automatiquement depuis cms.call-hours.schedule.
$insurerName nom affiché (ex. "Acheel")
$insurerSlug override slug (par défaut : insurerName lowercased)
$vertical fallback pool si pas de CS partenaire (général | mutuelle | auto | habitation…)
$phone override numéro affiché
$phoneHref override URL de tracking (ex. /selection/fr-ii-cs-gdaacheel)
$badge override badge (par défaut « Souscription {insurerName} »)
$title override titre (par défaut « Appelez gratuitement le service de souscription {insurerName} »)Appelez gratuitement le service de souscription Acheel
du lundi au vendredi de 9h à 20h et le samedi de 9h à 18h
Exemples
<x-monetisation-service-souscription insurer-name="Acheel" />
<x-monetisation-service-souscription
insurer-name="Direct Assurance"
insurer-slug="direct_assurance"
/>
<x-monetisation-service-souscription
insurer-name="Heyme"
vertical="mutuelle"
/>Grille devis x-devis-grid
Grille à 3 cartes (Mutuelle / Auto / Habitation par défaut) qui dirige vers les comparateurs. À utiliser comme bloc « passage à l'action » en bas d'article.
$items array de cartes — chaque item = ['icon' => '🩺', 'name' => 'Mutuelle', 'href' => '/...', 'cta' => 'Devis gratuit'] $title titre optionnel au-dessus de la grille
Exemple
<x-devis-grid title="Comparer en 2 minutes" />
<x-devis-grid :items="[
['icon' => '🚗', 'name' => 'Auto', 'href' => '/selection/comparateur-assurance-auto', 'cta' => 'Devis auto'],
['icon' => '🏠', 'name' => 'Habitation', 'href' => '/selection/comparateur-assurance-habitation', 'cta' => 'Devis habitation'],
['icon' => '🐕', 'name' => 'Animaux', 'href' => '/selection/acheel/chien-chat', 'cta' => 'Devis animal'],
]" />Podium top 3 x-podium-top3
Cartes or / argent / bronze pour le top 3 d'un classement. Médaille, logo, badge, libellé, CTA. Utilisé en tête des pages classement.
$items array de 3 items — chacun ['name', 'slug', 'cta_href', + optionnels: 'logo', 'cta_label', 'text', 'name_href'] $title titre au-dessus du podium $description paragraphe descriptif
Exemple
<x-podium-top3
title="Notre top 3 des meilleures mutuelles santé"
:items="[
['name' => 'Alan', 'slug' => 'alan', 'cta_href' => '/selection/comparateur-assurance-sante'],
['name' => 'Heyme', 'slug' => 'heyme', 'cta_href' => '/selection/heyme/mutuelle-sante'],
['name' => 'Harmonie Mutuelle', 'slug' => 'harmonie-mutuelle', 'cta_href' => '/selection/comparateur-assurance-sante'],
]"
/>Classement prix x-price-ranking
Liste éditoriale ordonnée d'assureurs avec économie %, prix de référence, marqueur ☑ partenaire auto-détecté depuis l'API et CTA 3-mode universel (online affi → phone affi → comparateur de la verticale). Plus dense que le podium — utilisée pour les top 5 / top 10. Phase 1.9 compliance refactor (2026-05-25) : les anciennes clés per-item cta_href et cta_label sont désormais ignorées, le 3-mode prend la main systématiquement, le marqueur ☑ s'affiche pour chaque partenaire et la mention « ☑ indique un partenaire de Selectra. » est append-ée à la légende ssi ≥1 partenaire dans la liste.
$items array — chaque item ['rank', 'name', 'slug', 'name_href', 'price', 'discount', 'medal'?]
- rank int (1/2/3 = médaille auto, autre = badge numéroté)
- name nom commercial (obligatoire)
- slug slug API (obligatoire pour lookup partenaire ; fallback 1er segment non-routing de name_href)
- name_href lien sur le nom (SDP)
- price string (affichée en colonne « Prix moyen / mois »)
- discount string (affichée en colonne « Économie / marché »)
$legend ligne explicative sous la liste (gx_decode appliqué pour )
$footerCta CTA en pied de bloc ['href', 'label'?]
$vertical 'auto' | 'habitation' | 'mutuelle-sante' | 'animaux' (auto-détectée depuis l'URL si null)Exemple
<x-price-ranking
vertical="mutuelle-sante"
legend="Étude Selectra 2025, panel de 17 assureurs."
:items="[
['rank' => 1, 'name' => 'Acheel', 'slug' => 'acheel', 'name_href' => '/acheel/mutuelle-sante', 'discount' => '-25,47%', 'price' => '20,52 €'],
['rank' => 2, 'name' => 'Alan', 'slug' => 'alan', 'name_href' => '/alan', 'discount' => '-22,91%', 'price' => '23,22 €'],
]"
/>Liste de classement x-rank-list
Composant générique de classement : empilement de lignes rang · nom · sous-texte · CTA, médailles 🥇🥈🥉 sur le top 3 et background alterné au-delà. Reproduit le pattern .ga-rank historiquement inliné dans /mutuelle-sante/meilleure et le tableau top 10 senior. Phase 1.10 compliance refactor (2026-05-26) : nouvelle prop :source qui auto-rend une légende .tbl-note en pied (méthodologie + date + panel), avec mention ☑ partenaire conditionnelle si ≥1 item.is_partner=true. Séparateur entre nom et sous-texte changé de em-dash « — » (interdit convention.md L63) à middle dot « · ».
$items array — chaque item :
- name string (requis)
- sub string (optionnel) — sous-texte gris
- caption string (optionnel) — caption 10px italique gris (per-item, ex. « Mis à jour le X »)
- is_partner bool (optionnel) — affiche le ☑ Selectra-check.svg avant le nom
- cta_href string (optionnel) — URL du CTA, sinon pas de bouton
- cta_label string (optionnel) — défaut 'Devis gratuit'
- cta_rel string (optionnel) — défaut 'sponsored nofollow noopener'
- cta_target string (optionnel) — défaut '_blank'
- name_href string (optionnel) — si fourni, le nom devient un lien
$title string (optionnel) — H3 visuel au-dessus de la liste
$source string (optionnel mais RECOMMANDÉE) — méthodologie + date + panel,
rendue en `.tbl-note` sous la liste. HTML léger autorisé.
Auto-append « ☑ indique un partenaire de Selectra » si ≥1 partner.Notre top 5 des meilleures mutuelles santé
Classement éditorial Selectra sur 17 assureurs, profil Senior 65 ans, mis à jour en mai 2026.
Code
<x-rank-list
title="Notre top 5 des meilleures mutuelles santé"
source="Classement éditorial Selectra sur 17 assureurs, profil Senior 65 ans, mis à jour en {{ $mois }}."
:items="[
['name' => 'Heyme', 'sub' => 'Formule Ambre', 'is_partner' => true, 'cta_href' => '/selection/heyme/mutuelle-sante', 'name_href' => '/heyme'],
['name' => 'Alan', 'sub' => 'Senior Essentiel', 'cta_href' => '/selection/comparateur-assurance-sante'],
...
]"
/>Tableau formules mutuelle par profil x-mutuelle-formulas-table
Classement dynamique des meilleures formules de mutuelle santé par profil. Sélecteur GET ?profile=… qui recharge la page (chaque profil = URL crawlable distincte, longue traîne SEO). Tri strict par Selectra Score points DESC + tiebreak alphabétique stable. Composant utilisé sur /mutuelle-sante/meilleure (tous profils health) et /mutuelle-sante/senior/classement-meilleure (4 profils seniors). Paramétrable par n'importe quelle liste de profils.
$profiles string[]|null (defaut null = tous profils health découverts via l'API) $defaultProfile string|null (defaut null = 1er profil de la liste) $limit int (defaut 10) $excludeInsurers string[] (defaut []) $queryParam string (defaut 'profile') $selectorLabel string (defaut 'Voir le classement pour :')
Notre top 10 des meilleures mutuelles santé pour Senior 65 ans en mai 2026
Classement établi selon le Selectra Score pour le profil Senior 65 ans, mis à jour en mai 2026. Critères : 40 % prix, 40 % garanties, 20 % avis clients.
Code
<x-mutuelle-formulas-table default-profile="Famille" />
<x-mutuelle-formulas-table
:profiles="['Senior 65 ans', 'Senior 75 ans', 'Senior 85 ans', 'Senior 92 ans']"
default-profile="Senior 65 ans"
selector-label="Classement pour les seniors de :"
/>
<x-mutuelle-formulas-table :profiles="['Famille', 'Chômeur', 'Étudiant']" />Top 3 mutuelles x-mutuelle-rembours-top3
Trois cartes côte à côte avec deux métriques chacune (ex: forfaits dentaire + optique).
Générique mutuelle / auto / habitation — verticale auto-détectée via l'URL ou via la prop :vertical.
Compliance §5.2 / §5.7 / §7−2 — CTA 3-mode dérivé par-item depuis l'API, marqueur ☑ partenaire et caption auto si :legend absent.
$items array — name, name_href (→ slug), logo, metric1/2_{label,value}
$legend optionnel — texte éditorial ; mention partenaire append-ée auto
$topic optionnel — poste de remboursement, injecté dans la caption auto
$vertical optionnel — 'auto' | 'habitation' | 'mutuelle-sante' (défaut: URL-derived)
Classement éditorial Selectra sur le remboursement de l'ostéopathie — couvertures relevées en mai 2026.
Code
<x-mutuelle-rembours-top3
topic="le remboursement de l'ostéopathie"
:items="[ /* 3 items avec name, name_href, logo, metric1/2 */ ]"
/>Carte n°1 mutuelle x-top-mutuelle-remboursement
Carte « meilleure mutuelle de l'année » avec badge, logo, description, bouton devis et bloc téléphone (heures ouvrées partenaires uniquement). Compliance §5.2 / §5.7 / §7−2 / §7.4 — bloc téléphone masqué pour non-partenaires, mention « Service Selectra non-partenaire de X » auto-injectée, caption éditoriale en pied avec mois courant.
$insurer slug de l'assureur (la résolution partenaire/affi vient de l'API)
$insurerName nom affiché (fallback: config('cms.insurers.{slug}.name'))
$logoUrl URL du logo (défaut: fr-insurance/logos/{slug}-xs.png)
$insurerHref lien vers la page assureur (défaut: /{slug})
$topic thème éditorial (ex: « le remboursement des cures thermales »)
$description paragraphe descriptif
$year année du badge (défaut: année courante)
# Anciens props gardés pour rétro-compat, IGNORÉS si pas de surcharge utile :
$phoneNumber, $phoneHref → résolus depuis config('cms.insurers.{slug}.phone')
$ctaDevisHref, $ctaDevisLabel → résolus via la règle 3-mode universelleAlan élue meilleure mutuelle 2026 pour le remboursement des cures thermales
Alan rembourse les cures thermales jusqu'à 700 € par an sur sa formule Diamant — l'un des meilleurs niveaux du marché pour cette dépense atypique.
Service gratuit Selectra — non-partenaire de Alan.
Avis Goodassur sur le remboursement des cures thermales mis à jour en mai 2026.
Code
<x-top-mutuelle-remboursement
insurer="alan"
insurer-href="/alan"
topic="le remboursement des cures thermales"
description="..."
:year="2026"
/>Jauges Selectra Score x-selectra-score-gauges
Affiche les 5 notes éditoriales du Selectra Score (Tarifs / Garanties / Service / App mobile / Gestion sinistres) pour un assureur, sous forme de mini-jauges colorées + valeur numérique. Source : sites/goodassur.com/data/assureurs/{slug}.json → score_breakdown.
⚠️ Source éditoriale (évaluation experts goodassur), distincte de la lettre Selectra Score servie par l'API insurance-api. Les deux peuvent diverger car elles couvrent des dimensions différentes (cf. convention-compliance.md §5.7). Quand l'API exposera le breakdown par critère natif, le composant basculera automatiquement.
$slug (string, optional) slug assureur — charge le JSON automatiquement $breakdown (array, optional) breakdown direct (court-circuite le slug) $showLabels (bool, default true) afficher les libellés critères $compact (bool, default false) version compacte (sans les valeurs numériques)
Exemples
<x-selectra-score-gauges slug="luko" /> <x-selectra-score-gauges slug="acheel" :show-labels="false" /> <x-selectra-score-gauges slug="lemonade" :compact="true" />
Exemple vivant (luko, acheel, lemonade) :
Luko
Props : - slug (string, optional) : slug assureur ; charge le JSON - breakdown (array, optional) : breakdown direct (court-circuite le slug) - showLabels (bool, default true) : afficher les libellés critères - compact (bool, default false): version compacte (jauges seulement, pas de valeurs numériques) --}}Acheel
Props : - slug (string, optional) : slug assureur ; charge le JSON - breakdown (array, optional) : breakdown direct (court-circuite le slug) - showLabels (bool, default true) : afficher les libellés critères - compact (bool, default false): version compacte (jauges seulement, pas de valeurs numériques) --}}Lemonade
Props : - slug (string, optional) : slug assureur ; charge le JSON - breakdown (array, optional) : breakdown direct (court-circuite le slug) - showLabels (bool, default true) : afficher les libellés critères - compact (bool, default false): version compacte (jauges seulement, pas de valeurs numériques) --}}Avis d'expert x-expert-review
Bloc d'avis éditorial avec logo, description, deux colonnes pros / cons et CTA. Sur les pages assureur (Luko, Acheel, Alan, …).
Compliance §1 / §5.2 / §5.7 / §6.4 / §7−2 / §7.4 :
badge « Partenaire Selectra » auto si applicable, CTA 3-mode dérivé API,
caption « Avis Goodassur vérifié en {mois année} » alimentée par data/expert-reviews/{slug}.json::last_reviewed_at.
$name nom de l'assureur $slug slug (logo + lookup partenaire/affi via API) $logo URL du logo (override; défaut: CDN xs.png) $description paragraphe d'introduction $pros array de bullets « points forts » $cons array de bullets « points faibles » $vertical optionnel — 'auto' | 'habitation' | 'mutuelle-sante' (défaut: URL-derived) $lastReviewedAt optionnel — 'YYYY-MM' override (défaut: JSON puis now()) # Compat — explicites encore acceptés mais NON recommandés (la 3-mode est la source de vérité) : $ctaHref, $ctaLabel
Avis de nos experts sur Alan
Alan a révolutionné le marché de la mutuelle en supprimant les questionnaires de santé et en offrant une interface 100 % digitale. Remboursements ultra-rapides (sous 24 h) et tarifs parmi les plus compétitifs du marché.
✅ Avantages
- Aucun délai de carence sur les garanties.
- Garanties modulables sur 3 niveaux.
- Remboursements sous 24 h via l'application.
⚠️ Points de vigilance
- Souscription impossible après 75 ans.
- Tout est dématérialisé : pas d'agence physique.
Exemple
<x-expert-review
name="Alan"
slug="alan"
description="Alan a révolutionné le marché de la mutuelle…"
:pros="[ /* … */ ]"
:cons="[ /* … */ ]"
/>Carte d'identité assureur x-insurer-identity
Carte compacte affichant le score Selectra, la moyenne d'avis, les produits proposés et les plateformes. Branchée sur l'API + le fichier paraphrase.
$slug slug de l'assureur $insurerName nom affiché $insurerData données API (auto-injectées par PROVIDER-PAGE-REFERENCE) $paraphrase bloc paraphrase JSON $hasAuto bool — produit auto disponible $hasHome bool — produit habitation $hasHealth bool — produit santé
Exemple
<x-insurer-identity
slug="luko"
insurer-name="Luko"
:insurer-data="$insurerData"
:paraphrase="$paraphrase"
:has-home="true"
/>Alert x-alert
Encart coloré pour mettre en valeur une information clé : info, warning, danger, success. Icône emoji par défaut, ou personnalisable.
$type info | success | warning | danger | error | primary | secondary $icon emoji ou texte court (override) $title titre en gras (optionnel)
Bon à savoir
Attention
Code
<x-alert type="info" title="Bon à savoir">
Texte de l'alerte avec <strong>mots-clés</strong>.
</x-alert>
<x-alert type="warning" title="Attention">…</x-alert>
<x-alert type="danger" icon="🚨">Sans titre, juste un message.</x-alert>
<x-alert type="success">Confirmation positive.</x-alert>Info card x-info-card
Carte informative avec dégradé bleu clair. Icône emoji, titre (avec lien optionnel), contenu libre.
$icon emoji ou caractère $title titre en gras $titleHref si fourni, le titre devient un lien
Respectez le parcours de soins
Code
<x-info-card icon="🩺" title="Respectez le parcours de soins">
Passez par votre <strong>médecin traitant</strong>…
</x-info-card>
<x-info-card icon="🪟" title="Bris de glace" title-href="/assurance-auto/bris-de-glace">
Pare-brise, optiques, vitres…
</x-info-card>Verdict box x-verdict-box
Encart « notre verdict » avec icône colorée, label, titre et contenu. À placer en fin d'article ou de section éditoriale.
Compliance §5.9 règle 2 : prop :date optionnelle, à utiliser uniquement sur composants éditoriaux multi-assureurs ou guides généraux. Sur fiche mono-assureur SDP, ne PAS renseigner :date (la pill partenaire suffit).
$tone info | success | warning | danger
$label libellé en haut (par défaut « Notre verdict »)
$title titre principal
$date YYYY-MM optionnel — rendu en pied "Verdict mis à jour en {mois année}"Une mutuelle solide pour les familles
Allianz, AXA et Apivia se détachent sur le profil cadre
Verdict mis à jour en mai 2026.
Code
<x-verdict-box tone="success" label="Notre verdict" title="Une mutuelle solide pour les familles">
Avec un rapport qualité/prix au-dessus de la moyenne…
</x-verdict-box>
<x-verdict-box tone="info" title="Notre top 3 cadres" date="2026-05">
Sur les profils cadres familles…
</x-verdict-box>Timeline étapes x-timeline-steps
Frise horizontale numérotée (4 étapes recommandées). Idéal pour les processus de souscription ou de sinistre.
$steps array — chaque étape ['titre', 'detail'] $tone success | danger
-
1
Comparez
Renseignez votre profil en 2 minutes.
-
2
Choisissez
Sélectionnez l'offre la mieux adaptée.
-
3
Souscrivez
En ligne ou par téléphone, en 5 minutes.
-
4 ✓
Assuré
Effet immédiat ou différé selon vos besoins.
Code
<x-timeline-steps :steps="[
['titre' => 'Comparez', 'detail' => 'Renseignez votre profil en 2 minutes.'],
['titre' => 'Choisissez', 'detail' => 'Sélectionnez l\'offre la mieux adaptée.'],
['titre' => 'Souscrivez', 'detail' => 'En ligne ou par téléphone, en 5 minutes.'],
['titre' => 'Assuré', 'detail' => 'Effet immédiat ou différé.'],
]" />Pros / cons x-pros-cons
Grille à deux colonnes « avantages » / « inconvénients ». Composant partagé du framework — utiliser via le slot ou les props.
$pros array de bullets « avantages » $cons array de bullets « inconvénients »
Avantages
- Souscription 100 % en ligne en 5 minutes
- Tarifs compétitifs pour les jeunes conducteurs
- Application mobile complète
Inconvénients
- Pas de service client par téléphone
- Couverture limitée hors UE
Code
<x-pros-cons :pros="[
'Souscription 100 % en ligne en 5 minutes',
'Tarifs compétitifs pour les jeunes conducteurs',
]" :cons="[
'Pas de service client par téléphone',
]" />Key figure x-key-figure
Chiffre clé : grand nombre, label, description courte. Utilisé en groupe (3 ou 4) pour les blocs de chiffres marquants.
$value chiffre principal (ex: « 450 € », « 73 % ») $label libellé court $description ligne explicative
450 €
d'économies
par an en moyenne sur la mutuelle santé
5 min
pour comparer
toutes les offres du marché
0 €
sans engagement
comparateur 100 % gratuit
Code
<x-key-figure
value="450 €"
label="d'économies"
description="par an en moyenne sur la mutuelle santé"
/>Étoiles x-stars
Note sur 5 étoiles avec demi-étoile. Utilisée à côté des notes Trustpilot ou Selectra.
$note note de 0 à 5 (peut être décimale) $size taille en px (par défaut 14) $color couleur des étoiles (par défaut #F97316)
Code
<x-stars :note="4.5" /> <x-stars :note="3.8" :size="20" /> <x-stars :note="5" :size="16" color="#015aa3" />
Badge partenaire x-partner-pill
Pill « Partenaire de Selectra » à utiliser sur chaque composant qui rend un assureur partenaire de Selectra. Centralise le marqueur ☑ + libellé en une badge explicite et lisible. Remplace l'ancien petit ☑ icon-seul + la légende de pied « ☑ indique un partenaire de Selectra » sur tous les composants Phase 1.1 → 1.10 (expert-review, podium-top3, rank-list, price-ranking, comparison-table, mutuelle-rembours-top3, top-mutuelle-remboursement, mutuelle-formulas-table, offer-card-auto/habitation/sante). Compliance §5.2 + §5.9 règle 1.
$variant 'default' | 'compact'
- default : pill complète 0.75rem, padding .2/.55rem, pour cards
(expert-review, verdict-card, top-mutuelle-remboursement,
SDP hero) où l'espace est disponible
- compact : pill réduite 0.65rem, padding minimal, pour listes
denses (rank-list, price-ranking, comparison-table rows,
mutuelle-rembours-top3) où chaque row doit rester compactPas de logique conditionnelle interne : le caller décide quand l'afficher (typiquement après lookup API isPartner). Exemple :
Code
@if($isPartner)
<x-partner-pill /> ← variant default
<x-partner-pill variant="compact" /> ← pour listes
@endifVariant default (cards) :
Variant compact (listes denses) :
Carte de France des régions x-france-map
SVG vectoriel (issu du GeoJSON officiel IGN/INSEE) des 13 régions métropolitaines + Corse. Chaque <path> porte data-region="<nom>" permettant un styling/Alpine indépendant par région. Couplage idéal avec un x-data Alpine pour tooltip+panneau de détails (cf. exemple /assurance-habitation/prix et /assurance-auto/carte-grise). Le composant colore automatiquement chaque région via la prop :values (map nom-région → valeur numérique) et un color-scale optionnel.
$values map nom-de-région → valeur numérique (auto-quantile si pas de color-scale) $colorScale closure ($value) → couleur CSS (optionnel) $defaultFill couleur des régions sans valeur (défaut #e5e7eb) $hoverClass classes ajoutées au hover (défaut opacity-90) $class classes SVG (défaut w-full h-auto)
Exemple minimal
$values = [
'Île-de-France' => 68.95,
'Auvergne-Rhône-Alpes' => 43.00,
// ... une entrée par région
];
$colorScale = fn ($p) => $p > 60 ? '#ef4444' : '#86efac';
<x-france-map :values="$values" :color-scale="$colorScale" />Démo « prix du cheval fiscal 2026 par région » (vert ≤ 45 €, jaune ≤ 55 €, orange ≤ 60 €, rouge > 60 € pour l'Île-de-France).
Erreur de carburant x-carburant-diagnostic
Diagnostic en deux questions : « Avez-vous démarré le moteur ? » + « Combien de litres ? ». Affiche le risque, le coût estimé et le rappel d'assurance.
Aucun prop.
⛽ Je me suis trompé de carburant — est-ce grave ?
1. Quel est le type de carburant de votre véhicule ?
2. Quel carburant avez-vous mis ?
Marche à suivre :
Diagnostic à titre indicatif, méthodologie vérifiée en mai 2026 avec les retours d'expérience des centres de dépannage agréés et la documentation technique constructeur (manuels d'entretien Renault, Peugeot, Volkswagen, Stellantis). Les fourchettes de coûts citées sont basées sur les tarifs moyens 2025 des dépanneurs et garages indépendants : votre garage ou votre assureur peut appliquer des tarifs différents. En cas de doute, contactez un professionnel avant de démarrer le moteur.
Code
<x-carburant-diagnostic />
Bris / perte de lunettes x-lunettes-diagnostic
Diagnostic « qui rembourse ? » : casse vs perte, dans le délai 100 % santé ou non. Pas de prop.
👓 Qui rembourse vos lunettes ?
1. Que s'est-il passé ?
2. Âge du porteur des lunettes ?
Diagnostic à titre indicatif, méthodologie vérifiée en mai 2026. La prise en charge réelle dépend de votre contrat (responsabilité civile, garantie objets personnels, multirisque habitation) et des plafonds spécifiques de votre assureur. Vérifiez vos conditions générales avant de déposer une déclaration et contactez votre assureur en cas de doute. Le modèle de lettre généré est conforme à l'article L113-2 du Code des assurances (obligation de déclaration sous 5 jours ouvrés).
Code
<x-lunettes-diagnostic />
Éligibilité CSS x-css-eligibility
Calculatrice d'éligibilité à la Complémentaire santé solidaire en fonction du foyer et des revenus. Affiche le résultat (gratuite / participative / non éligible).
$compareHref URL du comparateur de mutuelles (par défaut /selection/comparateur-assurance-sante) $phone numéro à afficher $phoneHref tel:+33...
Code
<x-css-eligibility />
Convertisseur kW / DIN / CV fiscal x-puissance-converter
Convertit la puissance d'un véhicule entre kW, chevaux DIN et chevaux fiscaux (CV fiscal). Pas de prop.
Code
<x-puissance-converter />
Simulateur retraite x-retraite-simulator
Estimation de la pension de retraite en 5 étapes (base + Agirc-Arrco) avec projection nette.
Code
<x-retraite-simulator />
Simulateur rachat de trimestres x-rachat-trimestre-simulator
Calcule le coût du rachat de trimestres Cnav (« taux seul » vs « taux + durée »). Pas de prop.
Code
<x-rachat-trimestre-simulator />
Comparateurs auto / habitation / santé x-tools.comparators.*
Applications interactives complètes (formulaire multi-étapes + résultats). À placer en pleine largeur, en haut de page comparateur. Ne pas inclure dans un article éditorial — utiliser x-affiliate-cta ou x-devis-grid à la place.
Code
<x-tools.comparators.sim-comparateur-auto /> <x-tools.comparators.sim-comparateur-habitation /> <x-tools.comparators.sim-comparateur-sante />
Accordéon article x-accordion
Bloc dépliable pour cas / scénarios / variantes dans le corps éditorial. Style canonique .collapse-box / .collapse / .collapse__content, bordure gauche bleue, chevron ▼. À distinguer de x-faq-block qui est réservé au bloc FAQ en fin de page (avec JSON-LD).
items array ['title' => '...', 'content' => '...
', 'open' => true?] title string (single-item mode, contenu via slot) schema bool injecte JSON-LD FAQPage (false par défaut) heading 'h3'|'h4' tag du titre (h3 par défaut)
👶 Jeune conducteur
Si vous avez moins de 3 ans de permis ou avez fait une formation conduite accompagnée, vous êtes considéré comme jeune conducteur.
🚗 Petit rouleur
Moins de 7 000 km/an : optez pour une formule au kilomètre avec un tarif modulé selon votre usage réel.
🚙 Voiture ancienne
Pour un véhicule de plus de 10 ans, une formule au tiers ou tiers étendu est généralement plus pertinente que le tous risques.
Code
<x-accordion :items="[
['title' => '👶 Jeune conducteur', 'content' => '<p>…</p>'],
['title' => '🚗 Petit rouleur', 'content' => '<p>…</p>', 'open' => true],
]" />
<x-accordion title="Quand être assuré au tiers ?">
<p>Contenu HTML libre…</p>
</x-accordion>
<x-accordion>
<x-accordion.item title="Item 1">…</x-accordion.item>
<x-accordion.item title="Item 2" open>…</x-accordion.item>
</x-accordion>FAQ avec JSON-LD x-faq-block
Bloc FAQ formel en fin de page, avec injection automatique du JSON-LD FAQPage pour les rich snippets Google. Wrappé dans une <section> dédiée avec son propre H2. À utiliser une fois par page article, après les 6 H2 du body et avant le maillage final.
items array [['q' => 'Question ?', 'a' => 'Réponse
', 'emoji' => '💰']] title string défaut "FAQ" id string ancre H2 (défaut "faq") bg 'gray'|null fond gris pour section dédiée (recommandé)
💬 FAQ sur la mutuelle santé
💰 Quel est le prix moyen d'une mutuelle ?
Le prix moyen d'une mutuelle santé en 2026 est de 35 €/mois pour un actif, 75 €/mois pour un senior.
⏱️ Peut-on résilier à tout moment ?
Oui, depuis la loi du 1er décembre 2020, vous pouvez résilier votre mutuelle après un an de contrat, à tout moment et sans frais.
⚖️ La mutuelle est-elle obligatoire ?
Obligatoire pour les salariés du privé depuis 2016. Non obligatoire mais fortement recommandée pour les indépendants, étudiants et retraités.
Code
<x-faq-block bg="gray" title="FAQ sur la mutuelle santé" :items="[
['q' => 'Quel est le prix moyen ?', 'emoji' => '💰', 'a' => '<p>…</p>'],
['q' => 'Peut-on résilier à tout moment ?', 'emoji' => '⏱️', 'a' => '<p>…</p>'],
]" />FAQPage est auto-injecté dans <head>. Ne pas ajouter de balisage Schema manuel.Check / Cross list x-check-cross-list
Deux colonnes vert/rouge avec puces ✅/❌. Items en HTML inline (<strong>, <a> autorisés). Idéal pour comparer ce qui est inclus vs exclu, critères à respecter vs erreurs à éviter.
positiveTitle string défaut "Inclus" negativeTitle string défaut "Non inclus" positiveIcon string défaut "✅" negativeIcon string défaut "❌" positive[] array strings HTML negative[] array strings HTML
Ce que contient la carte Vitale
- Identité et numéro de Sécurité sociale
- Caisse de rattachement (CPAM)
- Droits ouverts à l'Assurance maladie
Ce qu'elle ne contient pas
- Aucune donnée médicale
- Pas un moyen de paiement
- Pas de remboursement mutuelle automatique
Code
<x-check-cross-list
positiveTitle="Critères à respecter"
negativeTitle="Erreurs à éviter"
:positive="['Envoyer en LRAR', '<strong>Respecter le préavis</strong>']"
:negative="['Oublier les justificatifs', 'Résilier avant l\'échéance']"
/>CTA monétisation x-cta-monetisation
Bannière compacte de monétisation après un verdict d'expert. Résout automatiquement le mode (affiliation en ligne ou numéro partenaire) selon les flags du JSON assureur. Si ctaMode est null, ne rend rien.
ctaMode 'online'|'phone'|null (null = pas de rendu) insurerName string insurerLogoUrl string (auto-dérivé de $slug si absent) slug string (pour construire logoUrl) affiliateHref string mode online : URL /selection/... partnerPhoneUrl string mode phone : tel:+33... partnerPhoneText string mode phone : libellé bouton
ctaMode = null — la résolution se fait dans la route SDP via InsuranceMonetisation. Ne JAMAIS écrire un <a class="btn-cta" href="/selection/..."> à la main, toujours passer par ce composant.Code
<x-cta-monetisation
:cta-mode="$ctaMode"
:insurer-name="$insurerName"
:slug="$slug"
:affiliate-href="$affiliateHref"
:partner-phone-url="$partnerPhoneUrl"
:partner-phone-text="$partnerPhoneText"
/>Action box x-action-box
Callout coloré avec icône + titre + CTA (téléphone et/ou bouton). Trois tons : primary (bleu), success (vert), accent (orange).
icon string emoji (défaut "💬") title string description string HTML autorisé phone string "01 86 65 20 06" phoneHref string "/selection/fr-ii-cc-gdamutuelle" ctaLabel string libellé bouton secondaire ctaHref string href bouton secondaire tone 'primary'|'success'|'accent' (défaut primary)
Besoin d'un conseil ?
Nos conseillers répondent à toutes vos questions sur la mutuelle santé.
Code
<x-action-box
icon="📞"
title="Besoin d'un conseil ?"
description="Nos conseillers répondent…"
phone="01 86 65 20 05"
phoneHref="/selection/fr-ii-cc-gdageneral"
ctaLabel="Je compare"
ctaHref="/mutuelle-sante/comparateur"
tone="primary"
/>Smart CTA x-smart-cta
Card flottante de monétisation (desktop bas-droite, mobile bottom-sheet) qui s'affiche après 30s ou 35 % de scroll. Mini-formulaire 2 étapes (profil → code postal) puis podium top-3 réel pré-fetché depuis l'API. Pré-fetch côté serveur (cache 15 min) — pas d'appel réseau côté client.
vertical 'home'|'car'|'health' (défaut 'home')
Code
<x-smart-cta vertical="home" /> <x-smart-cta vertical="car" /> <x-smart-cta vertical="health" />
Hero avis x-avis-hero
Hero de la page /{insurer}/avis : note globale pondérée + distribution étoiles cliquable + notes externes par plateforme (Trustpilot, OA, Google, App Store…). Connecté à 2 stores Alpine globaux ($store.avisFilter, $store.reviewModal) — synchronisé avec x-temoignages-list.
selectraNote float note pondérée (= average_weighted_reviews) totalReviewsCount int total des avis reviewsDistribution array [['star' => 5, 'pct' => 62], ...] externalReviews array [['platform' => 'trustpilot', 'rating' => 4.2, 'rating_count' => 1066], ...] insurerName string
data/conventions/convention-sdp.md : selectraNote DOIT être average_weighted_reviews, jamais une valeur arbitraire (source unique de vérité).Code
<x-avis-hero
:selectra-note="$selectraNote"
:total-reviews-count="$totalReviewsCount"
:reviews-distribution="$reviewsDistribution"
:external-reviews="$externalReviews"
:insurer-name="$insurerName"
/>Liste avis filtrable x-temoignages-list
Liste avis clients avec toolbar de recherche + filtres par étoile + tri (récents / mieux notés / utiles) + chips topics. Synchronisée avec x-avis-hero via le store Alpine $store.avisFilter.
temoignagesCurated array entries {auteur, initiale, verifie, anciennete|profil, type, note, date, date_iso, utile, titre, texte, topics[]}
reviewsTopics array ['Service client', 'Sinistres', ...]
totalReviewsCount int
insurerName stringx-avis-hero sur la page /{insurer}/avis. Les filtres communiquent entre les 2 composants automatiquement.Code
<x-temoignages-list
:temoignages-curated="$temoignagesCurated"
:reviews-topics="$reviewsTopics"
:total-reviews-count="$totalReviewsCount"
:insurer-name="$insurerName"
/>« X face aux autres » x-comparator-table
Tableau « {Insurer} face aux autres assureurs » sur la page hub. Assureur courant en première ligne avec badge « EN AVIS », concurrents cliquables vers leur page. Layout dual : cards mobile / tableau desktop.
comparaison array {
note: float (= average_weighted_reviews de l'assureur courant),
atout: string ('emoji + atout court'),
concurrents: [
{slug, name, note (= awr du concurrent), atout},
...
]
}
insurerName string
slug string (utilisé pour résoudre le logo)convention-sdp.md : comparaison.note et concurrents[].note DOIVENT être average_weighted_reviews de l'assureur correspondant, jamais une valeur arbitraire.Code
<x-comparator-table
:comparaison="$paraphrase['comparaison_concurrents']"
:insurer-name="$insurerName"
:slug="$slug"
/>Verdict card x-verdict-card
Bloc « Notre verdict » sur la page assureur : grade Selectra A-F + verdict court mis en avant + verdict long dépliable (séparateur [|||] pour split preview/expand) + auteur. À utiliser une fois par page SDP.
Compliance §5.9 règle 2 : prop :date optionnelle, à utiliser uniquement sur classement ou guide multi-assureurs. Sur SDP mono-assureur, ne PAS renseigner :date (le score + auteur signalent déjà le contexte).
verdictShort string HTML (header, toujours visible)
verdictLong string HTML (body, supporte [|||] pour split)
score string A|B|C|D|E|F (grade Selectra)
badgeLabel string défaut "Notre verdict sur les formules"
authorName string défaut "Marc Malpel"
authorRole string défaut "Spécialiste Assurance"
authorAvatar string URL R2 par défaut
date YYYY-MM optionnel — pied "Verdict mis à jour en {mois année}"Code
<x-verdict-card
:verdict-short="$verdicts['formules'] ?? null"
:verdict-long="$paraphrase['avis_expert_long'] ?? null"
:score="$score"
/>
$verdictLong = "Texte court visible…[|||]Suite cachée derrière un bouton.";Carte contact assureur x-insurer-contact-card
Fiche d'identité assureur en hero de la page /{insurer}/contact. Logo + nom + tagline produits + dl/dt/dd des coordonnées principales (téléphone, e-mail, adresse, espace client). Les lignes absentes ne sont pas rendues.
insurerName string insurerLogoUrl string productsTagline string ex. "Auto · Habitation · Santé" primaryPhone string primaryHours string ex. "Lun-Ven 8h-20h" email string address string HTML autorisé espaceClientUrl string
Code
<x-insurer-contact-card
:insurer-name="$insurerName"
:insurer-logo-url="$insurerLogoUrl"
:products-tagline="$productsTagline"
:primary-phone="$autodata[$slug]['phone']"
:primary-hours="$autodata[$slug]['hours']"
:email="$autodata[$slug]['email']"
:address="$autodata[$slug]['address']"
:espace-client-url="$autodata[$slug]['espace_client_url']"
/>Numéros par produit x-contact-phones-table
Tableau filtrable des numéros de téléphone d'un assureur, avec dropdown de filtre par catégorie (auto, habitation, santé, sinistre, réclamation). Layout dual : cards mobile / tableau desktop.
phones[] array entries {service, phone, hours?, cost?, cat[]?}
insurerName string
cat possible: auto | habitation | sante | sinistre | reclamationcat, le filtre dropdown est masqué automatiquement.Code
<x-contact-phones-table
:phones="[
['service' => 'Service client',
'phone' => '01 70 82 28 05',
'hours' => 'Lun-Ven 8h30-20h',
'cost' => 'Non surtaxé',
'cat' => ['auto', 'habitation']],
['service' => 'Sinistre auto',
'phone' => '0 800 11 22 33',
'cat' => ['sinistre', 'auto']],
]"
:insurer-name="$insurerName"
/>Modèle de courrier x-postal-letter
Mockup visuel d'un courrier postal (font Georgia, layout sender/recipient/object/salutation/body/closing/signature). Idéal pour les modèles de lettre de résiliation, déclaration sinistre, demande CPAM. À combiner avec un bouton de téléchargement jsPDF.
sender array ['name' => '[Prénom NOM]', 'address' => '...', 'extra' => '...'] recipient array ['name' => '...', 'address' => '...'] mention string ex. "Lettre recommandée avec accusé de réception" object string "Objet : ..." salutation string défaut "Madame, Monsieur," closing string défaut formule de politesse standard signature string défaut "(Signature)" slot string HTML corps de la lettre (paragraphes)
Lettre recommandée avec accusé de réception
Objet : Demande de remboursement de soins
Madame, Monsieur,
Madame, Monsieur,
Je sollicite par la présente le remboursement des soins reçus le [date] auprès du Dr [nom]. Vous trouverez ci-joint la facture acquittée et la copie de l'ordonnance.
Je vous prie d'agréer, Madame, Monsieur, l'expression de mes salutations distinguées.
(Signature)
Modèle à titre indicatif, vérifié en mai 2026. À adapter selon votre situation personnelle avant envoi.
Code
<x-postal-letter
:sender="['name' => '[Prénom NOM]', 'address' => '[Adresse]', 'extra' => '[N° Sécu]']"
:recipient="['name' => '[CPAM]', 'address' => '[Adresse CPAM]']"
mention="Lettre recommandée avec accusé de réception"
object="Demande de remboursement">
<p>Madame, Monsieur,</p>
<p>Je sollicite par la présente…</p>
</x-postal-letter>Single link x-single-link
Mini bloc de maillage avec UN seul lien mis en avant. Variante condensée de <x-multiple-link> quand on a un seul angle à proposer. Pattern HTML canonique avec classes .single-link / .single-link__label / .single-link__url. À utiliser typiquement sous un tableau ou un encart pour pousser vers une page complémentaire.
$label label devant le lien (defaut 'À lire aussi :') $url href du lien (requis) $text texte cliquable (requis) $icon emoji devant le texte (recommandé) $monetisation bool — si true, teinte orange pour signaler un lien monétisé
Code
<x-single-link
label="À lire aussi"
url="/mutuelle-sante/meilleure"
text="Top 10 des meilleures mutuelles santé toutes catégories"
icon="🏆"
/>Multiple link x-multiple-link
Grille « À lire aussi » 2-3-4 colonnes responsive. Item optionnel : icon + color (blue / orange / green / purple / red). Wrapper canonique pour le maillage final d'un article — à placer dans <div data-toc-ignore> pour ne PAS apparaître dans le sommaire.
label string défaut "À lire aussi :" links[] array [['url' => '/path', 'title' => 'Titre', 'icon' => '🏆', 'color' => 'orange']]
Code
<section data-toc-ignore>
<x-multiple-link label="Pour aller plus loin :" :links="[
['url' => '/...', 'title' => 'Top 10 des mutuelles', 'icon' => '🏆', 'color' => 'orange'],
['url' => '/...', 'title' => 'Comparateur senior', 'icon' => '👴', 'color' => 'blue'],
]" />
</section>Liste numérotée x-numbered-list
Liste ordonnée avec pastilles numérotées colorées et ligne de connexion verticale. Items en strings simples OU avec title + detail. Trois tons.
steps[] array strings OR [{title, detail}]
tone 'primary'|'success'|'warning' (défaut primary)
start int premier numéro (défaut 1)-
1
Connectez-vous à votre espace assuréAvec votre numéro de Sécurité sociale et mot de passe.
-
2
Téléchargez le formulaire S3704Disponible dans la rubrique « Mes démarches ».
-
3
Renvoyez le formulaire complétéPar voie électronique ou par courrier à votre CPAM.
Code
<x-numbered-list :steps="[
['title' => 'Étape 1', 'detail' => 'Détail optionnel…'],
['title' => 'Étape 2', 'detail' => '…'],
'Étape 3 (string simple sans détail)',
]" tone="primary" />
Liste FAQ mutuelle x-mutuelle-faq-list
Liste pré-câblée de toutes les pages FAQ mutuelle santé (sous /mutuelle-sante/faq/). Rendue via multiple-link. Utilisée en bas des pages FAQ pour cross-link.
exclude string slug de la page courante (la masque)
Code
<x-mutuelle-faq-list exclude="cas-dispense-mutuelle" />
Modale de rappel x-callback-modal
Composant à déclenchement modal pour formulaire de rappel (lead capture). Le bouton trigger ouvre une modale demandant le téléphone du visiteur, le formulaire push vers le back-office lead. Le contexte (swiss-life / after-hours / non-partner / general) pilote le wording et le segment de lead. Doit être placé une seule fois par page (le composant est rendu globalement).
context string clé context (général|swiss-life|after-hours|non-partner) trigger bool rendre le bouton trigger (défaut true) triggerLabel string override label bouton (défaut cta_label du context) triggerClass string override classes Tailwind du bouton segment string override segment lead (auto|habitation|mutuelle...) leadSource string override lead_source (page/section emitting the lead)
Exemple
<x-callback-modal context="general" segment="habitation" leadSource="resiliation-page-cta" /> <x-callback-modal :trigger="false" context="non-partner" />
Reco senior par âge x-senior-age-recommendation
Recommandation par profil senior : pour chaque tranche d'âge (65, 75, 85, 92 ans), affiche la formule la mieux notée selon le Selectra Score sur ce profil spécifique. Composant purement éditorial, sans CTA monétisation : le visiteur clique sur le nom de l'assureur pour accéder à sa page dédiée. Le tri se fait par selectra_score_points DESC sur le profil cible, consommé live depuis InsuranceApi.
Aucune prop. Le composant consomme directement le helper goodassur_senior_health_top1_by_profile() qui calcule en interne.
| Âge | Mutuelle recommandée | Formule | Besoins typiques |
|---|---|---|---|
| 🟢 65 ans |
Heyme
|
Ambre | Jeune retraité, en bonne santé. Besoins prioritaires : optique et dentaire. |
| 🟡 75 ans |
Heyme
|
Ambre | Senior actif. Besoins prioritaires : dentaire, audition et hospitalisation. |
| 🟠 85 ans |
Heyme
|
Ambre | Senior avancé. Besoins prioritaires : hospitalisation et dépassements d'honoraires. |
| 🔴 92 ans |
Heyme
|
Ambre | Grand âge. Besoins prioritaires : hospitalisation, médecine douce et assistance. |
Recommandation établie selon le Selectra Score le plus élevé sur chacun des 4 profils seniors (65, 75, 85 et 92 ans), mis à jour en mai 2026. Référencement gratuit.
Exemple
<x-senior-age-recommendation />
sites/goodassur.com/helpers/senior-mutuelle-ranker.php. Tri Selectra Score, cadence éditoriale mensuelle (cf. convention-compliance §5.7).