{"id":5568,"date":"2026-05-20T08:37:07","date_gmt":"2026-05-20T06:37:07","guid":{"rendered":"https:\/\/www.bras-de-fer.fr\/blog\/proteines-vegetales-sport\/"},"modified":"2026-05-20T08:37:07","modified_gmt":"2026-05-20T06:37:07","slug":"proteines-vegetales-sport","status":"publish","type":"post","link":"https:\/\/www.bras-de-fer.fr\/blog\/proteines-vegetales-sport\/","title":{"rendered":"Prot\u00e9ines v\u00e9g\u00e9tales sport : une liste compl\u00e8te pour bien choisir"},"content":{"rendered":"<p class=\"wp-block-paragraph\"><strong>Prot\u00e9ines v\u00e9g\u00e9tales sport : une liste compl\u00e8te pour bien choisir<\/strong><\/p>\n\n<p class=\"wp-block-paragraph\">Changer son alimentation sans perdre en performance demande m\u00e9thode et rep\u00e8res concrets. Cet article offre une vue pratique et chiffr\u00e9e des meilleures <strong>sources v\u00e9g\u00e9tales<\/strong> de prot\u00e9ines, des strat\u00e9gies pour la <strong>musculation v\u00e9g\u00e9tale<\/strong>, des erreurs \u00e0 \u00e9viter et des recettes pr\u00eates \u00e0 l\u2019emploi. Que vous soyez adepte d\u2019une <strong>alimentation v\u00e9g\u00e9tarienne<\/strong> ou en transition vers le v\u00e9ganisme, vous trouverez des menus, des portions et des astuces de r\u00e9cup\u00e9ration pour maintenir voire am\u00e9liorer vos <strong>performances sportives<\/strong>. Les chiffres proviennent des bases nutritionnelles reconnues et des recommandations de nutrition sportive pour vous permettre d\u2019agir imm\u00e9diatement.<\/p>\n\n<p class=\"wp-block-paragraph\"><strong>En bref :<\/strong><\/p>\n\n<ul class=\"wp-block-list\"><li><strong>Objectif prot\u00e9ines :<\/strong> visez 1,4\u20132,0 g\/kg\/j selon l\u2019activit\u00e9.<\/li><li><strong>Deux pivots par jour :<\/strong> tempeh\/tofu\/seitan ou un shake pois+riz pour s\u00e9curiser l\u2019apport.<\/li><li><strong>Combinaisons utiles :<\/strong> riz+lentilles, quinoa+pois chiches couvrent les acides amin\u00e9s.<\/li><li><strong>Micros \u00e0 surveiller :<\/strong> vitamine B12, fer, om\u00e9ga\u20113 et vitamine D.<\/li><li><strong>Pratique terrain :<\/strong> privil\u00e9giez aliments bruts + 1 compl\u00e9ment prot\u00e9ique si objectif \u00e9lev\u00e9.<\/li><\/ul>\n\n<h2 class=\"wp-block-heading\">Pourquoi choisir les prot\u00e9ines v\u00e9g\u00e9tales pour le sport<\/h2>\n\n<p class=\"wp-block-paragraph\">Les prot\u00e9ines v\u00e9g\u00e9tales offrent un bon rapport prot\u00e9ines\/\u00e9nergie, des fibres, des min\u00e9raux et des antioxydants qui favorisent la sant\u00e9 cardiovasculaire et la r\u00e9cup\u00e9ration. Remplacer partiellement des prot\u00e9ines animales par des prot\u00e9ines v\u00e9g\u00e9tales diminue le cholest\u00e9rol LDL et le risque coronarien, tout en r\u00e9duisant fortement l\u2019empreinte carbone.<\/p>\n\n<p class=\"wp-block-paragraph\">Pour la <strong>r\u00e9cup\u00e9ration sportive<\/strong>, l\u2019association prot\u00e9ines + glucides reste la cl\u00e9 : l\u00e9gumineuses, c\u00e9r\u00e9ales compl\u00e8tes et produits \u00e0 base de soja remplissent ce r\u00f4le tout en apportant vitamines B et magn\u00e9sium. C\u2019est une strat\u00e9gie solide pour pr\u00e9server la force et la masse maigre.<\/p>\n\n<p class=\"wp-block-paragraph\">Insight : choisir v\u00e9g\u00e9tal, c\u2019est optimiser l\u2019\u00e9nergie, les micronutriments et l\u2019impact environnemental sans sacrifier la performance.<\/p>\n\n<h2 class=\"wp-block-heading\">Top 30 des sources v\u00e9g\u00e9tales : valeurs et usages pratiques<\/h2>\n\n<p class=\"wp-block-paragraph\">Voici une s\u00e9lection prioritaire pour la nutrition sportive, class\u00e9e par teneur en prot\u00e9ines (valeurs pour 100 g cru sauf mention). Ces aliments servent de base pour construire des repas adapt\u00e9s \u00e0 la musculation, au crossfit ou \u00e0 l\u2019endurance.<\/p>\n\n<figure class=\"wp-block-table\"><table>\n<thead>\n<tr>\n<th>Aliment<\/th>\n<th>Prot\u00e9ines \/100 g<\/th>\n<th>Calories \/100 g<\/th>\n<th>Usage sportif<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Spiruline (s\u00e9ch\u00e9e)<\/td>\n<td>57 g<\/td>\n<td>290 kcal<\/td>\n<td>compl\u00e9ment (5\u201310 g\/j)<\/td>\n<\/tr>\n<tr>\n<td>Levure nutritionnelle<\/td>\n<td>50 g<\/td>\n<td>320 kcal<\/td>\n<td>assaisonnement riche en B\u2011vitamines<\/td>\n<\/tr>\n<tr>\n<td>Soja sec<\/td>\n<td>36 g<\/td>\n<td>375 kcal<\/td>\n<td>tofu\/tempeh\/edamame<\/td>\n<\/tr>\n<tr>\n<td>Graines de chanvre<\/td>\n<td>32 g<\/td>\n<td>553 kcal<\/td>\n<td>topping riche en om\u00e9ga\u20113<\/td>\n<\/tr>\n<tr>\n<td>Graines de courge<\/td>\n<td>30 g<\/td>\n<td>559 kcal<\/td>\n<td>collation \u00e9nerg\u00e9tique<\/td>\n<\/tr>\n<tr>\n<td>Lentilles s\u00e8ches<\/td>\n<td>25 g<\/td>\n<td>345 kcal<\/td>\n<td>plat principal, batch\u2011cooking<\/td>\n<\/tr>\n<tr>\n<td>Seitan (gluten)<\/td>\n<td>25 g<\/td>\n<td>120 kcal<\/td>\n<td>substitut riche pour la musculation<\/td>\n<\/tr>\n<tr>\n<td>Tofu ferme<\/td>\n<td>17 g<\/td>\n<td>144 kcal<\/td>\n<td>post\u2011train, polyvalent<\/td>\n<\/tr>\n<tr>\n<td>Quinoa cru<\/td>\n<td>14 g<\/td>\n<td>368 kcal<\/td>\n<td>compl\u00e9ment glucides+prot\u00e9ines<\/td>\n<\/tr>\n<tr>\n<td>Avoine (flocons)<\/td>\n<td>13 g<\/td>\n<td>389 kcal<\/td>\n<td>petit\u2011d\u00e9j \u00e9nerg\u00e9tique<\/td>\n<\/tr>\n<\/tbody>\n<\/table><\/figure>\n\n<p class=\"wp-block-paragraph\">Pour un tableau plus large et des variantes produits, consultez des listes compl\u00e8tes et comparatives disponibles chez <a href=\"https:\/\/alimentationsport.fr\/les-meilleures-sources-vegetales-de-proteines-pour-le-sport\/\" target=\"_blank\" rel=\"noopener\">les meilleures sources v\u00e9g\u00e9tales<\/a> ou des fiches techniques sur <a href=\"https:\/\/corps-sain.fr\/blog\/proteine-vegetale-liste\" target=\"_blank\" rel=\"noopener\">les prot\u00e9ines v\u00e9g\u00e9tales<\/a>.<\/p>\n\n<p class=\"wp-block-paragraph\">Insight : privil\u00e9giez 2\u20133 aliments denses (tofu\/tempeh\/seitan\/poudres) pour s\u00e9curiser l\u2019apport journalier.<\/p>\n\n<h3 class=\"wp-block-heading\">Focus l\u00e9gumineuses et digestibilit\u00e9<\/h3>\n\n<p class=\"wp-block-paragraph\">Les l\u00e9gumineuses fournissent 20\u201325 % de prot\u00e9ines \u00e0 sec ; apr\u00e8s cuisson, une portion de 200 g cuits apporte 15\u201320 g de prot\u00e9ines. Leur richesse en fibres stabilise la glyc\u00e9mie et favorise la sati\u00e9t\u00e9.<\/p>\n\n<p class=\"wp-block-paragraph\">Pour am\u00e9liorer l\u2019absorption des min\u00e9raux et r\u00e9duire les gaz : trempage 8\u201312 h, cuisson suffisante, germination ou fermentation. Ce sont des gestes simples qui augmentent la biodisponibilit\u00e9 du fer et du zinc.<\/p>\n\n<p class=\"wp-block-paragraph\">Insight : la r\u00e9gularit\u00e9 de consommation pr\u00e9vaut sur la quantit\u00e9 isol\u00e9e d\u2019un seul repas.<\/p>\n\n<h2 class=\"wp-block-heading\">Comment composer vos repas pour la musculation v\u00e9g\u00e9tale<\/h2>\n\n<p class=\"wp-block-paragraph\">Construire une journ\u00e9e prot\u00e9ique efficace se fait en 15 minutes : calculer la cible, r\u00e9partir 3\u20134 prises, choisir deux pivots et compl\u00e9ter avec c\u00e9r\u00e9ales et l\u00e9gumineuses.<\/p>\n\n<script src=\"https:\/\/cdn.jsdelivr.net\/npm\/@tailwindcss\/browser@4\"><\/script>\n\n<div id=\"calc-proteines-vegetales\" class=\"max-w-3xl mx-auto p-4 bg-white rounded-md shadow-md text-gray-900\" role=\"region\" aria-label=\"Calculateur de besoins en prot\u00e9ines v\u00e9g\u00e9tales\" style=\"min-height:120px; max-height:1800px; overflow:auto;\">\n  <h3 class=\"text-2xl font-semibold mb-2\">Calculateur \u2014 Besoins en prot\u00e9ines (v\u00e9g\u00e9tales)<\/h3>\n  <p class=\"text-sm text-gray-600 mb-4\">\n    Calculez rapidement vos besoins en prot\u00e9ines (g\/j) : poids en kg \u00d7 facteur selon objectif. Facteurs recommand\u00e9s&nbsp;: s\u00e9dentaire 0,9 ; sport loisir 1,4\u20131,8 ; musculation 1,6\u20132,0.\n  <\/p>\n\n  <form id=\"form-proteines\" class=\"space-y-4\" onsubmit=\"return false;\" aria-label=\"Formulaire calcul prot\u00e9ines\">\n    <div class=\"grid grid-cols-1 sm:grid-cols-3 gap-3\">\n      <label class=\"flex flex-col\" for=\"poids\">\n        <span class=\"text-sm font-medium\">Poids (kg)<\/span>\n        <input id=\"poids\" type=\"number\" inputmode=\"decimal\" step=\"0.1\" min=\"20\" max=\"300\" value=\"70\" aria-describedby=\"poids-help\" class=\"mt-1 px-3 py-2 border rounded focus:outline-none focus:ring\" \/>\n        <span id=\"poids-help\" class=\"text-xs text-gray-500\">Entrez votre poids en kilogrammes<\/span>\n      <\/label>\n\n      <label class=\"flex flex-col\" for=\"preset\">\n        <span class=\"text-sm font-medium\">Objectif (pr\u00e9-r\u00e9glage)<\/span>\n        <select id=\"preset\" class=\"mt-1 px-3 py-2 border rounded focus:outline-none focus:ring\" aria-describedby=\"preset-help\">\n          <option value=\"0.9\">S\u00e9dentaire \u2014 0,9 g\/kg<\/option>\n          <option value=\"1.4\">Sport loisir \u2014 bas 1,4 g\/kg<\/option>\n          <option value=\"1.6\" selected>Sport loisir \u2014 moyen 1,6 g\/kg<\/option>\n          <option value=\"1.8\">Sport loisir \u2014 haut 1,8 g\/kg<\/option>\n          <option value=\"1.6-alt\">Musculation \u2014 bas 1,6 g\/kg<\/option>\n          <option value=\"2.0\">Musculation \u2014 haut 2,0 g\/kg<\/option>\n          <option value=\"custom\">Personnalis\u00e9<\/option>\n        <\/select>\n        <span id=\"preset-help\" class=\"text-xs text-gray-500\">Choisissez un facteur recommand\u00e9 ou personnalisez<\/span>\n      <\/label>\n\n      <label id=\"custom-factor-wrap\" class=\"flex flex-col\" for=\"factor\" hidden>\n        <span class=\"text-sm font-medium\">Facteur personnalis\u00e9 (g\/kg)<\/span>\n        <input id=\"factor\" type=\"number\" inputmode=\"decimal\" step=\"0.05\" min=\"0.5\" max=\"3.0\" value=\"1.6\" class=\"mt-1 px-3 py-2 border rounded focus:outline-none focus:ring\" aria-describedby=\"factor-help\" \/>\n        <span id=\"factor-help\" class=\"text-xs text-gray-500\">Ex. 1.8 pour 1,8 g\/kg<\/span>\n      <\/label>\n    <\/div>\n\n    <div class=\"grid grid-cols-1 sm:grid-cols-3 gap-3 items-end\">\n      <label class=\"flex flex-col\" for=\"repas\">\n        <span class=\"text-sm font-medium\">Nombre de prises par jour<\/span>\n        <input id=\"repas\" type=\"number\" min=\"1\" max=\"8\" step=\"1\" value=\"4\" class=\"mt-1 px-3 py-2 border rounded focus:outline-none focus:ring\" aria-describedby=\"repas-help\" \/>\n        <span id=\"repas-help\" class=\"text-xs text-gray-500\">Permet d&rsquo;afficher g par prise<\/span>\n      <\/label>\n\n      <div class=\"col-span-1 sm:col-span-2 flex gap-2 items-center\">\n        <button id=\"calc-btn\" type=\"button\" class=\"px-4 py-2 bg-green-600 text-white rounded hover:bg-green-700 focus:outline-none focus:ring\" aria-haspopup=\"true\">Calculer<\/button>\n        <button id=\"auto-btn\" type=\"button\" class=\"px-4 py-2 bg-gray-200 text-gray-800 rounded hover:bg-gray-300 focus:outline-none focus:ring\" aria-pressed=\"false\">Calcul automatique<\/button>\n        <button id=\"reset-btn\" type=\"button\" class=\"px-4 py-2 bg-red-50 text-red-700 rounded hover:bg-red-100 focus:outline-none focus:ring\">R\u00e9initialiser<\/button>\n      <\/div>\n    <\/div>\n  <\/form>\n\n  <div id=\"resultats\" class=\"mt-4 space-y-3\" aria-live=\"polite\">\n    <div id=\"calculation-card\" class=\"p-3 border rounded bg-gray-50\">\n      <p id=\"calculation-text\" class=\"text-sm text-gray-800\">Entrez vos donn\u00e9es puis cliquez sur \u00abCalculer\u00bb.<\/p>\n    <\/div>\n\n    <details id=\"sources-details\" class=\"p-3 border rounded bg-white\">\n      <summary class=\"text-sm font-medium cursor-pointer\">Suggestions de sources de prot\u00e9ines v\u00e9g\u00e9tales (valeurs approximatives par 100g)<\/summary>\n      <div class=\"mt-3 text-sm text-gray-700\">\n        <p>Les valeurs sont indicatives pour estimer des portions. Choisissez des sources vari\u00e9es pour un profil d&rsquo;acides amin\u00e9s \u00e9quilibr\u00e9.<\/p>\n\n        <table class=\"w-full mt-3 text-sm\" role=\"table\" aria-label=\"Tableau des sources de prot\u00e9ines\">\n          <thead>\n            <tr class=\"text-left\">\n              <th class=\"py-1\">Aliment<\/th>\n              <th class=\"py-1\">Prot\u00e9ines (g\/100g)<\/th>\n              <th class=\"py-1\">Portion n\u00e9cessaire (g) pour couvrir besoin<\/th>\n            <\/tr>\n          <\/thead>\n          <tbody id=\"sources-tbody\">\n            <!-- Rempli dynamiquement -->\n          <\/tbody>\n        <\/table>\n\n        <div class=\"mt-3\">\n          <label class=\"flex items-center gap-2 text-sm\">\n            <input id=\"show-all\" type=\"checkbox\" class=\"h-4 w-4\" \/>\n            <span>Montrer toutes les sources et calculer portions<\/span>\n          <\/label>\n        <\/div>\n      <\/div>\n    <\/details>\n\n    <div id=\"example-box\" class=\"text-xs text-gray-500\">\n      Exemple fourni : 70 kg \u00d7 1,8 = 126 g\/j\n    <\/div>\n  <\/div>\n<\/div>\n\n<script>\n\/*\n  Calculateur de besoins en prot\u00e9ines v\u00e9g\u00e9tales \u2014 JavaScript\n  - Toutes les cha\u00eenes sont en fran\u00e7ais (facilement modifiables ci-dessous).\n  - Pas d'API externe utilis\u00e9 (outil autonome, gratuit).\n  - Performance & accessibilit\u00e9 : code l\u00e9ger, \u00e9v\u00e9nements minimaux, aria-live pour r\u00e9sultats.\n*\/\n\n\/* ========== Donn\u00e9es \u00e9ditables (en fran\u00e7ais) ========== *\/\nconst TEXT = {\n  enterData: \"Entrez vos donn\u00e9es puis cliquez sur \u00abCalculer\u00bb.\",\n  result: (poids, factor, total, perMeal, meals) =>\n    `Calcul : ${poids} kg \u00d7 ${factor} = ${total.toFixed(0)} g\/j (${perMeal.toFixed(0)} g par prise \u00d7 ${meals} prises).`,\n  invalidWeight: \"Poids invalide \u2014 entrez une valeur comprise entre 20 et 300 kg.\",\n  invalidFactor: \"Facteur invalide \u2014 entrez une valeur entre 0,5 et 3,0 g\/kg.\"\n};\n\n\/* Liste statique de sources v\u00e9g\u00e9tales (valeurs approximatives par 100g)\n   Note : ces valeurs sont indicatives pour estimer des portions.\n*\/\nconst SOURCES = [\n  { name: \"Tofu ferme (100g)\", protein: 8 },\n  { name: \"Tempeh (100g)\", protein: 19 },\n  { name: \"Seitan (100g)\", protein: 25 },\n  { name: \"Lentilles cuites (100g)\", protein: 9 },\n  { name: \"Pois chiches cuits (100g)\", protein: 9 },\n  { name: \"Quinoa cuit (100g)\", protein: 4.4 },\n  { name: \"Amandes (100g)\", protein: 21 },\n  { name: \"Edamame \/ soja cuit (100g)\", protein: 11 },\n  { name: \"Poudre prot\u00e9ine pois (100g)\", protein: 80 } \/\/ prot\u00e9ine isolat, valeur approximative\n];\n\n\/* ========== R\u00e9f\u00e9rences au DOM ========== *\/\nconst poidsInput = document.getElementById(\"poids\");\nconst presetSelect = document.getElementById(\"preset\");\nconst customWrap = document.getElementById(\"custom-factor-wrap\");\nconst factorInput = document.getElementById(\"factor\");\nconst repasInput = document.getElementById(\"repas\");\nconst calcBtn = document.getElementById(\"calc-btn\");\nconst autoBtn = document.getElementById(\"auto-btn\");\nconst resetBtn = document.getElementById(\"reset-btn\");\nconst calcText = document.getElementById(\"calculation-text\");\nconst sourcesTbody = document.getElementById(\"sources-tbody\");\nconst showAllCheckbox = document.getElementById(\"show-all\");\n\n\/* ========== Helpers ========== *\/\nfunction clampNumber(v, min, max) {\n  const n = Number(v);\n  if (isNaN(n)) return null;\n  return Math.min(max, Math.max(min, n));\n}\n\n\/* D\u00e9termine le facteur \u00e0 partir du preset ou du champ personnalis\u00e9 *\/\nfunction getFactorFromPreset() {\n  const val = presetSelect.value;\n  if (val === \"custom\") {\n    const custom = parseFloat(factorInput.value);\n    return isNaN(custom) ? null : custom;\n  }\n  \/\/ Certaines options comme \"1.6-alt\" mappent \u00e0 1.6 (libell\u00e9 alternatif)\n  if (val === \"1.6-alt\") return 1.6;\n  return parseFloat(val);\n}\n\n\/* Calcul principal *\/\nfunction calculerEtAfficher() {\n  const poidsRaw = parseFloat(poidsInput.value);\n  if (isNaN(poidsRaw) || poidsRaw < 20 || poidsRaw > 300) {\n    calcText.textContent = TEXT.invalidWeight;\n    return;\n  }\n  const factor = getFactorFromPreset();\n  if (factor === null || isNaN(factor) || factor < 0.5 || factor > 3.0) {\n    calcText.textContent = TEXT.invalidFactor;\n    return;\n  }\n  const meals = Math.max(1, Math.min(8, parseInt(repasInput.value) || 1));\n  const total = poidsRaw * factor;\n  const perMeal = total \/ meals;\n\n  \/\/ Affichage synth\u00e9tique\n  calcText.textContent = TEXT.result(poidsRaw, factor, total, perMeal, meals);\n\n  \/\/ Mettre \u00e0 jour le tableau des sources si demand\u00e9\n  if (showAllCheckbox.checked) {\n    updateSourcesTable(total);\n  } else {\n    \/\/ afficher 3 suggestions rapides par d\u00e9faut\n    updateSourcesTable(total, 3);\n  }\n}\n\n\/* Met \u00e0 jour le tableau des sources avec les portions n\u00e9cessaires *\/\nfunction updateSourcesTable(totalNeeded, maxRows = null) {\n  sourcesTbody.innerHTML = \"\";\n  const list = SOURCES.slice(); \/\/ copie\n  \/\/ Trier par densit\u00e9 prot\u00e9ique (d\u00e9croissant)\n  list.sort((a, b) => b.protein - a.protein);\n\n  const rows = maxRows ? list.slice(0, maxRows) : list;\n  for (const src of rows) {\n    const proteinPer100 = src.protein;\n    \/\/ si proteinPer100 proche de z\u00e9ro, \u00e9viter division\n    const portion = proteinPer100 > 0 ? (totalNeeded \/ proteinPer100) * 100 : Infinity;\n    const portionText = isFinite(portion) ? `${Math.round(portion)} g` : \"\u2014\";\n    const tr = document.createElement(\"tr\");\n    tr.innerHTML = `\n      <td class=\"py-1\">${src.name}<\/td>\n      <td class=\"py-1\">${proteinPer100} g<\/td>\n      <td class=\"py-1\">${portionText}<\/td>\n    `;\n    sourcesTbody.appendChild(tr);\n  }\n}\n\n\/* \u00c9v\u00e9nements et interactivit\u00e9 *\/\npresetSelect.addEventListener(\"change\", (e) => {\n  if (e.target.value === \"custom\") {\n    customWrap.hidden = false;\n    factorInput.focus();\n  } else {\n    customWrap.hidden = true;\n    \/\/ si l'option est 1.6-alt, on met la valeur visible 1.6\n    let val = e.target.value;\n    if (val === \"1.6-alt\") val = \"1.6\";\n    factorInput.value = val; \/\/ synchronisation discr\u00e8te\n  }\n});\n\ncalcBtn.addEventListener(\"click\", () => calculerEtAfficher());\n\nresetBtn.addEventListener(\"click\", () => {\n  poidsInput.value = 70;\n  presetSelect.value = \"1.6\";\n  customWrap.hidden = true;\n  factorInput.value = 1.6;\n  repasInput.value = 4;\n  showAllCheckbox.checked = false;\n  calcText.textContent = TEXT.enterData;\n  sourcesTbody.innerHTML = \"\";\n});\n\nautoBtn.addEventListener(\"click\", () => {\n  \/\/ Mode \"automatique\" : calcule d\u00e8s qu'on modifie poids \/ facteur \/ prises\n  const pressed = autoBtn.getAttribute(\"aria-pressed\") === \"true\";\n  if (!pressed) {\n    autoBtn.setAttribute(\"aria-pressed\", \"true\");\n    autoBtn.classList.remove(\"bg-gray-200\");\n    autoBtn.classList.add(\"bg-blue-600\", \"text-white\");\n    \/\/ associer \u00e9couteurs\n    poidsInput.addEventListener(\"input\", calculerEtAfficher);\n    factorInput.addEventListener(\"input\", calculerEtAfficher);\n    repasInput.addEventListener(\"input\", calculerEtAfficher);\n    presetSelect.addEventListener(\"change\", calculerEtAfficher);\n    showAllCheckbox.addEventListener(\"change\", calculerEtAfficher);\n    \/\/ lancer un calcul imm\u00e9diat\n    calculerEtAfficher();\n  } else {\n    autoBtn.setAttribute(\"aria-pressed\", \"false\");\n    autoBtn.classList.add(\"bg-gray-200\");\n    autoBtn.classList.remove(\"bg-blue-600\", \"text-white\");\n    poidsInput.removeEventListener(\"input\", calculerEtAfficher);\n    factorInput.removeEventListener(\"input\", calculerEtAfficher);\n    repasInput.removeEventListener(\"input\", calculerEtAfficher);\n    presetSelect.removeEventListener(\"change\", calculerEtAfficher);\n    showAllCheckbox.removeEventListener(\"change\", calculerEtAfficher);\n  }\n});\n\n\/* Checkbox showAll -> met \u00e0 jour tableau si visible *\/\nshowAllCheckbox.addEventListener(\"change\", () => {\n  \/\/ si pas encore calcul\u00e9, ne rien faire ; sinon recalculer\n  const currentText = calcText.textContent;\n  if (currentText && currentText !== TEXT.enterData && currentText !== TEXT.invalidWeight && currentText !== TEXT.invalidFactor) {\n    \/\/ r\u00e9cup\u00e9ration rapide du total \u00e0 partir du texte (facile) ou recalculer\n    calculerEtAfficher();\n  }\n});\n\n\/* Initialisation *\/\ndocument.addEventListener(\"DOMContentLoaded\", () => {\n  calcText.textContent = TEXT.enterData;\n  \/\/ Pr\u00e9-remplir le tableau avec 3 suggestions par d\u00e9faut\n  updateSourcesTable(126, 3); \/\/ exemple par d\u00e9faut (70kg \u00d7 1.8 = 126 g\/j)\n});\n\n\/* ========== Notes pour l'int\u00e9grateur ==========\n - Ce bloc est autonome : il n'utilise aucune API externe.\n - Si vous souhaitez utiliser des donn\u00e9es nutritionnelles d'une API gratuite,\n   vous pouvez par exemple regarder l'API OpenFoodFacts (publique, gratuite).\n   Exemple d'appel (GET) :\n     https:\/\/world.openfoodfacts.org\/api\/v0\/product\/737628064502.json\n   Exemple de r\u00e9ponse (extrait JSON) :\n     {\n       \"code\": \"737628064502\",\n       \"product\": {\n         \"product_name\": \"Example\",\n         \"nutriments\": {\n           \"proteins_100g\": 12.5\n         }\n       },\n       \"status\": 1\n     }\n   (Si vous int\u00e9grez une API externe, respectez les r\u00e8gles CORS et la politique d'utilisation).\n================================================ *\/\n<\/script>\n\n<ul class=\"wp-block-list\"><li><strong>\u00c9tape 1 :<\/strong> cible journali\u00e8re (ex. 1,6\u20132,0 g\/kg pour prise de masse).<\/li><li><strong>\u00c9tape 2 :<\/strong> 3\u20134 prises importantes (20\u201340 g par prise).<\/li><li><strong>\u00c9tape 3 :<\/strong> 2 pivots prot\u00e9in\u00e9s (tofu\/tempeh\/seitan ou un shake pois+riz).<\/li><li><strong>\u00c9tape 4 :<\/strong> compl\u00e9ter par l\u00e9gumineuses, c\u00e9r\u00e9ales, graines pour fibres et micros.<\/li><\/ul>\n\n<p class=\"wp-block-paragraph\">Exemple de journ\u00e9e (70 kg, objectif 130 g) : porridge + prot\u00e9ine en poudre au r\u00e9veil, bol quinoa+pois chiches+tofu au d\u00e9jeuner, collation yaourt soja+graines, d\u00eener tempeh+sarrasin. Le post\u2011workout : shake pois+riz ou tofu saut\u00e9 avec glucides rapides pour la <strong>r\u00e9cup\u00e9ration sportive<\/strong>.<\/p>\n\n<p class=\"wp-block-paragraph\">Insight : fractionner et s\u00e9curiser deux pivots simplifie le respect des cibles sans sacrifier la digestion.<\/p>\n\n<h2 class=\"wp-block-heading\">Compl\u00e9ments prot\u00e9iques : lesquels choisir pour performer<\/h2>\n\n<p class=\"wp-block-paragraph\">Les compl\u00e9ments prot\u00e9iques peuvent \u00eatre un outil strat\u00e9gique, surtout en musculation v\u00e9g\u00e9tale ou en p\u00e9riode de s\u00e8che. Les blends pois+riz offrent un profil complet et 5 g de leucine pour 30 g de poudre, comparable en pratique \u00e0 certaines whey.<\/p>\n\n<p class=\"wp-block-paragraph\">Conseils pratiques : testez les demi\u2011doses pour v\u00e9rifier la tol\u00e9rance digestive, mixez avec une boisson v\u00e9g\u00e9tale enrichie et placez le shake dans les 30\u201360 minutes suivant l\u2019effort pour optimiser la synth\u00e8se musculaire.<\/p>\n\n<p class=\"wp-block-paragraph\">Insight : les compl\u00e9ments sont un levier, pas une obligation ; bien choisis, ils r\u00e9duisent le volume alimentaire n\u00e9cessaire pour atteindre la cible.<\/p>\n\n<h2 class=\"wp-block-heading\">Erreurs fr\u00e9quentes \u00e0 \u00e9viter avec les prot\u00e9ines v\u00e9g\u00e9tales<\/h2>\n\n<p class=\"wp-block-paragraph\">Adopter le v\u00e9g\u00e9tal ne doit pas se r\u00e9sumer \u00e0 remplacer la viande par un substitut ultra\u2011transform\u00e9. Voici les pi\u00e8ges les plus co\u00fbteux en performance.<\/p>\n\n<ul class=\"wp-block-list\"><li><strong>Compter les prot\u00e9ines crues<\/strong> sans corriger pour la cuisson : recalculer sur le poids cuit.<\/li><li><strong>N\u00e9gliger la vitamine B12<\/strong> : la suppl\u00e9mentation est indispensable pour une alimentation strictement v\u00e9g\u00e9tale.<\/li><li><strong>Ignorer la leucine<\/strong> : viser 1,7\u20133 g de leucine par prise pour la synth\u00e8se musculaire.<\/li><li><strong>Abuser des produits transform\u00e9s<\/strong> riches en sel et additifs au d\u00e9triment des aliments bruts.<\/li><li><strong>Oublier l\u2019accompagnement vitaminique<\/strong> (vitamine C avec le fer v\u00e9g\u00e9tal, om\u00e9ga\u20113 via huile d\u2019algues si besoin).<\/li><\/ul>\n\n<p class=\"wp-block-paragraph\">Insight : corriger ces erreurs permet de gagner en performance sans complexifier l\u2019assiette.<\/p>\n\n<h2 class=\"wp-block-heading\">Recettes et exemples concrets pour la semaine<\/h2>\n\n<p class=\"wp-block-paragraph\">Quelques id\u00e9es rapides, test\u00e9es en pratique, pour atteindre vos objectifs sans passer des heures en cuisine.<\/p>\n\n<ul class=\"wp-block-list\"><li><strong>Buddha bowl quinoa-pois chiches-tofu<\/strong> (pr\u00e9paration 25 min) : 200 g quinoa sec, 400 g pois chiches cuits, 400 g tofu ferme, 2 c.s. graines de chanvre \u2192 ~32 g prot\u00e9ines\/portion.<\/li><li><strong>Dahl lentilles corail + riz basmati<\/strong> (30 min) : 200 g lentilles corail + 150 g riz \u2192 ~28 g\/prot.<\/li><li><strong>Tempeh saut\u00e9 + sarrasin<\/strong> (20 min) : tempeh marin\u00e9 200 g + sarrasin \u2192 ~30 g\/prot.<\/li><li><strong>Porridge avoine + poudre pois\/riz + chia<\/strong> (5 min) : petit\u2011d\u00e9jeuner riche en glucides et prot\u00e9ines rapides.<\/li><\/ul>\n\n<p class=\"wp-block-paragraph\">Insight : batch\u2011cooking 2\u20133 repas prot\u00e9in\u00e9s par semaine s\u00e9curise l\u2019assiette les jours charg\u00e9s.<\/p>\n\n<h2 class=\"wp-block-heading\">Adapter la strat\u00e9gie selon votre profil sportif<\/h2>\n\n<p class=\"wp-block-paragraph\">Les besoins varient selon l\u2019objectif. Pour un pratiquant loisir, 1,4\u20131,6 g\/kg suffit souvent. Pour la prise de muscle, on vise le haut de la fourchette et une distribution r\u00e9guli\u00e8re.<\/p>\n\n<p class=\"wp-block-paragraph\">Si l\u2019app\u00e9tit est faible, privil\u00e9gier les prot\u00e9ines concentr\u00e9es (seitan, tempeh, poudres). En phase de s\u00e8che, fractionnez davantage et montez l\u00e9g\u00e8rement la part de compl\u00e9ments prot\u00e9iques pour limiter l\u2019apport calorique.<\/p>\n\n<p class=\"wp-block-paragraph\">Pour pr\u00e9parer un entra\u00eenement efficace, respecter les timings alimentaires : un repas riche en glucides + prot\u00e9ines 2\u20133 h avant la s\u00e9ance, ou une collation l\u00e9g\u00e8re 30\u201360 min avant si n\u00e9cessaire. Pour des conseils sur l&rsquo;alimentation avant l&rsquo;effort, voir <a href=\"https:\/\/www.bras-de-fer.fr\/blog\/manger-avant-sport\/\">manger avant le sport<\/a>.<\/p>\n\n<p class=\"wp-block-paragraph\">Insight : adaptez densit\u00e9 prot\u00e9ique et timing aux s\u00e9ances pour am\u00e9liorer performance et r\u00e9cup\u00e9ration.<\/p>\n\n<h2 class=\"wp-block-heading\">R\u00e9capitulatif et passage \u00e0 l\u2019action<\/h2>\n\n<p class=\"wp-block-paragraph\">Pour agir cette semaine : calculez votre besoin (poids \u00d7 facteur), planifiez 3\u20134 prises avec deux pivots prot\u00e9in\u00e9s, int\u00e9grez l\u00e9gumineuses &amp; c\u00e9r\u00e9ales vari\u00e9es, contr\u00f4lez la B12 et testez un compl\u00e9ment pois+riz si n\u00e9cessaire.<\/p>\n\n<p class=\"wp-block-paragraph\">Un exemple simple \u00e0 mettre en place : pr\u00e9parer deux portions de tempeh grill\u00e9, deux bo\u00eetes de lentilles cuits et un paquet de poudre pois+riz. Ces \u00e9l\u00e9ments couvrent la plupart des journ\u00e9es d\u2019entra\u00eenement sans prise de t\u00eate.<\/p>\n\n<p class=\"wp-block-paragraph\">Insight final : la <strong>nutrition sportive<\/strong> v\u00e9g\u00e9tale demande m\u00e9thode, mais elle est totalement compatible avec la progression en musculation et l\u2019am\u00e9lioration des performances.<\/p>\n\n<script type=\"application\/ld+json\">\n{\"@context\":\"https:\/\/schema.org\",\"@type\":\"FAQPage\",\"mainEntity\":[{\"@type\":\"Question\",\"name\":\"Peut-on construire du muscle uniquement avec des protu00e9ines vu00e9gu00e9tales ?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Oui. u00c0 apport protu00e9ique total u00e9quivalent et avec une ru00e9partition adaptu00e9e (3u20134 prises\/j), les gains sont comparables. Priorisez les sources riches en leucine (pois, soja, tempeh) et complu00e9tez par un shake si nu00e9cessaire.\"}},{\"@type\":\"Question\",\"name\":\"Fautu2011il combiner cu00e9ru00e9ales et lu00e9gumineuses u00e0 chaque repas ?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Non. La variu00e9tu00e9 sur 24u201348 heures suffit pour couvrir tous les acides aminu00e9s essentiels. Les associations riz+lentilles ou quinoa+pois chiches restent toutefois pratiques et confortables.\"}},{\"@type\":\"Question\",\"name\":\"Quelle poudre protu00e9ique vu00e9gu00e9tale choisir pour la ru00e9cupu00e9ration ?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Un blend pois+riz est un excellent choix : profil complet et bon apport en leucine. Le soja isolat est aussi performant si tolu00e9ru00e9. Testez la tolu00e9rance digestive avant de lu2019intu00e9grer quotidiennement.\"}},{\"@type\":\"Question\",\"name\":\"Comment ru00e9duire les ballonnements liu00e9s aux lu00e9gumineuses ?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Trempage 8u201312 h, cuisson longue, rinu00e7age, ajout de cumin ou kombu et progression graduelle dans la consommation pour laisser su2019adapter la flore intestinale.\"}}]}\n<\/script>\n<h3>Peut-on construire du muscle uniquement avec des prot\u00e9ines v\u00e9g\u00e9tales ?<\/h3>\n<p>Oui. \u00c0 apport prot\u00e9ique total \u00e9quivalent et avec une r\u00e9partition adapt\u00e9e (3\u20134 prises\/j), les gains sont comparables. Priorisez les sources riches en leucine (pois, soja, tempeh) et compl\u00e9tez par un shake si n\u00e9cessaire.<\/p>\n<h3>Faut\u2011il combiner c\u00e9r\u00e9ales et l\u00e9gumineuses \u00e0 chaque repas ?<\/h3>\n<p>Non. La vari\u00e9t\u00e9 sur 24\u201348 heures suffit pour couvrir tous les acides amin\u00e9s essentiels. Les associations riz+lentilles ou quinoa+pois chiches restent toutefois pratiques et confortables.<\/p>\n<h3>Quelle poudre prot\u00e9ique v\u00e9g\u00e9tale choisir pour la r\u00e9cup\u00e9ration ?<\/h3>\n<p>Un blend pois+riz est un excellent choix : profil complet et bon apport en leucine. Le soja isolat est aussi performant si tol\u00e9r\u00e9. Testez la tol\u00e9rance digestive avant de l\u2019int\u00e9grer quotidiennement.<\/p>\n<h3>Comment r\u00e9duire les ballonnements li\u00e9s aux l\u00e9gumineuses ?<\/h3>\n<p>Trempage 8\u201312 h, cuisson longue, rin\u00e7age, ajout de cumin ou kombu et progression graduelle dans la consommation pour laisser s\u2019adapter la flore intestinale.<\/p>\n\n<p class=\"wp-block-paragraph\">Ressources compl\u00e9mentaires : pour des tableaux d\u00e9taill\u00e9s et des listes extensives, voir <a href=\"https:\/\/www.physiknutrition.fr\/liste-des-proteines-vegetales-riches\/\" target=\"_blank\" rel=\"noopener\">une liste \u00e9tendue<\/a> et des comparatifs pratiques sur <a href=\"https:\/\/debats-sports.com\/meilleures-proteines-vegetales-sport\/\" target=\"_blank\" rel=\"noopener\">les meilleures prot\u00e9ines v\u00e9g\u00e9tales pour le sport<\/a>.<\/p>\n\n","protected":false},"excerpt":{"rendered":"<p>Prot\u00e9ines v\u00e9g\u00e9tales sport : une liste compl\u00e8te pour bien choisir Changer son alimentation sans perdre en performance demande m\u00e9thode et rep\u00e8res concrets. Cet article offre une vue pratique et chiffr\u00e9e des meilleures sources v\u00e9g\u00e9tales de prot\u00e9ines, des strat\u00e9gies pour la musculation v\u00e9g\u00e9tale, des erreurs \u00e0 \u00e9viter et des recettes pr\u00eates \u00e0 l\u2019emploi. Que vous soyez &#8230; <a title=\"Prot\u00e9ines v\u00e9g\u00e9tales sport : une liste compl\u00e8te pour bien choisir\" class=\"read-more\" href=\"https:\/\/www.bras-de-fer.fr\/blog\/proteines-vegetales-sport\/\" aria-label=\"En savoir plus sur Prot\u00e9ines v\u00e9g\u00e9tales sport : une liste compl\u00e8te pour bien choisir\">Lire plus<\/a><\/p>\n","protected":false},"author":1,"featured_media":5567,"comment_status":"","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5],"tags":[],"class_list":["post-5568","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-sport"],"views":1,"_links":{"self":[{"href":"https:\/\/www.bras-de-fer.fr\/blog\/wp-json\/wp\/v2\/posts\/5568","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.bras-de-fer.fr\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.bras-de-fer.fr\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.bras-de-fer.fr\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.bras-de-fer.fr\/blog\/wp-json\/wp\/v2\/comments?post=5568"}],"version-history":[{"count":0,"href":"https:\/\/www.bras-de-fer.fr\/blog\/wp-json\/wp\/v2\/posts\/5568\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.bras-de-fer.fr\/blog\/wp-json\/wp\/v2\/media\/5567"}],"wp:attachment":[{"href":"https:\/\/www.bras-de-fer.fr\/blog\/wp-json\/wp\/v2\/media?parent=5568"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.bras-de-fer.fr\/blog\/wp-json\/wp\/v2\/categories?post=5568"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.bras-de-fer.fr\/blog\/wp-json\/wp\/v2\/tags?post=5568"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}