Quand les recommandations nutritionnelles atteignent leurs limites
A quoi servent-elles ?
En France, les recommandations nutritionnelles sont portées par le PNNS (Programme national nutrition santé), lancé au début des années 2000.
Elles reposent sur des expertises scientifiques (ANSES, Santé publique France, HCSP) et constituent des repères populationnels pour orienter les pratiques alimentaires et soutenir les actions de prévention à l’échelle nationale.
Recommandations ≠ Pratiques réelles
Les recommandations nutritionnelles reposent sur des moyennes.
Elles donnent des repères utiles, mais ne décrivent pas toujours les pratiques alimentaires réelles , ni les écarts entre ce qui est recommandé, servi et consommé.
C'est le "trou noir" de la restauration collective : l'absence de mesure de l'ingéré réel. Sans outils de suivi précis, il est impossible de savoir si les nutriments prévus dans les menus sont réellement assimilés par les convives ou s'ils finissent à la poubelle. Cet écart entre la théorie et l'assiette vide (ou pleine) est l'angle mort que la data doit aujourd'hui éclairer pour lutter contre le gaspillage et garantir l'apport nutritionnel.
La diversité compte
Les pratiques alimentaires diffèrent parce que les individus, les contextes et les contraintes ne sont pas homogènes.
En santé publique, tenir compte de cette réalité permet de concevoir des actions plus pertinentes que l’application uniforme de repères généraux.
C'est ici que l'analyse contextuelle prend tout son sens : pour être efficace, la nutrition doit passer d'une logique de recommandation de masse à une logique de précision individualisée.
TrayHealth : Le suivi pour tous
Chez Trayvisor nous sommes convaincus que la nutrition est un indicateur de bonne santé et permet d’assurer une bonne croissance et un meilleur vieillissement.
Notre technologie offre enfin la "vérité terrain" nécessaire pour ajuster les menus, optimiser les apports et garantir que la santé par l'alimentation devienne une réalité concrète, et plus seulement une recommandation.
<!DOCTYPE html><!-- Last Published: Fri Feb 27 2026 13:20:03 GMT+0000 (Coordinated Universal Time) --><html data-wf-domain="www.trayvisor.com" data-wf-page="68f0905a5e03761a2f5e9e28" data-wf-site="673e051f0ad7c6ca2d643219" lang="fr" data-wf-collection="68f0905a5e03761a2f5e9e21" data-wf-item-slug="limites-recommandations-nutritionnelles"><head><meta charset="utf-8"/><title>Nutrition : Pourquoi les recommandations ne suffisent plus - Trayvisor</title><meta content="Elles sont essentielles en santé publique. Mais entre ce qui est recommandé et ce qui est réellement consommé, des écarts persistent." name="description"/><meta content="Nutrition : Pourquoi les recommandations ne suffisent plus - Trayvisor" property="og:title"/><meta content="Elles sont essentielles en santé publique. Mais entre ce qui est recommandé et ce qui est réellement consommé, des écarts persistent." property="og:description"/><meta content="https://cdn.prod.website-files.com/673e0fed58528a7aafa3ec70/6981f5663a26e1a1773a87d6_top-view-plate-with-keto-diet-food-nuts.jpg" property="og:image"/><meta content="Nutrition : Pourquoi les recommandations ne suffisent plus - Trayvisor" property="twitter:title"/><meta content="Elles sont essentielles en santé publique. Mais entre ce qui est recommandé et ce qui est réellement consommé, des écarts persistent." property="twitter:description"/><meta content="https://cdn.prod.website-files.com/673e0fed58528a7aafa3ec70/6981f5663a26e1a1773a87d6_top-view-plate-with-keto-diet-food-nuts.jpg" property="twitter:image"/><meta property="og:type" content="website"/><meta content="summary_large_image" name="twitter:card"/><meta content="width=device-width, initial-scale=1" name="viewport"/><link href="https://cdn.prod.website-files.com/673e051f0ad7c6ca2d643219/css/trayvisor-202411.webflow.shared.4c8dfd3d5.min.css" rel="stylesheet" type="text/css" integrity="sha384-TI39PVayoguqa44nQVDoXygN9rUwOpD8DSTNNa7yAR5DWWpjZMC6k4A75CUDpy4t" crossorigin="anonymous"/><script type="text/javascript">!function(o,c){var n=c.documentElement,t=" w-mod-";n.className+=t+"js",("ontouchstart"in o||o.DocumentTouch&&c instanceof DocumentTouch)&&(n.className+=t+"touch")}(window,document);</script><link href="https://cdn.prod.website-files.com/673e051f0ad7c6ca2d643219/673e058ec944226ab85cea12_Favicon%20Trayvisor.svg" rel="shortcut icon" type="image/x-icon"/><link href="https://cdn.prod.website-files.com/673e051f0ad7c6ca2d643219/673e059309de2d43d1b27e04_Webclip%20Trayvisor.svg" rel="apple-touch-icon"/><link href="https://www.trayvisor.com/blog/limites-recommandations-nutritionnelles" rel="canonical"/><script async="" src="https://www.googletagmanager.com/gtag/js?id=G-6FJ23WVE8G"></script><script type="text/javascript">window.dataLayer = window.dataLayer || [];function gtag(){dataLayer.push(arguments);}gtag('set', 'developer_id.dZGVlNj', true);gtag('js', new Date());gtag('config', 'G-6FJ23WVE8G');</script><script id="Cookiebot" src="https://consent.cookiebot.com/uc.js" data-cbid="6479ddcc-69ba-4861-a51d-293520e638e2" data-blockingmode="auto" type="text/javascript"></script>
<link rel="preconnect" href="https://assets.website-files.com/" />
<link rel="preconnect" href="https://global-assets.website-files.com" />
<!-- Schema Organization -->
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Organization",
"name": "Trayvisor",
"url": "https://www.trayvisor.com",
"logo": "https://cdn.prod.website-files.com/673e051f0ad7c6ca2d643219/673e0b4623948ead3678af94_TRAYVISOR_LOGOTYPE.svg",
"description": "Trayvisor developpe des solutions d'intelligence artificielle pour la restauration collective : encaissement automatique, suivi nutritionnel et reduction du gaspillage alimentaire.",
"foundingDate": "2024",
"sameAs": [
"https://www.linkedin.com/company/trayvisor"
],
"address": {
"@type": "PostalAddress",
"streetAddress": "Station F, 5 Rue Eugene Freyssinet",
"postalCode": "75013",
"addressLocality": "Paris",
"addressCountry": "FR"
},
"contactPoint": {
"@type": "ContactPoint",
"contactType": "sales",
"url": "https://www.trayvisor.com/contact"
}
}
</script>
<meta name="robots" content="index, follow">
<!-- Schema // Article // START -->
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Article",
"mainEntityOfPage": {
"@type": "WebPage",
"@id": "www.trayvisor.com/blog/limites-recommandations-nutritionnelles"
},
"headline": "Nutrition : Pourquoi les recommandations ne suffisent plus",
"description": "Elles sont essentielles en santé publique. Mais entre ce qui est recommandé et ce qui est réellement consommé, des écarts persistent.",
"image": "https://cdn.prod.website-files.com/673e0fed58528a7aafa3ec70/6981f5663a26e1a1773a87d6_top-view-plate-with-keto-diet-food-nuts.jpg",
"author": {
"@type": "Person",
"name": "Trayvisor"
},
"publisher": {
"@type": "Organization",
"name": "Trayvisor",
"logo": {
"@type": "ImageObject",
"url": "https://cdn.prod.website-files.com/673e051f0ad7c6ca2d643219/673e0b4623948ead3678af94_TRAYVISOR_LOGOTYPE.svg"
}
},
"datePublished": "Feb 05, 2026",
"dateModified": "Feb 05, 2026"
}
</script>
<!-- Schema.org ItemList // START -->
<script type="application/javascript">
document.addEventListener('DOMContentLoaded', function() {
// Sélectionne uniquement les cartes actives
var activityCards = document.querySelectorAll('[data-itemlist-item="true"]');
if (activityCards.length === 0) return;
var itemListSchema = {
"@context": "https://schema.org",
"@type": "ItemList",
"name": "NAME",
"description": "DESCRIPTION",
"itemListElement": []
};
activityCards.forEach(function(card, index) {
var link = card.querySelector('a[data-item-link]');
var name = card.querySelector('[data-item-name]');
var description = card.querySelector('[data-item-description]');
var image = card.querySelector('[data-item-image]');
var season = card.querySelector('[data-item-season]');
var category = card.querySelector('[data-item-category]');
// Vérifie que les éléments obligatoires existent
if (!link || !name) return;
var nameText = name.innerText.trim();
var linkUrl = link.href;
if (!nameText || !linkUrl) return;
var item = {
"@type": "ListItem",
"position": index + 1,
"item": {
"@type": "BlogPosting",
"name": nameText,
"url": linkUrl
}
};
// Ajoute la description si disponible
if (description) {
var descText = description.innerText.trim();
if (descText) {
item.item.description = descText;
}
}
// Ajoute l'image si disponible
if (image) {
var imgSrc = image.src || image.getAttribute('src') || image.style.backgroundImage.match(/url\(["']?([^"']*)["']?\)/)?.[1];
if (imgSrc) {
item.item.image = imgSrc;
}
}
// Ajoute la catégorie et saison dans additionalType/keywords
var keywords = [];
if (season) {
var seasonText = season.innerText.trim();
if (seasonText) {
keywords.push(seasonText);
}
}
if (category) {
var categoryText = category.innerText.trim();
if (categoryText) {
keywords.push(categoryText);
item.item.category = categoryText;
}
}
if (keywords.length > 0) {
item.item.keywords = keywords.join(', ');
}
itemListSchema.itemListElement.push(item);
});
// Injecte le schema seulement si on a au moins un item
if (itemListSchema.itemListElement.length > 0) {
var script = document.createElement('script');
script.type = 'application/ld+json';
script.innerHTML = JSON.stringify(itemListSchema);
document.head.appendChild(script);
}
});
</script>
<!-- Schema.org ItemList // Activités suggérées // END --></head><body><div class="page-wrapper"><div class="w-embed"><style>
/* Make text look crisper and more legible in all browsers // START */
body {
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
font-smoothing: antialiased;
text-rendering: optimizeLegibility;
}
/* Get rid of top margin on first element in any rich text element */
.w-richtext > :not(div):first-child, .w-richtext > div:first-child > :first-child {
margin-top: 0 !important;
}
/* Get rid of bottom margin on last element in any rich text element */
.w-richtext>:last-child, .w-richtext ol li:last-child, .w-richtext ul li:last-child {
margin-bottom: 0 !important;
}
/* Apply "..." after 4 lines of text */
.clamp-4 {
display: -webkit-box;
overflow: hidden;
-webkit-line-clamp: 4;
-webkit-box-orient: vertical;
}
/* Apply "..." after 3 lines of text */
.clamp-3 {
display: -webkit-box;
overflow: hidden;
-webkit-line-clamp: 3;
-webkit-box-orient: vertical;
}
/* Apply "..." after 2 lines of text */
.clamp-2 {
display: -webkit-box;
overflow: hidden;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
}
/* Apply "..." after 1 lines of text */
.clamp-1 {
display: -webkit-box;
overflow: hidden;
-webkit-line-clamp: 1;
-webkit-box-orient: vertical;
}
/* Barre du slider (track) */
input[type="range"]{
width: 100%;
height: 8px;
border-radius: 200px;
background: white;
border: none;
outline: none;
-webkit-appearance: none;
appearance: none;
}
/* Curseur (thumb) - Chrome/Safari */
input[type="range"]::-webkit-slider-thumb {
-webkit-appearance: none;
appearance: none;
width: 16px;
height: 16px;
border-radius: 50%;
background: #31ad6b;
cursor: pointer;
border: none;
}
/* Curseur (thumb) - Firefox */
input[type="range"]::-moz-range-thumb {
width: 16px;
height: 16px;
border-radius: 50%;
background: #31ad6b;
cursor: pointer;
border: none;
}
/* Track Firefox */
input[type="range"]::-moz-range-track {
height: 8px;
border-radius: 200px;
background: white;
border: none;
}
</style></div><div data-animation="default" data-collapse="medium" data-duration="400" data-easing="ease" data-easing2="ease" role="banner" class="navbar w-nav"><div class="container is-navbar"><a id="w-node-_0122e9bb-e3b1-a2a0-2381-0383999d08d6-999d08d4" href="/" class="brand w-nav-brand"><img loading="lazy" src="https://cdn.prod.website-files.com/673e051f0ad7c6ca2d643219/673e0b4623948ead3678af94_006e424776015a1b20831fb0c62e9e1c_TRAYVISOR_LOGOTYPE.svg" alt="Logo Trayvisor, solutions IA pour la restauration collective" class="logo"/></a><nav role="navigation" id="w-node-_0122e9bb-e3b1-a2a0-2381-0383999d08d8-999d08d4" class="navbar-menu w-nav-menu"><a href="/" class="nav-link w-nav-link">Accueil</a><div data-delay="0" data-hover="true" class="nav-dropdown w-dropdown"><div class="nav-dropdown-toggle w-dropdown-toggle"><div>Solutions</div><img src="https://cdn.prod.website-files.com/673e051f0ad7c6ca2d643219/673e051f0ad7c6ca2d64327a_chevron-down.svg" loading="lazy" alt="Icone menu deroulant" class="nav-dropdown-icon"/></div><nav class="nav-dropdown-list w-dropdown-list"><div><div class="w-dyn-list"><div role="list" class="nav-dropdown-item-grid w-dyn-items"><div role="listitem" class="w-dyn-item"><a href="/solutions/trayvisor-trayscan" class="nav-dropdown-item w-inline-block"><img src="https://cdn.prod.website-files.com/673e0fed58528a7aafa3ec70/67b82e9eb46d51f37d019a78_material-symbols--detector-alarm-outline-rounded.svg" loading="lazy" alt="TrayScan" class="nav-dropdown-item-icon"/><div class="w-layout-vflex"><div class="text-color-brand-500 margin-bottom-small">TrayScan</div><div class="text-size-small text-style-muted clamp-1">Compatible avec tous les éditeurs de caisses et bornes, TrayScan automatise l'encaissement, accélère le service, améliore l'expérience client et libère vos équipes pour l'accueil.</div></div></a></div><div role="listitem" class="w-dyn-item"><a href="/solutions/trayhealth" class="nav-dropdown-item w-inline-block"><img src="https://cdn.prod.website-files.com/673e0fed58528a7aafa3ec70/679741af927aeb1eec4e1d27_0.%20Titre%20Suivi%20nutritionnel.svg" loading="lazy" alt="TrayHealth" class="nav-dropdown-item-icon"/><div class="w-layout-vflex"><div class="text-color-brand-500 margin-bottom-small">TrayHealth</div><div class="text-size-small text-style-muted clamp-1">TrayHealth digitalise et automatise le suivi nutritionnel de votre établissement pour offrir une prise en charge nutritionnelle adaptée et personnalisée. </div></div></a></div></div></div><a href="/faq" class="nav-dropdown-item margin-top-24px w-inline-block"><img src="https://cdn.prod.website-files.com/673e051f0ad7c6ca2d643219/693aebfc5e86ad9386b6d477_faq_icon.svg" loading="lazy" alt="" class="nav-dropdown-item-icon"/><div class="w-layout-vflex"><div class="text-color-brand-500 margin-bottom-small">FAQ</div><div class="text-size-small text-style-muted clamp-1">Les réponses à vos questions</div></div></a></div></nav></div><a href="/a-propos" class="nav-link w-nav-link">À propos</a><a href="/blog" class="nav-link w-nav-link">Blog</a><a href="/contact" class="nav-link w-nav-link">Contact</a><div class="buttons-wrapper is-navbar-mobile"><a rel="follow" data-wf--button-dark--variant="green" data-w-id="9d673ac7-465c-81f9-37a5-479adac714e5" href="/contact" class="button w-inline-block"><div>Planifier un rendez-vous</div><div class="button-icon w-embed"><svg width="auto" height="100%" viewBox="0 0 16 14" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M1 7H15M15 7L9 13M15 7L9 1" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
</svg></div></a></div></nav><div id="w-node-_0122e9bb-e3b1-a2a0-2381-0383999d08ec-999d08d4" class="navbar-buttons"><div class="buttons-wrapper"><div class="locales-wrapper w-locales-list"><div role="list" class="w-locales-items"><div role="listitem" class="w-locales-item"><a href="#" class="w-inline-block"><img src="https://cdn.prod.website-files.com/673e051f0ad7c6ca2d643219/673e0bbe57c92b15276258b9_Flag_of_the_United_Kingdom_(3-5).svg.svg" loading="lazy" width="30" alt="FR" class="locale-flag"/></a></div></div></div><div class="hidden-tablet"><a rel="follow" data-wf--button-dark--variant="green" data-w-id="9d673ac7-465c-81f9-37a5-479adac714e5" href="/contact" class="button w-inline-block"><div>Planifier un rendez-vous</div><div class="button-icon w-embed"><svg width="auto" height="100%" viewBox="0 0 16 14" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M1 7H15M15 7L9 13M15 7L9 1" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
</svg></div></a></div></div><div id="w-node-_0122e9bb-e3b1-a2a0-2381-0383999d08f0-999d08d4" class="menu-button w-nav-button"></div></div></div><div class="navbar-background"></div></div><main class="main-wrapper"><section data-w-id="04924e0e-791b-6ce1-0999-e3619e0a2f66" class="section is-hero background-color-light"><div class="section-hero-background"><img src="https://cdn.prod.website-files.com/673e051f0ad7c6ca2d643219/673e1a5b050252442ced520c_Circle%20BG.svg" loading="lazy" style="-webkit-transform:translate3d(0, 0, 0) scale3d(0, 0, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);-moz-transform:translate3d(0, 0, 0) scale3d(0, 0, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);-ms-transform:translate3d(0, 0, 0) scale3d(0, 0, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);transform:translate3d(0, 0, 0) scale3d(0, 0, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0)" data-w-id="04924e0e-791b-6ce1-0999-e3619e0a2f68" alt="Cercle decoratif en arriere-plan" class="circle-background"/><div class="section-linear-background"></div></div><div class="w-layout-blockcontainer container w-container"><div class="section-heading vertical-center no-margin"><div data-w-id="bc5c3ee8-7db8-273f-877f-c2a141753a98" style="-webkit-transform:translate3d(0, 32px, 0) scale3d(1, 1, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);-moz-transform:translate3d(0, 32px, 0) scale3d(1, 1, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);-ms-transform:translate3d(0, 32px, 0) scale3d(1, 1, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);transform:translate3d(0, 32px, 0) scale3d(1, 1, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);opacity:0" class="tags-wrapper"><div class="tag is-blog new w-condition-invisible">Nouveau</div><div class="tag is-blog">Newsletters</div><div class="tag is-blog">Santé</div></div><h1 data-w-id="04924e0e-791b-6ce1-0999-e3619e0a2f6d" style="-webkit-transform:translate3d(0, 32px, 0) scale3d(1, 1, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);-moz-transform:translate3d(0, 32px, 0) scale3d(1, 1, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);-ms-transform:translate3d(0, 32px, 0) scale3d(1, 1, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);transform:translate3d(0, 32px, 0) scale3d(1, 1, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);opacity:0">Nutrition : Pourquoi les recommandations ne suffisent plus</h1><p data-w-id="04924e0e-791b-6ce1-0999-e3619e0a2f74" style="-webkit-transform:translate3d(0, 32px, 0) scale3d(1, 1, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);-moz-transform:translate3d(0, 32px, 0) scale3d(1, 1, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);-ms-transform:translate3d(0, 32px, 0) scale3d(1, 1, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);transform:translate3d(0, 32px, 0) scale3d(1, 1, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);opacity:0" class="text-size-large no-margin">Elles sont essentielles en santé publique. Mais entre ce qui est recommandé et ce qui est réellement consommé, des écarts persistent.</p></div></div></section><section class="section no-padding"><div class="half-light-background-blog"></div><div class="w-layout-blockcontainer container w-container"><div class="blog-hero-info"><div class="w-layout-grid blog-hero-info-content"><div class="w-layout-vflex tablet-center"><div class="text-color-accent text-style-muted margin-bottom-regular">Rédigé par :</div><div class="heading-style-6 no-margin">Trayvisor</div></div><div class="w-layout-vflex tablet-center"><div class="text-color-accent text-style-muted margin-bottom-regular">Publié le :</div><div class="heading-style-6 no-margin">5/2/2026</div></div><div class="w-layout-vflex tablet-center"><div class="text-color-accent text-style-muted margin-bottom-regular">Temps de lecture :</div><div data-reading-time-enabled="true" data-reading-time-target="" class="heading-style-6 no-margin">2 minutes de lecture</div></div><div id="w-node-b32e659d-e583-0e7e-0ec6-01b630bfc40e-2f5e9e28" class="w-layout-vflex share-wrapper"><div class="text-color-accent text-style-muted">Partager sur :</div><a fs-socialshare-element="facebook" href="#" class="w-inline-block"><img src="https://cdn.prod.website-files.com/673e051f0ad7c6ca2d643219/68f095afea684edaf17ba427_share_facebook.svg" loading="lazy" alt="Icone de partage Facebook" class="share-icon"/></a><a fs-socialshare-element="linkedin" href="#" class="w-inline-block"><img src="https://cdn.prod.website-files.com/673e051f0ad7c6ca2d643219/68f095afa1e512d6fbb233ab_share_linkedin.svg" loading="lazy" alt="Icone de partage LinkedIn" class="share-icon"/></a></div></div><img src="https://cdn.prod.website-files.com/673e0fed58528a7aafa3ec70/6981f5663a26e1a1773a87d6_top-view-plate-with-keto-diet-food-nuts.jpg" loading="lazy" width="Auto" data-wf--image-ratio--variant="auto" alt="Nutrition : Pourquoi les recommandations ne suffisent plus" sizes="(max-width: 767px) 100vw, (max-width: 991px) 727.984375px, 939.984375px, (max-width: 991px) 100vw, 3024px, 100vw" srcset="https://cdn.prod.website-files.com/673e0fed58528a7aafa3ec70/6981f5663a26e1a1773a87d6_top-view-plate-with-keto-diet-food-nuts-p-500.jpg 500w, https://cdn.prod.website-files.com/673e0fed58528a7aafa3ec70/6981f5663a26e1a1773a87d6_top-view-plate-with-keto-diet-food-nuts-p-800.jpg 800w, https://cdn.prod.website-files.com/673e0fed58528a7aafa3ec70/6981f5663a26e1a1773a87d6_top-view-plate-with-keto-diet-food-nuts-p-1080.jpg 1080w, https://cdn.prod.website-files.com/673e0fed58528a7aafa3ec70/6981f5663a26e1a1773a87d6_top-view-plate-with-keto-diet-food-nuts-p-1600.jpg 1600w, https://cdn.prod.website-files.com/673e0fed58528a7aafa3ec70/6981f5663a26e1a1773a87d6_top-view-plate-with-keto-diet-food-nuts.jpg 1920w" class="image-radius image"/></div></div></section><section class="section"><div class="w-layout-blockcontainer container w-container"><div class="blog-hero-info"><div data-reading-time-content="" class="rich-text text-size-large w-richtext"><h1>Quand les recommandations nutritionnelles atteignent leurs limites</h1><h2>A quoi servent-elles ?</h2><figure style="max-width:30%" class="w-richtext-align-floatleft w-richtext-figure-type-image"><div><img src="https://cdn.prod.website-files.com/673e0fed58528a7aafa3ec70/6981edf2fa61d0eaae20f9a8_Capture%20d%E2%80%99e%CC%81cran%202026-02-03%20a%CC%80%2013.44.33.png" loading="lazy" alt=""/></div></figure><p><strong>En France, les recommandations nutritionnelles sont portées par le PNNS (Programme national nutrition santé)</strong>, lancé au début des années 2000.</p><p>Elles reposent sur des <strong>expertises scientifiques</strong> (ANSES, Santé publique France, HCSP) et constituent des <strong>repères populationnels</strong> pour orienter les pratiques alimentaires et soutenir les actions de prévention à l’échelle nationale.</p><p></p><p></p><h3>Recommandations ≠ Pratiques réelles</h3><figure class="w-richtext-align-center w-richtext-figure-type-image"><div><img src="https://cdn.prod.website-files.com/673e0fed58528a7aafa3ec70/6981f08c892814492a9d50b1_Capture%20d%E2%80%99e%CC%81cran%202026-02-03%20a%CC%80%2013.55.46.png" loading="lazy" alt=""/></div></figure><p>Les recommandations nutritionnelles reposent sur des moyennes.</p><p>Elles donnent des repères utiles, <strong>mais ne décrivent pas toujours les pratiques alimentaires réelles</strong> , ni les écarts entre ce qui est recommandé, servi et consommé.</p><p>C'est le "trou noir" de la restauration collective : l'absence de mesure de l'ingéré réel. Sans outils de suivi précis, il est impossible de savoir si les nutriments prévus dans les menus sont réellement assimilés par les convives ou s'ils finissent à la poubelle. Cet écart entre la théorie et l'assiette vide (ou pleine) est l'angle mort que la data doit aujourd'hui éclairer pour lutter contre le gaspillage et garantir l'apport nutritionnel. </p><h3>La diversité compte</h3><p>Les pratiques alimentaires diffèrent parce que les individus, les contextes et les contraintes ne sont pas homogènes. </p><p>En santé publique, tenir compte de cette réalité permet de concevoir des actions plus pertinentes que l’application uniforme de repères généraux.</p><p>C'est ici que l'analyse contextuelle prend tout son sens : pour être efficace, la nutrition doit passer d'une logique de recommandation de masse à une logique de précision individualisée.</p><h3>TrayHealth : Le suivi pour tous</h3><p>Chez Trayvisor nous sommes convaincus que la nutrition est un indicateur de bonne santé et permet d’assurer une bonne croissance et un meilleur vieillissement.</p><p>Notre technologie offre enfin la "vérité terrain" nécessaire pour ajuster les menus, optimiser les apports et garantir que la santé par l'alimentation devienne une réalité concrète, et plus seulement une recommandation.</p></div></div></div></section><section class="section background-color-light overflow-hidden"><img src="https://cdn.prod.website-files.com/673e051f0ad7c6ca2d643219/673e1a5b050252442ced520c_Circle%20BG.svg" loading="lazy" data-w-id="04924e0e-791b-6ce1-0999-e3619e0a2fc6" alt="Cercle decoratif en arriere-plan" class="circle-background top-right"/><div class="w-layout-blockcontainer container w-container"><div class="section-heading is-border"><h2>Découvrez d’autres articles</h2></div><div class="blog-post-collection w-dyn-list"><div role="list" class="blog-post-collection-list w-dyn-items"><div data-itemlist-item="true" role="listitem" class="blog-post-collection-item w-dyn-item"><a data-item-link="" href="/blog/ia-restauration-collective-deploiement-multi-sites" class="blog-post-card w-inline-block"><div class="blog-post-image-wrapper"><img data-item-image="" alt="TrayScan : IA et déploiement multi-sites en RIE" loading="lazy" src="https://cdn.prod.website-files.com/673e0fed58528a7aafa3ec70/6996e952f81eadc22cbb8ebb_60299a9e2d39684299a9e2d3998299v-960x640.jpeg" sizes="(max-width: 767px) 100vw, (max-width: 991px) 727px, 940px" srcset="https://cdn.prod.website-files.com/673e0fed58528a7aafa3ec70/6996e952f81eadc22cbb8ebb_60299a9e2d39684299a9e2d3998299v-960x640-p-500.jpeg 500w, https://cdn.prod.website-files.com/673e0fed58528a7aafa3ec70/6996e952f81eadc22cbb8ebb_60299a9e2d39684299a9e2d3998299v-960x640-p-800.jpeg 800w, https://cdn.prod.website-files.com/673e0fed58528a7aafa3ec70/6996e952f81eadc22cbb8ebb_60299a9e2d39684299a9e2d3998299v-960x640.jpeg 960w" class="image-cover"/><div class="tags-wrapper is-blog-card"><div class="tag is-blog new small w-condition-invisible">Nouveau</div><div class="tag is-blog small">Newsletters</div><div class="tag is-blog small">Encaissement</div></div></div><div class="text-inline-wrapper"><div class="text-color-brand-700">Rédigé par</div><div class="text-color-brand-700 text-weight-bold">Trayvisor</div><div class="text-color-brand-700">le</div><div class="text-color-brand-700 text-weight-bold">19/2/2026</div></div><div class="w-layout-vflex"><h3 data-item-name="" class="heading-style-6 margin-bottom-small">TrayScan : IA et déploiement multi-sites en RIE</h3><p data-item-description="" class="text-size-small clamp-3 no-margin text-style-muted">Déployez l’IA en restauration collective à grande échelle. Découvrez comment TrayScan permet un déploiement multi-sites rapide et performant.</p></div></a></div><div data-itemlist-item="true" role="listitem" class="blog-post-collection-item w-dyn-item"><a data-item-link="" href="/blog/limites-recommandations-nutritionnelles" aria-current="page" class="blog-post-card w-inline-block w--current"><div class="blog-post-image-wrapper"><img data-item-image="" alt="Nutrition : Pourquoi les recommandations ne suffisent plus" loading="lazy" src="https://cdn.prod.website-files.com/673e0fed58528a7aafa3ec70/6981f5663a26e1a1773a87d6_top-view-plate-with-keto-diet-food-nuts.jpg" sizes="(max-width: 767px) 100vw, (max-width: 991px) 727px, 940px" srcset="https://cdn.prod.website-files.com/673e0fed58528a7aafa3ec70/6981f5663a26e1a1773a87d6_top-view-plate-with-keto-diet-food-nuts-p-500.jpg 500w, https://cdn.prod.website-files.com/673e0fed58528a7aafa3ec70/6981f5663a26e1a1773a87d6_top-view-plate-with-keto-diet-food-nuts-p-800.jpg 800w, https://cdn.prod.website-files.com/673e0fed58528a7aafa3ec70/6981f5663a26e1a1773a87d6_top-view-plate-with-keto-diet-food-nuts-p-1080.jpg 1080w, https://cdn.prod.website-files.com/673e0fed58528a7aafa3ec70/6981f5663a26e1a1773a87d6_top-view-plate-with-keto-diet-food-nuts-p-1600.jpg 1600w, https://cdn.prod.website-files.com/673e0fed58528a7aafa3ec70/6981f5663a26e1a1773a87d6_top-view-plate-with-keto-diet-food-nuts.jpg 1920w" class="image-cover"/><div class="tags-wrapper is-blog-card"><div class="tag is-blog new small w-condition-invisible">Nouveau</div><div class="tag is-blog small">Newsletters</div><div class="tag is-blog small">Santé</div></div></div><div class="text-inline-wrapper"><div class="text-color-brand-700">Rédigé par</div><div class="text-color-brand-700 text-weight-bold">Trayvisor</div><div class="text-color-brand-700">le</div><div class="text-color-brand-700 text-weight-bold">5/2/2026</div></div><div class="w-layout-vflex"><h3 data-item-name="" class="heading-style-6 margin-bottom-small">Nutrition : Pourquoi les recommandations ne suffisent plus</h3><p data-item-description="" class="text-size-small clamp-3 no-margin text-style-muted">Elles sont essentielles en santé publique. Mais entre ce qui est recommandé et ce qui est réellement consommé, des écarts persistent.</p></div></a></div><div data-itemlist-item="true" role="listitem" class="blog-post-collection-item w-dyn-item"><a data-item-link="" href="/blog/suivi-nutritionnel-digital-sante" class="blog-post-card w-inline-block"><div class="blog-post-image-wrapper"><img data-item-image="" alt="TrayHealth : Solution de Suivi Nutritionnel Digitalisé" loading="lazy" src="https://cdn.prod.website-files.com/673e0fed58528a7aafa3ec70/6909f2537d84454d3c70db19_IMG_5370.avif" sizes="(max-width: 767px) 100vw, (max-width: 991px) 727px, 940px" srcset="https://cdn.prod.website-files.com/673e0fed58528a7aafa3ec70/6909f2537d84454d3c70db19_IMG_5370-p-500.avif 500w, https://cdn.prod.website-files.com/673e0fed58528a7aafa3ec70/6909f2537d84454d3c70db19_IMG_5370-p-800.avif 800w, https://cdn.prod.website-files.com/673e0fed58528a7aafa3ec70/6909f2537d84454d3c70db19_IMG_5370-p-1080.avif 1080w, https://cdn.prod.website-files.com/673e0fed58528a7aafa3ec70/6909f2537d84454d3c70db19_IMG_5370-p-1600.avif 1600w, https://cdn.prod.website-files.com/673e0fed58528a7aafa3ec70/6909f2537d84454d3c70db19_IMG_5370-p-2000.avif 2000w, https://cdn.prod.website-files.com/673e0fed58528a7aafa3ec70/6909f2537d84454d3c70db19_IMG_5370.avif 4032w" class="image-cover"/><div class="tags-wrapper is-blog-card"><div class="tag is-blog new small w-condition-invisible">Nouveau</div><div class="tag is-blog small">Newsletters</div><div class="tag is-blog small">Santé</div></div></div><div class="text-inline-wrapper"><div class="text-color-brand-700">Rédigé par</div><div class="text-color-brand-700 text-weight-bold">Trayvisor</div><div class="text-color-brand-700">le</div><div class="text-color-brand-700 text-weight-bold">28/1/2026</div></div><div class="w-layout-vflex"><h3 data-item-name="" class="heading-style-6 margin-bottom-small">TrayHealth : Solution de Suivi Nutritionnel Digitalisé</h3><p data-item-description="" class="text-size-small clamp-3 no-margin text-style-muted">Chez Trayvisor, nous sommes convaincus que le bien vieillir commence par une nutrition suivie, comprise et personnalisée. Chaque repas est une opportunité d’entretenir la santé, le plaisir et l’autonomie des résidents. C’est pourquoi nous mettons la technologie au service du soin, afin que les équipes gagnent du temps sur l’administratif et le consacrent à l’essentiel : l’accompagnement humain.
Éliminez les fiches papier et les saisies fastidieuses : avec TrayHealth, le suivi nutritionnel devient simple, fiable et continu.</p></div></a></div><div data-itemlist-item="true" role="listitem" class="blog-post-collection-item w-dyn-item"><a data-item-link="" href="/blog/encaissement-ia-restauration-fluidite-reconnaissance" class="blog-post-card w-inline-block"><div class="blog-post-image-wrapper"><img data-item-image="" alt="Encaissement IA en restauration d’entreprise : fluidité, reconnaissance & réglementation" loading="lazy" src="https://cdn.prod.website-files.com/673e0fed58528a7aafa3ec70/697398c4b9f0fe8718e48c35_22-Atlantic-14%20-%20Copie.jpg" sizes="(max-width: 767px) 100vw, (max-width: 991px) 727px, 940px" srcset="https://cdn.prod.website-files.com/673e0fed58528a7aafa3ec70/697398c4b9f0fe8718e48c35_22-Atlantic-14%20-%20Copie-p-500.jpg 500w, https://cdn.prod.website-files.com/673e0fed58528a7aafa3ec70/697398c4b9f0fe8718e48c35_22-Atlantic-14%20-%20Copie-p-800.jpg 800w, https://cdn.prod.website-files.com/673e0fed58528a7aafa3ec70/697398c4b9f0fe8718e48c35_22-Atlantic-14%20-%20Copie-p-1080.jpg 1080w, https://cdn.prod.website-files.com/673e0fed58528a7aafa3ec70/697398c4b9f0fe8718e48c35_22-Atlantic-14%20-%20Copie-p-1600.jpg 1600w, https://cdn.prod.website-files.com/673e0fed58528a7aafa3ec70/697398c4b9f0fe8718e48c35_22-Atlantic-14%20-%20Copie.jpg 1900w" class="image-cover"/><div class="tags-wrapper is-blog-card"><div class="tag is-blog new small w-condition-invisible">Nouveau</div><div class="tag is-blog small">Newsletters</div><div class="tag is-blog small">Encaissement</div></div></div><div class="text-inline-wrapper"><div class="text-color-brand-700">Rédigé par</div><div class="text-color-brand-700 text-weight-bold">Trayvisor</div><div class="text-color-brand-700">le</div><div class="text-color-brand-700 text-weight-bold">27/1/2026</div></div><div class="w-layout-vflex"><h3 data-item-name="" class="heading-style-6 margin-bottom-small">Encaissement IA en restauration d’entreprise : fluidité, reconnaissance & réglementation</h3><p data-item-description="" class="text-size-small clamp-3 no-margin text-style-muted">Découvrez comment l’encaissement automatisé avec l’intelligence artificielle transforme la restauration d’entreprise : fluidité, réduction de ressaisies, expérience convive et conformité réglementaire.</p></div></a></div></div></div><div data-w-id="bf206178-fc91-b70b-b75c-b9981a0dbaab" style="opacity:0" class="slide-in-from-bottom"><div data-wf--element-faqs-cta--variant="dark" class="cta-wrapper w-variant-f8ba7710-8d0c-0092-70fc-4423236fa8d7"><img src="https://cdn.prod.website-files.com/673e051f0ad7c6ca2d643219/68f09bb37b7ba239d4e0363f_2a2dd23135c1f2c44a919262f0a259f1_circles.svg" loading="lazy" alt="Icone de cercles decoratifs" class="circle-backbround w-variant-f8ba7710-8d0c-0092-70fc-4423236fa8d7"/><div class="cta-content-wrapper w-variant-f8ba7710-8d0c-0092-70fc-4423236fa8d7"><div class="w-dyn-list"><div role="list" class="w-dyn-items"><div role="listitem" class="w-dyn-item"><img src="https://cdn.prod.website-files.com/673e0fed58528a7aafa3ec70/67d29014c887c02ae3ada0e0_profile800px_0001_Aure.avif" loading="lazy" alt="Aure Langlois" class="team-bubble"/></div></div></div><div class="w-layout-vflex cta-content-inner"><div class="heading-style-5 margin-bottom-small">Suivez votre nutrition grâce à TrayHealth !</div><div class="text-size-large text-style-muted">TrayHealth digitalise et automatise le suivi nutritionnel de votre établissement pour offrir une prise en charge nutritionnelle adaptée et personnalisée.</div></div></div><div class="z-index-1"><a rel="follow" data-wf--button-dark--variant="light" data-w-id="9d673ac7-465c-81f9-37a5-479adac714e5" href="/contact" class="button w-variant-8fa09984-bf31-5d5a-ed0a-4ab3c9d72187 w-inline-block"><div>Demande de démo</div><div class="button-icon w-embed"><svg width="auto" height="100%" viewBox="0 0 16 14" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M1 7H15M15 7L9 13M15 7L9 1" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
</svg></div></a></div></div></div></div></section></main><section class="footer"><div class="w-layout-blockcontainer container w-container"><div class="w-layout-grid footer-grid"><div id="w-node-_03acd299-4320-c159-5441-5233183db5ec-183db5e9" class="w-layout-vflex"><a href="/" class="brand margin-bottom-medium w-nav-brand"><img loading="lazy" src="https://cdn.prod.website-files.com/673e051f0ad7c6ca2d643219/673e0b4623948ead3678af94_006e424776015a1b20831fb0c62e9e1c_TRAYVISOR_LOGOTYPE.svg" alt="Logo Trayvisor, solutions IA pour la restauration collective" class="logo"/></a><p class="heading-style-6 margin-bottom-medium">Optimisez votre service, gagnez en efficacité.</p><a rel="nofollow" href="https://maps.app.goo.gl/oHC8HGa5pWJcZUaJ9" target="_blank" class="contact-link w-inline-block"><div class="icon-tiny w-embed"><svg width="auto" height="100%" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M14.6666 13.8234V6.74007C14.6666 6.6107 14.6365 6.48311 14.5787 6.36739C14.5208 6.25168 14.4368 6.15103 14.3333 6.0734L8.49998 1.6984C8.35573 1.59022 8.18029 1.53174 7.99998 1.53174C7.81967 1.53174 7.64423 1.59022 7.49998 1.6984L1.66665 6.0734C1.56315 6.15103 1.47915 6.25168 1.42129 6.36739C1.36343 6.48311 1.33331 6.6107 1.33331 6.74007V13.8234C1.33331 14.0444 1.42111 14.2564 1.57739 14.4127C1.73367 14.5689 1.94563 14.6567 2.16665 14.6567H5.49998C5.72099 14.6567 5.93296 14.5689 6.08924 14.4127C6.24552 14.2564 6.33331 14.0444 6.33331 13.8234V11.3234C6.33331 11.1024 6.42111 10.8904 6.57739 10.7341C6.73367 10.5779 6.94563 10.4901 7.16665 10.4901H8.83331C9.05433 10.4901 9.26629 10.5779 9.42257 10.7341C9.57885 10.8904 9.66665 11.1024 9.66665 11.3234V13.8234C9.66665 14.0444 9.75444 14.2564 9.91072 14.4127C10.067 14.5689 10.279 14.6567 10.5 14.6567H13.8333C14.0543 14.6567 14.2663 14.5689 14.4226 14.4127C14.5788 14.2564 14.6666 14.0444 14.6666 13.8234Z" fill="currentColor" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
</svg></div><div>Station F, Paris 13, France</div></a><a href="mailto:hello@trayvisor.com" class="contact-link w-inline-block"><div class="icon-tiny w-embed"><svg width="auto" height="100%" viewBox="0 0 16 12" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M2.75 11.9902C2.15326 11.9902 1.58097 11.7532 1.15901 11.3312C0.737053 10.9093 0.5 10.337 0.5 9.74023V2.24023C0.5 1.6435 0.737053 1.0712 1.15901 0.649244C1.58097 0.227287 2.15326 -0.00976562 2.75 -0.00976562H13.25C13.8467 -0.00976562 14.419 0.227287 14.841 0.649244C15.2629 1.0712 15.5 1.6435 15.5 2.24023V9.74023C15.5 10.337 15.2629 10.9093 14.841 11.3312C14.419 11.7532 13.8467 11.9902 13.25 11.9902H2.75ZM4.71875 3.15523C4.64235 3.09 4.55362 3.04077 4.45784 3.01049C4.36205 2.9802 4.26115 2.96946 4.16113 2.97892C4.06112 2.98838 3.96402 3.01783 3.8756 3.06553C3.78719 3.11323 3.70926 3.17821 3.64644 3.25661C3.58362 3.33501 3.53719 3.42523 3.50991 3.52192C3.48263 3.61861 3.47505 3.71979 3.48762 3.81946C3.5002 3.91913 3.53267 4.01526 3.58311 4.10215C3.63355 4.18903 3.70093 4.26489 3.78125 4.32523L6.59375 6.57598C6.99282 6.89549 7.48879 7.06958 8 7.06958C8.51121 7.06958 9.00718 6.89549 9.40625 6.57598L12.2188 4.32598C12.2957 4.26443 12.3597 4.18832 12.4072 4.10201C12.4547 4.01571 12.4848 3.92089 12.4956 3.82297C12.5065 3.72505 12.498 3.62595 12.4705 3.53132C12.4431 3.4367 12.3973 3.34841 12.3358 3.27148C12.2742 3.19456 12.1981 3.13052 12.1118 3.08301C12.0255 3.0355 11.9307 3.00545 11.8327 2.99459C11.7348 2.98373 11.6357 2.99225 11.5411 3.01969C11.4465 3.04712 11.3582 3.09293 11.2812 3.15448L8.46875 5.40448C8.33573 5.51099 8.1704 5.56902 8 5.56902C7.8296 5.56902 7.66427 5.51099 7.53125 5.40448L4.71875 3.15523Z" fill="currentColor"/>
</svg></div><div>hello@trayvisor.com</div></a></div><div id="w-node-_03acd299-4320-c159-5441-5233183db5f9-183db5e9" class="w-layout-vflex"><div class="heading-style-5 margin-bottom-large">Menu</div><a href="/" class="nav-link is-footer">Accueil</a><a href="/a-propos" class="nav-link is-footer">Qui sommes-nous ?</a><a href="/blog" class="nav-link is-footer">Le blog Trayvisor</a><a href="/contact" class="nav-link is-footer">Contactez-nous</a></div><div id="w-node-_03acd299-4320-c159-5441-5233183db602-183db5e9" class="w-layout-vflex"><div class="heading-style-5 margin-bottom-large">Solutions</div><div class="w-dyn-list"><div role="list" class="w-dyn-items"><div role="listitem" class="w-dyn-item"><a href="/solutions/trayhealth" class="nav-link is-footer">TrayHealth</a></div><div role="listitem" class="w-dyn-item"><a href="/solutions/trayvisor-trayscan" class="nav-link is-footer">TrayScan</a></div></div></div><a href="/faq" class="nav-link is-footer">FAQ</a></div><div id="w-node-dde72a36-7a52-be17-9b65-4824a177642d-183db5e9" class="w-layout-vflex"><div class="heading-style-5 margin-bottom-large">Réseaux sociaux</div><a rel="nofollow" href="https://fr.linkedin.com/company/trayvisor" target="_blank" class="nav-link is-footer">LinkedIn</a><a rel="nofollow" href="https://www.youtube.com/channel/UC4jd7XJ_7wU-Gxk-BTBRcxA" target="_blank" class="nav-link is-footer">Youtube</a><a rel="nofollow" href="https://www.facebook.com/profile.php?id=61581802662554" target="_blank" class="nav-link is-footer">Facebook</a></div></div><div class="footer-bottom"><div class="text-size-small text-style-muted">© Copyright Trayvisor - <a href="/mentions-legales">Mentions légales</a> - <a href="/politique-de-confidentialite">Politique de confidentialité</a> - Design et développement par <a href="https://www.alexisgardin.fr" target="_blank">Alexis Gardin</a></div></div></div></section></div><script src="https://d3e54v103j8qbb.cloudfront.net/js/jquery-3.5.1.min.dc5e7f18c8.js?site=673e051f0ad7c6ca2d643219" type="text/javascript" integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin="anonymous"></script><script src="https://cdn.prod.website-files.com/673e051f0ad7c6ca2d643219/js/webflow.schunk.36b8fb49256177c8.js" type="text/javascript" integrity="sha384-4abIlA5/v7XaW1HMXKBgnUuhnjBYJ/Z9C1OSg4OhmVw9O3QeHJ/qJqFBERCDPv7G" crossorigin="anonymous"></script><script src="https://cdn.prod.website-files.com/673e051f0ad7c6ca2d643219/js/webflow.schunk.c9f36e81d82c3cf5.js" type="text/javascript" integrity="sha384-wH6VazIVxVlQsDiJ2UjUKIjY+ndUGOcyO3lwDiMzlTlc82edcR0lR1zuAnhlUez6" crossorigin="anonymous"></script><script src="https://cdn.prod.website-files.com/673e051f0ad7c6ca2d643219/js/webflow.f46b2dc6.afd39eae263fc7a3.js" type="text/javascript" integrity="sha384-gYcWpR18TKdtFeMpzVHla7VD8v/wwMgOPS9lh3ia+s4RsoNRzuRx2L2qWyLxtvLz" crossorigin="anonymous"></script><!-- [Attributes by Finsweet] CMS Slider -->
<script async src="https://cdn.jsdelivr.net/npm/@finsweet/attributes-cmsslider@1/cmsslider.js"></script>
<!-- Counter Numbers Effect -->
<script>
// Fonction d'animation easing (inertie)
const easeOutQuad = (t) => t * (2 - t);
// Fonction pour demarrer le compteur
const startCounterAnimation = (counter) => {
const updateCounter = () => {
const target = +counter.getAttribute('counter-number');
const startTime = Date.now();
const update = () => {
const elapsed = Date.now() - startTime;
const duration = 2000; // Duree de l'animation (2 secondes)
const progress = Math.min(elapsed / duration, 1); // Progres de l'animation
counter.innerText = Math.floor(target * easeOutQuad(progress)).toLocaleString('fr-FR');
if (progress < 1) {
requestAnimationFrame(update); // Continue l'animation
} else {
counter.innerText = target.toLocaleString('fr-FR'); // Fixe la valeur finale
}
};
requestAnimationFrame(update);
};
updateCounter();
};
// Fonction qui verifie si l'element est dans le viewport (Intersection Observer)
document.addEventListener('DOMContentLoaded', function () {
const counters = document.querySelectorAll('[counter-number]');
const observer = new IntersectionObserver((entries, observer) => {
entries.forEach(entry => {
if (entry.isIntersecting) {
startCounterAnimation(entry.target); // Demarre l'animation du compteur
observer.unobserve(entry.target); // Stoppe l'observation une fois l'animation demarree
}
});
}, {
threshold: 0.5 // L'animation se declenche lorsque 50% de l'element est visible
});
// Appliquer l'observation a chaque compteur
counters.forEach(counter => {
observer.observe(counter);
});
});
</script>
<!-- Finsweet Attributes -->
<script async type="module"
src="https://cdn.jsdelivr.net/npm/@finsweet/attributes@2/attributes.js"
fs-socialshare
></script>
<!-- Reading Time // START -->
<script>
// Immediately invoked function expression for faster execution
(function() {
// Function to calculate and display reading time
function calculateReadingTime() {
// Select elements with data attributes
const readingTimeElement = document.querySelector('[data-reading-time-target]');
const contentElement = document.querySelector('[data-reading-time-content]');
// Check if elements exist and reading time is enabled
if (contentElement && readingTimeElement && readingTimeElement.getAttribute('data-reading-time-enabled') !== 'false') {
// Get text content
const text = contentElement.textContent;
// Calculate word count
const words = text.trim().split(/\s+/).length;
// Average reading speed (words per minute)
const wordsPerMinute = 200;
// Calculate reading time in minutes (minimum 1)
let readingTime = Math.ceil(words / wordsPerMinute);
readingTime = readingTime < 1 ? 1 : readingTime;
// Determine singular or plural label
const minuteLabel = readingTime === 1 ? 'minute' : 'minutes';
// Display reading time
readingTimeElement.textContent = `${readingTime} ${minuteLabel} de lecture`;
}
}
// Try to execute immediately if DOM is already ready
if (document.readyState === 'loading') {
// If DOM is still loading, wait for it to be ready
document.addEventListener('DOMContentLoaded', calculateReadingTime);
} else {
// DOM is already ready, calculate immediately
calculateReadingTime();
}
})();
</script>
<!-- Reading Time // END --></body></html>