Close Menu
Français FoisFrançais Fois
  • Actualités
  • International
  • Politique
  • Société
  • High-Tech
  • Economie
  • Divertissement
  • Culture
  • Justice
  • Police
  • Plus
    • Education
    • Communiqué de Presse
    • Mondial
Tendance
Les Kurdes d’Iran, possibles acteurs d’un front intérieur pour affaiblir le régime de Téhéran

Les Kurdes d’Iran, possibles acteurs d’un front intérieur pour affaiblir le régime de Téhéran

mars 5, 2026
Mort de Nahel en 2023 : le policier mis en cause sera jugé pour violences ayant entraîné la mort sans intention de la donner et non pour meurtre, ordonne la cour d’appel de Versailles

Mort de Nahel en 2023 : le policier mis en cause sera jugé pour violences ayant entraîné la mort sans intention de la donner et non pour meurtre, ordonne la cour d’appel de Versailles

mars 5, 2026
Vous ne connaissez rien aux « intercos » ? Ce qu’il faut savoir sur cet enjeu majeur et méconnu des municipales

Vous ne connaissez rien aux « intercos » ? Ce qu’il faut savoir sur cet enjeu majeur et méconnu des municipales

mars 5, 2026
En pleine incertitude économique, la Chine pose ses ambitions à cinq ans : à fond dans l’ultratechnologie et relance de la consommation

En pleine incertitude économique, la Chine pose ses ambitions à cinq ans : à fond dans l’ultratechnologie et relance de la consommation

mars 5, 2026
Six mois après la révolte de la « gen Z », le Népal assoiffé de changement

Six mois après la révolte de la « gen Z », le Népal assoiffé de changement

mars 5, 2026
Facebook X (Twitter) Instagram
Tendance
  • Les Kurdes d’Iran, possibles acteurs d’un front intérieur pour affaiblir le régime de Téhéran
  • Mort de Nahel en 2023 : le policier mis en cause sera jugé pour violences ayant entraîné la mort sans intention de la donner et non pour meurtre, ordonne la cour d’appel de Versailles
  • Vous ne connaissez rien aux « intercos » ? Ce qu’il faut savoir sur cet enjeu majeur et méconnu des municipales
  • En pleine incertitude économique, la Chine pose ses ambitions à cinq ans : à fond dans l’ultratechnologie et relance de la consommation
  • Six mois après la révolte de la « gen Z », le Népal assoiffé de changement
  • A Neuf-Brisach, Stanislas Belhomme réveille les fortifications historiques de Vauban
  • Crédit immobilier : une baisse ne fait pas le printemps
  • Les agences immobilières confrontées à un racisme devenu sans fard : « La gêne a changé de camp »
  • Confidentialité
  • Termes
  • Contacter
Histoires Web
Français FoisFrançais Fois
Bulletin S'identifier
  • Actualités
  • International
  • Politique
  • Société
  • High-Tech
  • Economie
  • Divertissement
  • Culture
  • Justice
  • Police
  • Plus
    • Education
    • Communiqué de Presse
    • Mondial
Français FoisFrançais Fois
Home » Municipales 2026 : découvrez les candidats dans votre commune
Municipales 2026 : découvrez les candidats dans votre commune
Politique

Municipales 2026 : découvrez les candidats dans votre commune

PersonnelBy Personnelmars 2, 2026

La campagne officielle des élections municipales 2026 s’est ouverte, lundi 2 mars. Plus de 50 000 listes et 900 000 candidats se préparent donc dans les 34 944 communes de France et les arrondissements de Paris, Lyon et Marseille où auront lieu des élections municipales et communautaires les 15 et 22 mars.

Retrouvez toutes les listes candidates dans votre commune grâce au moteur de recherche ci-dessous :

`;

const code_dept = code_commune.startsWith(« 97 ») || code_commune.startsWith(« 98 ») ? code_commune.slice(0, 3) : « 0 » + code_commune.slice(0, 2);
const url_dept = `https://assets-decodeurs.lemonde.fr/decodeurs/municipales_2026_snippets/municipales/exports/2026/T1/json-candidatures/${code_dept}.json`;
console.log(« Fetching data for department », url_dept);
const data_dept = await fetch(url_dept)
.then((response) => response.json())
.catch((error) => {
console.error(« Error fetching data for department », code_dept, error);
container.querySelector(« .municipalesResultsList .municipalesResults__bars »).innerHTML = `

Les candidatures ne sont pas encore disponibles pour cette commune. Revenez plus tard.

`;

return null;
});

