Afficher la table des matières Masquer la table des matières
- Hachis parmentier recette de grand-mère traditionnelle : l’essentiel à faire en premier
- La purée généreuse : gestes précis pour une onctuosité parfaite
- Viande mijotée : comment maximiser la saveur en 30 minutes
- Montage et gratinage : technique pour une croûte parfaite
- Quizz : Ce Hachis Parmentier De Grand-Mère
- Q${index + 1}. ${q.question} Choisissez une réponse puis valide avec le bouton « Suivant ». Vous pouvez aussi naviguer au clavier. `; qWrap.appendChild(header); // Liste des choix (boutons accessibles) const list = document.createElement('ul'); list.className = "grid gap-3"; list.setAttribute('role', 'list'); q.choices.forEach((choiceText, ci) => { const li = document.createElement('li'); const btn = document.createElement('button'); btn.type = 'button'; btn.className = "option-btn w-full text-left p-3 border rounded-md bg-slate-50 border-slate-200 hover:bg-slate-100"; btn.setAttribute('role', 'button'); btn.setAttribute('tabindex', '0'); btn.setAttribute('data-choice-index', ci); btn.innerHTML = `${choiceText}`; // States visuels si déjà répondu if (answers[index] !== null) { btn.disabled = true; if (ci === q.correctIndex) btn.classList.add('option-correct'); if (answers[index] === ci && ci !== q.correctIndex) btn.classList.add('option-wrong'); } // Click / keyboard handling btn.addEventListener('click', () => handleChoiceSelection(index, ci)); btn.addEventListener('keydown', (ev) => { if (ev.key === 'Enter' || ev.key === ' ') { ev.preventDefault(); handleChoiceSelection(index, ci); } // navigation entre options par flèches if (ev.key === 'ArrowDown' || ev.key === 'ArrowRight') { ev.preventDefault(); const next = li.nextElementSibling; if (next) next.querySelector('button').focus(); } if (ev.key === 'ArrowUp' || ev.key === 'ArrowLeft') { ev.preventDefault(); const prev = li.previousElementSibling; if (prev) prev.querySelector('button').focus(); } }); li.appendChild(btn); list.appendChild(li); }); qWrap.appendChild(list); // Zone d'explication (invisible tant que pas répondu) const explain = document.createElement('div'); explain.className = "mt-3 p-3 rounded-md bg-amber-50 border border-amber-100 text-slate-700 hidden"; explain.setAttribute('id', `explain-${index}`); explain.innerHTML = `Explication : ${q.explanation}`; qWrap.appendChild(explain); container.appendChild(qWrap); // Si la question a été déjà répondue, afficher l'explication if (answers[index] !== null) { showExplanation(index); } // Mise au focus du premier bouton pour accessibilité const firstBtn = container.querySelector('button'); if (firstBtn) firstBtn.focus(); } // Gérer la sélection d'un choix function handleChoiceSelection(questionIndex, choiceIndex) { // Si déjà répondu, on ignore if (answers[questionIndex] !== null) return; answers[questionIndex] = choiceIndex; // Mettre à jour l'apparence des boutons const qWrap = container.querySelector('article'); const buttons = qWrap.querySelectorAll('button.option-btn'); buttons.forEach((btn) => { const ci = parseInt(btn.getAttribute('data-choice-index'), 10); btn.disabled = true; if (ci === QUIZ_DATA[questionIndex].correctIndex) { btn.classList.add('option-correct'); } if (ci === choiceIndex && ci !== QUIZ_DATA[questionIndex].correctIndex) { btn.classList.add('option-wrong'); } }); // Afficher l'explication showExplanation(questionIndex); // Mise à jour du score en aperçu scorePreview.textContent = `Score: ${calculateScore()}`; } // Affiche l'explication d'une question function showExplanation(index) { const explainEl = document.getElementById(`explain-${index}`); if (explainEl) explainEl.classList.remove('hidden'); } // Affiche le résultat final function revealFinalScore() { const score = calculateScore(); const total = QUIZ_DATA.length; const percent = Math.round((score / total) * 100); let message = ''; if (percent === 100) { message = "Parfait ! Vous êtes la mémoire culinaire de la famille."; } else if (percent >= 75) { message = "Très bien ! Vous connaissez bien les astuces de grand-mère."; } else if (percent >= 50) { message = "Pas mal ! Quelques astuces à retenir pour la prochaine fois."; } else { message = "On révise la recette ensemble ? Vos prochains dîners seront meilleurs !"; } resultBox.classList.remove('hidden'); resultBox.classList.add('bg-white', 'border', 'border-slate-100', 'shadow-sm'); resultBox.innerHTML = ` Résultat Vous avez obtenu ${score} / ${total} (${percent}%). ${message} Voir explications par question ${QUIZ_DATA.map((q, i) => { const user = answers[i] === null ? "Pas répondu" : q.choices[answers[i]]; const correct = q.choices[q.correctIndex]; return ` Q${i+1}. ${q.question} Votre réponse : ${escapeHtml(user)} — Réponse : ${escapeHtml(correct)} Explication : ${escapeHtml(q.explanation)} `; }).join('')} `; resultBox.focus(); } // Restart quiz function restartQuiz() { currentIndex = 0; for (let i = 0; i < answers.length; i++) answers[i] = null; resultBox.classList.add('hidden'); renderQuestion(currentIndex); updateProgress(); } // Sécurité simple pour éviter l'injection de texte (strings contrôlées ici) function escapeHtml(str) { if (!str) return ''; return String(str).replace(/[&"']/g, (m) => ({'&':'&','':'>','"':'"',"'":'''}[m])); } // Événements des boutons de contrôle prevBtn.addEventListener('click', () => { if (currentIndex > 0) { currentIndex--; renderQuestion(currentIndex); updateProgress(); } }); nextBtn.addEventListener('click', () => { // Si on est sur la dernière question et qu'on clique "Terminer", afficher score if (currentIndex === QUIZ_DATA.length - 1) { revealFinalScore(); // Move progress to 100% progressBar.style.width = '100%'; progressText.textContent = `Question ${QUIZ_DATA.length} / ${QUIZ_DATA.length}`; return; } // Avancer if (currentIndex < QUIZ_DATA.length - 1) { currentIndex++; renderQuestion(currentIndex); updateProgress(); } }); restartBtn.addEventListener('click', () => { restartQuiz(); }); revealScoreBtn.addEventListener('click', () => { revealFinalScore(); }); // Raccourcis clavier globaux pour accessibilité (flèches pour navigation entre questions) document.addEventListener('keydown', (ev) => { // Si focus est dans un champ de formulaire (rare ici), on ne gêne pas const tag = document.activeElement.tagName.toLowerCase(); if (tag === 'input' || tag === 'textarea') return; if (ev.key === 'ArrowLeft') { prevBtn.click(); } else if (ev.key === 'ArrowRight') { nextBtn.click(); } else if (ev.key === 'Home') { currentIndex = 0; renderQuestion(currentIndex); updateProgress(); } else if (ev.key === 'End') { currentIndex = QUIZ_DATA.length - 1; renderQuestion(currentIndex); updateProgress(); } }); // Initialisation renderQuestion(currentIndex); updateProgress(); // Note : Aucune API externe nécessaire pour ce composant. Si vous souhaitiez ajouter des astuces // dynamiques depuis une API publique (ex. une base de recettes), elle doit être gratuite et fournie // sans clé. Dans ce cas, incluez l'URL et un exemple JSON en commentaire. 7 Idées De Repas Ete Soir Ultra Rafraîchissantes Prêtes En 20 Minutes Chrono Besoin d’un dîner léger qui rafraîchit et se prépare en un éclair ? Voici 7 idées de repas d’été prêtes en moins de 20 minutes, pensées pour profiter du soir sans transpirer en cuisine 🌿. Éloïse reçoit des amis après… Ailes de BBQ Glacées Prêtes en 30 Minutes Top Chrono ! Ailes de BBQ Glacées prêtes en 30 minutes : sucrées, collantes et croustillantes grâce à l’air fryer, pour un repas convivial improvisé. 🔥🍯⏱️ Chaque étape ci‑dessous indique exactement quoi faire, avec temps et températures précis pour réussir cette recette facile… Variantes familiales du hachis parmentier : adapter selon saison et garde-manger Modifiez la structure en intégrant des légumes de saison (poireaux en automne, petits pois au printemps) pour alléger le plat et enrichir la palette de saveurs; c’est la recette idéale pour valoriser les restes de pot-au-feu. Pour une touche régionale, ajoutez du gruyère dans la purée ou remplacez une partie des pommes de terre par du panais ou de la patate douce. Inspirez‑vous de variantes et idées de présentation sur unerecetteunesaveur et pour des déclinaisons modernes consultez cette version détaillée qui reprend les gestes traditionnels. Anti-gaspillage et restes : idées concrètes pour transformer les portions
- Service et accords : finaliser pour un dîner qui soude la table
Ce Hachis Parmentier De Grand-Mère Va Réconcilier Toute La Famille Au Dîner : une recette simple et précise pour obtenir une purée de pommes de terre onctueuse et une viande hachée mijotée pleine de caractère, prête à rassembler tout le monde autour d’un repas convivial ce soir. Suivez les étapes ci-dessous, appliquez les astuces de grande-mère et passez directement à l’action pour un plat réconfortant digne de la cuisine maison.
Hachis parmentier recette de grand-mère traditionnelle : l’essentiel à faire en premier
Commencez par préparer la purée de pommes de terre et la viande hachée séparément pour maîtriser textures et saveurs. Cette méthode garantit une purée onctueuse et une viande bien réduite, deux conditions indispensables pour un hachis parmentier fidèle à la recette traditionnelle. Exemple concret : cuire 1,2 kg de pommes de terre à chair farineuse pendant 20–25 minutes pendant que la viande mijote doucement avec oignon, ail et thym.
La purée généreuse : gestes précis pour une onctuosité parfaite
Écrasez les pommes de terre chaudes au presse-purée et incorporez le lait chaud petit à petit pour contrôler la texture; c’est l’astuce qui évite une purée collante. Ajoutez 80 g de beurre demi-sel et éventuellement 2 jaunes d’œufs et 100 ml de crème hors du feu pour une purée vraiment gourmande. Pour rattraper une purée trop liquide, saupoudrez un peu de fécule de pomme de terre; si elle est trop épaisse, détendez-la avec un nuage de lait chaud.
Ces Lasagnes Vegetariennes Ultra Gourmandes Vont Faire Oublier La Viande À Toute La Famille
Ces lasagnes végétariennes ultra gourmandes vont faire oublier la viande : un gratin doré, des couches fondantes de légumes et une béchamel soyeuse créent une recette familiale qui séduit instantanément. Testée pour des repas conviviaux, elle est simple à préparer…
Cette Salade Melon Sucrée-Salée Va Révolutionner Vos Repas D’Été En 10 Minutes
À lire Ces Lasagnes Vegetariennes Ultra Gourmandes Vont Faire Oublier La Viande À Toute La Famille
Cette salade melon sucrée-salée révolutionne vos repas d’été : rapide, facile et prête en 10 minutes, elle combine fraîcheur et contraste de saveurs pour un plat léger et rafraîchissant 🍈⏱️. Les instructions suivantes expliquent exactement quoi acheter, comment découper et…
Viande mijotée : comment maximiser la saveur en 30 minutes
Faites revenir 2 oignons et 2 gousses d’ail à feu doux jusqu’à transparence, puis augmentez le feu pour saisir 600 g de bœuf haché et 200 g de porc haché si disponible; cette combinaison apporte du fond et du goût. Déglacez au vin blanc, ajoutez 300 ml de bouillon et laissez réduire 25–30 minutes avec thym et laurier pour une viande mijotée riche en arômes. Astuce de grand-mère : préparer la viande la veille permet aux parfums de se développer davantage et facilite le montage le jour du service.
Montage et gratinage : technique pour une croûte parfaite
Étalez la viande refroidie dans un plat beurré, recouvrez généreusement de purée et striez la surface à la fourchette pour favoriser un gratinage uniforme. Saupoudrez 3 cuillères à soupe de chapelure et 150 g de gruyère râpé, ajoutez quelques noisettes de beurre et enfournez à 180°C pendant 20 minutes. Pour un service pratique, laissez reposer 5 minutes avant de découper : la tenue est meilleure et le dîner en famille débute sans stress.
Testez vos connaissances et découvrez quelques astuces de grand-mère !
Quizz : Ce Hachis Parmentier De Grand-Mère
7 Idées De Repas Ete Soir Ultra Rafraîchissantes Prêtes En 20 Minutes Chrono
Besoin d’un dîner léger qui rafraîchit et se prépare en un éclair ? Voici 7 idées de repas d’été prêtes en moins de 20 minutes, pensées pour profiter du soir sans transpirer en cuisine 🌿. Éloïse reçoit des amis après…
Ailes de BBQ Glacées Prêtes en 30 Minutes Top Chrono !
À lire Le Gratin Dauphinois Authentique : L’Erreur Que Tout Le Monde Commet Encore
Ailes de BBQ Glacées prêtes en 30 minutes : sucrées, collantes et croustillantes grâce à l’air fryer, pour un repas convivial improvisé. 🔥🍯⏱️ Chaque étape ci‑dessous indique exactement quoi faire, avec temps et températures précis pour réussir cette recette facile…
Variantes familiales du hachis parmentier : adapter selon saison et garde-manger
Modifiez la structure en intégrant des légumes de saison (poireaux en automne, petits pois au printemps) pour alléger le plat et enrichir la palette de saveurs; c’est la recette idéale pour valoriser les restes de pot-au-feu. Pour une touche régionale, ajoutez du gruyère dans la purée ou remplacez une partie des pommes de terre par du panais ou de la patate douce. Inspirez‑vous de variantes et idées de présentation sur unerecetteunesaveur et pour des déclinaisons modernes consultez cette version détaillée qui reprend les gestes traditionnels.
Anti-gaspillage et restes : idées concrètes pour transformer les portions
Congelez le plat avant le gratinage pour gagner du temps les soirs pressés, ou transformez les restes en croquettes panées dorées à la poêle pour un encas réconfortant. La conservation se fait 3 jours au réfrigérateur et jusqu’à 3 mois au congélateur; pour réchauffer, enfourner à 160°C pendant 15 minutes pour préserver la texture. Clé pratique : des restes bien recyclés prolongent la magie du plat réconfortant et évitent le gaspillage tout en offrant un nouveau moment de partage.
Le Gratin Dauphinois Authentique : L’Erreur Que Tout Le Monde Commet Encore
Point clé : l’erreur que beaucoup commettent encore avec le Gratin Dauphinois n’est pas seulement d’y mettre du fromage, c’est surtout de laver les pommes de terre après les avoir coupées — on enlève alors l’amidon qui crée la liaison…
5 Plat Froid Rapides Pour Survivre À La Canicule Sans Allumer Le Four
Survivre à la canicule sans allumer le four : cinq plats froids et ultra pratiques pour rester au frais, hydraté et rassasié en moins de 20 minutes. Ces recettes rapides privilégient légumes riches en eau, préparations sans cuisson et astuces…
À lire La recette de soupe simple que je ne cesse de refaire
Service et accords : finaliser pour un dîner qui soude la table
Servez le hachis parmentier avec une salade verte acidulée pour équilibrer la richesse et proposez un vin rouge léger comme un Beaujolais ou Côtes du Rhône pour accompagner la viande. Pour une table qui raconte une histoire, partagez l’anecdote de Lucie, une mère de famille qui reprend la recette de sa mère : elle prépare la viande la veille, gratine le plat le jour J et voit sa famille se réunir autour d’un repas convivial. Insight final : un geste simple en cuisine crée souvent les plus grands souvenirs.
Pour d’autres inspirations de plats familiaux et menus réconfortants, explorez aussi ces idées pratiques : variations de parmentier et une version hivernale plus riche parmentier de canard confit. Ces ressources aident à adapter la recette selon l’humeur et les saisons. 🍽️
Ailes de poulet BBQ collantes : prêtes en seulement 30 minutes
Prête en 30 minutes : des ailes de poulet BBQ collantes, croustillantes à l’extérieur et juteuses à l’intérieur, idéales comme apéritif ou finger food lors d’un dîner convivial. Commencez tout de suite : préchauffez l’airfryer et préparez une sauce maison…
Cette Salade Estivale Fraîche Et Gourmande Va Devenir Votre Obsession De L’Été
Cette salade estivale, fraîche et gourmande, transforme chaque repas d’été en un moment rafraîchissant et facile à préparer : prête en 15 minutes, elle marie textures croquantes et saveurs sucrées-salées pour devenir l’obsession de la saison. La promesse : une…