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 Desserts Sans Sucre Ultra Gourmands Qui Trompent Même Les Plus Sucrés Résumé : Des desserts sans sucre peuvent être aussi riches et séduisants que leurs équivalents sucrés — il suffit de choisir les bonnes bases (purée de fruits, dattes, compote) et d’ajuster texture et cuisson pour obtenir des pâtisseries légères et… 7 Ramen Recettes Authentiques Qui Vont Ruiner Vos Nouilles Instantanées Pour Toujours Arrêtez les nouilles instantanées : ces 7 recettes de ramen authentiques offrent des bouillons, des garnitures et des techniques à reproduire chez soi pour des bols qui surpassent instantanément tout paquet prêt-à-l’emploi. 🍜 Suivez les étapes précises, utilisez ingrédients frais… 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.
Poulet Cowboy en Une Poêle aux Saveurs Intenses du Tex-Mex
Poulet Cowboy en Une Poêle : une recette Tex-Mex à la fois rapide et spectaculaire, conçue pour délivrer des saveurs intenses en moins de 30 minutes. Suivre les étapes ci‑dessous permet d’obtenir un plat épicé, juteux et parfait pour un…
La Caviar Aubergine Recette Traditionnelle Qui Va Sublimer Tous Vos Apéros D’Été
À lire La Caviar Aubergine Recette Traditionnelle Qui Va Sublimer Tous Vos Apéros D’Été
La recette traditionnelle de caviar d’aubergine transforme instantanément un simple apéro en moment solaire et convivial : une tartinade onctueuse, parfumée et facile à préparer pour tous vos apéros d’été 🌞. Suivre cette méthode garantit une aubergine grillée fondante, un…
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 Desserts Sans Sucre Ultra Gourmands Qui Trompent Même Les Plus Sucrés
Résumé : Des desserts sans sucre peuvent être aussi riches et séduisants que leurs équivalents sucrés — il suffit de choisir les bonnes bases (purée de fruits, dattes, compote) et d’ajuster texture et cuisson pour obtenir des pâtisseries légères et…
7 Ramen Recettes Authentiques Qui Vont Ruiner Vos Nouilles Instantanées Pour Toujours
À lire Le Boeuf Bourguignon Authentique : L’Astuce De Grand-Mère Que Personne Ne Connaît
Arrêtez les nouilles instantanées : ces 7 recettes de ramen authentiques offrent des bouillons, des garnitures et des techniques à reproduire chez soi pour des bols qui surpassent instantanément tout paquet prêt-à-l’emploi. 🍜 Suivez les étapes précises, utilisez ingrédients frais…
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.
Ce Pesto Basilic Maison Va Ruiner Tous Vos Pestos Industriels En 5 Minutes Chrono
Ce Pesto Basilic Maison transforme des pâtes banales en explosion de saveurs fraîches en moins de 5 minutes — sans conservateurs et bien plus vivant que n’importe quel pesto industrial. 🌿 Prépare la base, suis trois gestes précis, et le…
Ces Beignets De Courgettes Ultra Croustillants Vont Ruiner Votre Régime Cet Été
Ces beignets de courgettes ultra croustillants promettent un plaisir coupable cet été : dorés, légers et prêts en quelques minutes grâce à l’Air Fryer, ils transforment le légume en véritable gourmandise. Suivre cette recette permet d’obtenir un snack estival irrésistible…
À lire Ce Dahl Lentilles Corail Ultra Onctueux Va Devenir Votre Plat Réconfortant Préféré
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. 🍽️
Ce Rougail Saucisse Authentique Va Vous Transporter Direct À La Réunion En Une Bouchée
Ce rougail saucisse authentique promet un voyage immédiat vers la Réunion : une bouchée suffit pour ressentir le soleil, les épices et les saveurs de la cuisine réunionnaise. Préparez-vous à suivre une recette simple et précise, avec des étapes claires,…
7 Courgette Recette Originales Qui Vont Écouler Votre Récolte Sans Lassitude
Écoulez votre récolte sans lassitude grâce à 7 recettes originales qui transforment la courgette en vedette de chaque repas. Ces idées sont pratiques, rapides à réaliser et conçues pour la cuisine de saison : préparez, cuisez et congelez si besoin.…