if (data_dept) {
return data_dept[code_commune];
}

return null;
});

if (!data) {
return;
}

console.log(data);

container.querySelector(« .lmui-chart__title »).innerHTML = mdm_html(force_cityname ? city_name : data.lib);
const sieges_a_pourvoir_html = data.sieges_a_pourvoir ? `${data.sieges_a_pourvoir.toLocaleString(locale)} siège${data.sieges_a_pourvoir > 1 ? « s » : «  »} à pourvoir dans la commune` : «  »;
const sieges_epci_html = data.sieges_a_pourvoir_epci ? ` et ${data.sieges_a_pourvoir_epci.toLocaleString(locale)} siège${data.sieges_a_pourvoir_epci > 1 ? « s » : «  »} à pourvoir au niveau communautaire` : «  »;
const population_html = data.population ? `${(+data.population).toLocaleString(locale)} habitant${+data.population > 1 ? « s » : «  »}` : «  »;
// Call shared function to render lists
container.querySelector(« .municipalesResultsList .municipalesResults__mentions »).innerHTML = `

${population_html}

${sieges_a_pourvoir_html}${sieges_epci_html}

`;

if (data.sans_candidatures) {
container.querySelector(« .municipalesResultsList .municipalesResults__bars »).innerHTML = `

Aucune candidature n’a été déposée dans cette commune.

`;
} else {
const sortedListes = data.listes;
sortedListes.sort((a, b) => slugify(a.tete.nom).localeCompare(slugify(b.tete.nom)));
const listItemsHtml = sortedListes.map((liste, index_liste) => {
const nuanceData = nuances ? nuances[liste.nuance] : null;
const lightColor = nuanceData ? nuanceData.couleur : « #7f7f7f »;
const darkColor = nuanceData ? nuanceData.couleur_dark : « #7f7f7f »;
const nuanceShortLabel = nuanceData ? nuanceData.nom_long : liste.nuance;

let nuanceHtml = «  »;
if (nuanceShortLabel) {
nuanceHtml = `${nuanceShortLabel}`;
}
return `

  • ${liste.tete.civ} ${liste.tete.prenom} ${liste.tete.nom}

    ${nuanceHtml}

    Liste : « ${liste.lib} »

  • `;
    });
    container.querySelector(« .municipalesResultsList .municipalesResults__bars »).innerHTML = listItemsHtml.join(«  »);
    }
    }

    let max_n_to_display = 5,
    min_char_to_search = 1,
    format_to_search = slugify,
    no_results_message = « Aucun résultat avec cette recherche »;

    // Paramètres définits à l’initialisation

    function reset_func() {}

    async function autocomplete_communes_decodeurs(id_container, func_to_treat_result, func_to_reset, max_n_to_display = 5, no_results_message = « Aucun résultat avec cette recherche ») {
    const get_search_value_in_data = (f) => {
    const postcode = f.properties.postcode;
    const dept_code = (postcode.startsWith(« 97 ») || postcode.startsWith(« 98 ») ? postcode.slice(0, 3) : postcode.slice(0, 2));
    return f.properties.city + (f.properties.postcode ? ` (${dept_code})` : «  »);
    };
    // OnSearch / OnResults
    const onSearch = async (currentValue) => {
    // Typical search
    if (currentValue.replaceAll(/s/g, «  »).length < 3) return;
    const q = currentValue.replaceAll(/s/g, « + »);
    const api_communes = `https://data.geopf.fr/geocodage/search/?q=${q}&type=municipality&limit=${max_n_to_display}`;

    const data = await fetch(api_communes);
    const rep = await data.json();
    const data_communes = rep.features;
    return data_communes;
    };
    await _generic_autocomplete(id_container, get_search_value_in_data, onSearch, func_to_treat_result, func_to_reset, 3, no_results_message);
    }

    autocomplete_communes_decodeurs(
    // L’id du lmui-search
    « search_communes »,

    //Une fonction qui s’execute quand on sélectionne un item
    (result) => {
    const code_commune = result.properties.citycode;
    const city_name = result.properties.city;
    if (arrondissementsPLM[code_commune]) {
    const arrondissement = arrondissementsPLM[code_commune];
    return updateResults(arrondissement.code_secteur, arrondissement.lib, true);
    }
    return updateResults(code_commune, city_name);
    },

    // Une fonction qui s’execute quand on désélectionne / reset
    reset_func,

    // Nombre de choix dans le autocomplete, par défaut 5
    max_n_to_display,

    // Nombre de lettres avant le déclenchement de l’autocomplete, par défaut 3
    min_char_to_search,

    // Une fonction qui normalise les input pour la recherche, par défaut slugify,
    // c’est à dire que la casse et les accents sont ignorés
    format_to_search,

    // Texte à afficher si aucun resultat, par défaut « Aucun résultat avec cette recherche »
    no_results_message
    );

    Municipales 2026 : explorez nos articles politiques ville par ville

    Protomaps © OpenStreetMap

    Utilisez deux doigts pour zoomer et un seul pour déplacer la carte. Cliquez sur une ville pour afficher la liste des articles.
    Utilisez la molette de votre souris pour zoomer et le clic gauche pour déplacer la carte. Cliquez sur une ville pour afficher la liste des articles.

    `,
    )
    .join(«  »);

    const content = `

    ${ville} ${departement != « Paris » ? `(${departement})` : «  »}

    ${articlesStrings}

    `;

    // Fill tooltip
    tooltip
    .select(« .tooltipcontent »)
    .attr(« aria-label », « Articles politiquess »)
    .html(content);

    tooltip.select(« .tooltipcross »).on(« click », onMouseOut);

    // Display and translate tooltip
    console.log(« isMobile », isMobile);

    if (isMobile) {
    tooltip
    .classed(« tooltip–hidden », false)
    .style(« bottom », 0)
    .style(« left », 0);
    } else {
    tooltip
    .classed(« tooltip–hidden », false)
    .style(« bottom », `${y}px`)
    .style(« left », `${x}px`);
    }
    }

    // Hide tooltip

    function onMouseOut() {
    // document.querySelector(‘canvas’).style.cursor= »unset »;

    tooltip.classed(« tooltip–hidden », true);
    }

    const mapSettings = {
    center: [4.7, 47],
    zoom: 4,
    minZoom: 4,
    maxZoom: 12,
    bearing: 0,
    pitch: 0,
    };

    const themeUrl = isDark
    ? « https://assets-decodeurs.lemonde.fr/decodeurs/assets/protomaps/contrast_daltoniens_darkmode_fr_v0.0.5.json »
    : « https://assets-decodeurs.lemonde.fr/decodeurs/assets/protomaps/contrast_daltoniens_fr_v0.0.5.json »;

    const theme = await d3.json(themeUrl);

    const map = new maplibregl.Map({
    container: « carte_reportage_municipales »,
    style: {
    version: 8,
    glyphs: « https://assets-decodeurs.lemonde.fr/decodeurs/assets/protomaps_fonts/{fontstack}/{range}.pbf »,
    sources: {
    protomaps: {
    type: « vector »,
    maxzoom: 15,
    tiles: [
    « https://prd-protomap.8084.lemonde.io/20240111/{z}/{x}/{y}.mvt »,
    ],
    },
    },
    layers: theme,
    },
    center: mapSettings.center,
    zoom: mapSettings.zoom,
    minZoom: mapSettings.minZoom,
    maxZoom: mapSettings.maxZoom,
    //pitch: mapSettings.pitch,
    //bearing: mapSettings.bearing,
    //maxBounds: mapSettings.bounds
    });

    const deckOverlay = new deck.MapboxOverlay({
    onClick: ({ x, y, object }) => {
    if (object == undefined) return onMouseOut();
    const mapContainer = document.getElementById(
    « carte_reportage_municipales »,
    );
    const adjustedY = mapContainer.offsetHeight – y;
    return (
    object && fillTooltip({ x, y: adjustedY, object })
    );
    },
    onDragStart: () => onMouseOut(),
    onResize: () => onMouseOut(),
    pickingRadius: isMobile ? 20 : 8,
    });

    // Add deck layer
    map.addControl(deckOverlay);

    let scale = new maplibregl.ScaleControl({
    maxWidth: 80,
    unit: « metric »,
    });

    map.addControl(scale);

    // Enable exploration

    map.boxZoom.disable();
    map.keyboard.disable();
    map.doubleClickZoom.disable();
    map.touchZoomRotate.disable();
    map.dragRotate.disable();
    map.touchPitch.disable();
    map.scrollZoom.enable();
    map.boxZoom.enable();
    map.touchZoomRotate.enable();
    map.dragPan.enable();

    map.fitBounds(boundsMetropole);

    // map.flyTo({
    // center: mapSettings.center,
    // zoom: mapSettings.zoom + 0.2,
    // speed: 0.25,
    // curve: 0.2,
    // });

    map.addControl(
    new maplibregl.NavigationControl({ showCompass: false }),
    « top-left »,
    );

    // Render layerspolys
    function render() {
    const layerArticles = new deck.IconLayer({
    id: « layerarticles »,
    data: data,
    getPosition: (d) => {
    return [+d[« Longitude »], +d[« Latitude »], 0];
    },
    getColor: [0, 0, 0, 220],
    mask: false,
    getIcon: (d) => ({
    url: isDark? »https://assets-decodeurs.lemonde.fr/decodeurs/assets/2410-gaza-1an-medias/marker-svg-test.svg »: »https://assets-decodeurs.lemonde.fr/decodeurs/medias/icon lemonde article/picto.png »,
    width: 254,
    height: 376,
    anchorY: 376,
    }),
    getSize: 25,
    pickable: true,
    //parameters: {
    // blendFunc: [1, 100], // GL.ONE, GL.ONE_MINUS_SRC_ALPHA
    //},
    loadOptions: {
    imagebitmap: {
    premultiplyAlpha: « none »,
    },
    },
    });

    deckOverlay.setProps({ layers: [layerArticles] });
    }

    // Render first view
    render();

    // Watch flyto

    document
    .querySelectorAll(« .carte_reportage_municipales__flytobtn »)
    .forEach((btn) => {
    btn.onclick = () => {
    const place = btn.getAttribute(« data-attr »);
    switch (place) {
    case « reset »:
    map.fitBounds(boundsMetropole, {
    animate: false,
    });
    break;
    case « reunion »:
    map.fitBounds(boundsReunion, {
    center: [55.558823, -21.109403],
    animate: false,
    });

    break;
    case « guyane »:
    map.fitBounds(boundsGuyane, {
    center: [-53.14191, 4.113978],
    animate: false,
    });

    break;
    case « antilles »:
    map.fitBounds(boundsAntilles, {
    center: [-61.235294, 15.125274],
    animate: false,
    });

    break;
    case « mayotte »:
    map.fitBounds(boundsMayotte, {
    center: [45.150284, -12.800424],
    animate: false,
    });

    break;
    case « polynesie »:
    map.fitBounds(boundsPolynesie, {
    animate: false,
    });
    break;
    default:
    map.fitBounds(boundsMetropole, {
    animate: false,
    });
    break;
    }
    };
    });

    /* AUTOCOMPLETE*/

    let max_n_to_display = 6;
    let min_char_to_search = 1;
    let format_to_search = slugify;
    let no_results_message = « Aucun résultat avec cette recherche »;

    const reset_func = () => {
    };
    const func_to_treat_result_donnees = (result) => {
    map.flyTo({
    center: [result[« Longitude »], result[« Latitude »]],
    zoom: 10,
    });
    };
    const dedupedData = Array.from(
    new Set(data.map((d) => d[« Ville »].trim().toLowerCase())),
    ).map((ville) => {
    return data.find((d) => d[« Ville »].trim().toLowerCase() === ville.trim().toLowerCase());
    });
    const get_text_in_data = (x) => x[« Ville »] + (x[« Département »]? ` (${x[« Département »]})`: «  »);

    autocomplete_decodeurs(
    // L’id du lmui-search
    « ecoles-pesticides-search »,

    // Les données dans lesquelles chercher
    dedupedData,

    // Une fonction qui s’execute quand on sélectionne un item, elle prend en argument
    // l’objet sélectionné
    func_to_treat_result_donnees,

    // Une fonction qui s’execute quand on désélectionne / reset
    reset_func,

    // Une fonction qui sélectionne le texte à chercher dans le tableau (optionnel si vos données
    // ne sont que du texte)
    get_text_in_data,

    // Nombre de choix dans le autocomplete, par défaut 5
    max_n_to_display,

    // Nombre de lettres avant le déclenchement de l’autocomplete, par défaut 3
    min_char_to_search,

    // Une fonction qui normalise les input pour la recherche, par défaut slugify, c’est à dire que la casse
    // et les accents sont ignorés
    format_to_search,

    // Texte à afficher si aucun resultat, par défaut « Aucun résultat avec cette recherche »
    no_results_message,
    );
    }
    }

    // const INIT_DELAY = 2000; // 2 secondes
    document.addEventListener(« DOMContentLoaded », () => {
    initMap();
    });
    window.onresize = () => {

    isMobile = window.innerWidth <= 600;
    };
    }

    initViz();

    Manon Romain et Valentin Regnault

    L’espace des contributions est réservé aux abonnés.

    Abonnez-vous pour accéder à cet espace d’échange et contribuer à la discussion.

    S’abonner
    Share. Facebook Twitter LinkedIn Telegram WhatsApp Email

    Continue de lire

    Vous ne connaissez rien aux « intercos » ? Ce qu’il faut savoir sur cet enjeu majeur et méconnu des municipales

    Vous ne connaissez rien aux « intercos » ? Ce qu’il faut savoir sur cet enjeu majeur et méconnu des municipales

    Municipales 2026 : au-delà des apparences, la question écologique est-elle devenue moins clivante qu’au niveau national ?

    Municipales 2026 : au-delà des apparences, la question écologique est-elle devenue moins clivante qu’au niveau national ?

    Le PS et Place publique condamnent « les propos antisémites » de Jean-Luc Mélenchon et coupent les ponts avant les municipales

    Le PS et Place publique condamnent « les propos antisémites » de Jean-Luc Mélenchon et coupent les ponts avant les municipales

    « Les usagers ne nous comprennent pas toujours » : les impôts font appel à l’IA pour être « moins verbeux »

    « Les usagers ne nous comprennent pas toujours » : les impôts font appel à l’IA pour être « moins verbeux »

    l’érosion marine dans toutes les têtes

    l’érosion marine dans toutes les têtes

    Grèce : les dirigeants d’Aube dorée, ancien parti néonazi,  reconnus coupables en appel de « direction d’une organisation criminelle »

    Grèce : les dirigeants d’Aube dorée, ancien parti néonazi, reconnus coupables en appel de « direction d’une organisation criminelle »

    Ce que pourrait changer la « dissuasion nucléaire avancée » annoncée par Emmanuel Macron

    Ce que pourrait changer la « dissuasion nucléaire avancée » annoncée par Emmanuel Macron

    Entre LFI et le PS, la tension monte à l’approche des élections municipales, après les propos de Jean-Luc Mélenchon

    Entre LFI et le PS, la tension monte à l’approche des élections municipales, après les propos de Jean-Luc Mélenchon

    Haute fonction publique : le gouvernement veut rétablir l’interdiction pour les préfets d’être syndiqués

    Haute fonction publique : le gouvernement veut rétablir l’interdiction pour les préfets d’être syndiqués

    Add A Comment
    Leave A Reply Cancel Reply

    Choix de l'éditeur

    Mort de Nahel en 2023 : le policier mis en cause sera jugé pour violences ayant entraîné la mort sans intention de la donner et non pour meurtre, ordonne la cour d’appel de Versailles

    Mort de Nahel en 2023 : le policier mis en cause sera jugé pour violences ayant entraîné la mort sans intention de la donner et non pour meurtre, ordonne la cour d’appel de Versailles

    mars 5, 2026
    Vous ne connaissez rien aux « intercos » ? Ce qu’il faut savoir sur cet enjeu majeur et méconnu des municipales

    Vous ne connaissez rien aux « intercos » ? Ce qu’il faut savoir sur cet enjeu majeur et méconnu des municipales

    mars 5, 2026
    En pleine incertitude économique, la Chine pose ses ambitions à cinq ans : à fond dans l’ultratechnologie et relance de la consommation

    En pleine incertitude économique, la Chine pose ses ambitions à cinq ans : à fond dans l’ultratechnologie et relance de la consommation

    mars 5, 2026
    Six mois après la révolte de la « gen Z », le Népal assoiffé de changement

    Six mois après la révolte de la « gen Z », le Népal assoiffé de changement

    mars 5, 2026

    Derniers Articles

    A Neuf-Brisach, Stanislas Belhomme réveille les fortifications historiques de Vauban

    A Neuf-Brisach, Stanislas Belhomme réveille les fortifications historiques de Vauban

    mars 5, 2026
    Crédit immobilier : une baisse ne fait pas le printemps

    Crédit immobilier : une baisse ne fait pas le printemps

    mars 5, 2026
    Les agences immobilières confrontées à un racisme devenu sans fard : « La gêne a changé de camp »

    Les agences immobilières confrontées à un racisme devenu sans fard : « La gêne a changé de camp »

    mars 5, 2026
    Facebook X (Twitter) Pinterest TikTok Instagram
    © 2026 Français Fois. Tous droits réservés.
    • Politique de Confidentialité
    • Termes et Conditions
    • Contacter

    Type above and press Enter to search. Press Esc to cancel.