Afficher la table des matières Masquer la table des matières
- Recette rapide : clafoutis abricot fondant en 30 minutes
- Étapes express pour un clafoutis abricot ultra fondant
- Variantes gourmandes et astuces de cheffe pour un résultat irrésistible
- Quizz : Ce Clafoutis Abricot Fondant
- ${sanitize(q.question)} Choisissez ${q.type === 'multiple' ? 'une ou plusieurs réponses' : 'une seule réponse'}. #${state.currentIndex + 1} Options ${q.choices.map((c, idx) => renderChoice(q, c, idx)).join('')} `; // Attacher gestionnaires aux boutons choix const choiceButtons = quizContainer.querySelectorAll('.choice-btn'); choiceButtons.forEach(btn => { btn.addEventListener('click', onChoiceClick); btn.addEventListener('keydown', onChoiceKeydown); }); // Restorer sélection si déjà répondu if (state.answers[q.id]) { restoreSelection(q); } // Focus sur première option pour navigation clavier const firstBtn = quizContainer.querySelector('.choice-btn'); if (firstBtn) firstBtn.focus(); } /* Création HTML d'un choix (bouton pour accessibilité clavier) */ function renderChoice(question, choice, idx) { // Pour multiple, on permet toggles ; pour single, sélection unique const inputType = question.type === 'multiple' ? 'checkbox' : 'radio'; // We use button-like elements for accessible toggles return ` ${idx + 1} ${sanitize(choice.text)} ${inputType === 'checkbox' ? 'Multiple' : 'Unique'} `; } /* ---------- Gestion des interactions ---------- */ function onChoiceClick(e) { const btn = e.currentTarget; const qid = btn.dataset.qid; const choiceId = btn.dataset.choice; const inputType = btn.dataset.inputtype; const question = QUIZ_TEXT.questions.find(q => q.id === qid); if (inputType === 'checkbox') { // Toggle multiple selection const pressed = btn.getAttribute('aria-pressed') === 'true'; btn.setAttribute('aria-pressed', String(!pressed)); // Met à jour visual (outline via CSS) updateAnswerMultiple(qid); } else { // Single choice: désactiver autres const allBtns = quizContainer.querySelectorAll(`.choice-btn[data-qid="${qid}"]`); allBtns.forEach(b => b.setAttribute('aria-pressed', 'false')); btn.setAttribute('aria-pressed', 'true'); state.answers[qid] = choiceId; // Afficher feedback immédiat pour single-choice showFeedback(question); } } /* Support navigation clavier sur boutons (Enter/Espace) */ function onChoiceKeydown(e) { if (e.key === 'Enter' || e.key === ' ') { e.preventDefault(); e.currentTarget.click(); } // Flèches pour naviguer entre options if (e.key === 'ArrowDown' || e.key === 'ArrowRight') { e.preventDefault(); const next = e.currentTarget.parentElement.nextElementSibling; if (next) next.querySelector('.choice-btn').focus(); } if (e.key === 'ArrowUp' || e.key === 'ArrowLeft') { e.preventDefault(); const prev = e.currentTarget.parentElement.previousElementSibling; if (prev) prev.querySelector('.choice-btn').focus(); } } /* Met à jour la sélection multiple dans state */ function updateAnswerMultiple(qid) { const pressedBtns = Array.from(document.querySelectorAll(`.choice-btn[data-qid="${qid}"]`)) .filter(b => b.getAttribute('aria-pressed') === 'true') .map(b => b.dataset.choice); state.answers[qid] = pressedBtns; // Feedback dynamique pour multiple const question = QUIZ_TEXT.questions.find(q => q.id === qid); showFeedback(question); } /* Afficher feedback (correct/incorrect + explication) */ function showFeedback(question) { const feedbackEl = quizContainer.querySelector('#feedback'); const user = state.answers[question.id]; let correct = false; if (question.type === 'single') { correct = user === question.answer; } else { // multiple: comparer ensembles (ordre non important) const expected = question.answer.slice().sort(); const got = Array.isArray(user) ? user.slice().sort() : []; correct = (expected.length === got.length) && expected.every((v, i) => v === got[i]); } if (user === undefined || (Array.isArray(user) && user.length === 0)) { feedbackEl.innerHTML = `Aucune réponse sélectionnée.`; return; } feedbackEl.innerHTML = ` ${correct ? 'Bonne réponse' : 'Réponse à améliorer'} ${sanitize(question.explanation)} `; } /* Restaurer sélection si utilisateur revient en arrière */ function restoreSelection(question) { const saved = state.answers[question.id]; if (!saved) return; if (question.type === 'single') { const btn = quizContainer.querySelector(`.choice-btn[data-qid="${question.id}"][data-choice="${saved}"]`); if (btn) btn.setAttribute('aria-pressed', 'true'); } else { // tableau saved.forEach(choiceId => { const btn = quizContainer.querySelector(`.choice-btn[data-qid="${question.id}"][data-choice="${choiceId}"]`); if (btn) btn.setAttribute('aria-pressed', 'true'); }); } } /* ---------- Contrôles (précédent / suivant) ---------- */ function onPrev() { if (state.currentIndex === 0) return; state.currentIndex--; renderQuestion(); updateControls(); } function onNext() { const question = QUIZ_TEXT.questions[state.currentIndex]; // S'assurer qu'une réponse a été donnée avant d'avancer const ans = state.answers[question.id]; if (ans === undefined || (Array.isArray(ans) && ans.length === 0)) { // Petit focus et message accessible const feedbackEl = quizContainer.querySelector('#feedback'); feedbackEl.innerHTML = `Veuillez sélectionner une réponse avant de continuer.`; // Focus sur première option const firstBtn = quizContainer.querySelector('.choice-btn'); if (firstBtn) firstBtn.focus(); return; } if (state.currentIndex < QUIZ_TEXT.questions.length - 1) { state.currentIndex++; renderQuestion(); updateControls(); } else { // Fin du quiz finishQuiz(); } } function updateControls() { prevBtn.setAttribute('aria-disabled', String(state.currentIndex === 0)); prevBtn.disabled = state.currentIndex === 0; nextBtn.textContent = state.currentIndex === QUIZ_TEXT.questions.length - 1 ? 'Terminer' : 'Suivant ▶'; // Mise à jour progress bar const total = QUIZ_TEXT.questions.length; progressBar.style.width = `${((state.currentIndex + 1) / total) * 100}%`; } /* ---------- Calcul du score et affichage résultat ---------- */ function finishQuiz() { clearInterval(state.timerInterval); // Calcul const total = QUIZ_TEXT.questions.length; let correctCount = 0; QUIZ_TEXT.questions.forEach(q => { const user = state.answers[q.id]; if (q.type === 'single') { if (user === q.answer) correctCount++; } else { const expected = q.answer.slice().sort(); const got = Array.isArray(user) ? user.slice().sort() : []; if (expected.length === got.length && expected.every((v,i)=>v===got[i])) correctCount++; } }); const percent = Math.round((correctCount / total) * 100); let message = QUIZ_TEXT.messages.tryAgain; if (percent === 100) message = QUIZ_TEXT.messages.perfect; else if (percent >= 80) message = QUIZ_TEXT.messages.great; else if (percent >= 50) message = QUIZ_TEXT.messages.good; // Afficher panel résultat resultPanel.innerHTML = ` Résultat : ${correctCount}/${total} (${percent}%) ${sanitize(message)} ${QUIZ_TEXT.questions.map(q => summarizeQuestionResult(q)).join('')} Refaire Partager `; resultPanel.classList.remove('hidden'); resultPanel.focus(); // Attacher actions document.getElementById('retry-btn').addEventListener('click', resetQuiz); document.getElementById('share-btn').addEventListener('click', shareResult); // Scroll léger vers le panel (si besoin) resultPanel.scrollIntoView({ behavior: 'smooth', block: 'center' }); } /* Résumé par question pour le panel résultat */ function summarizeQuestionResult(q) { const user = state.answers[q.id]; let correct = false; let userText = ''; if (q.type === 'single') { correct = user === q.answer; const choice = q.choices.find(c => c.id === user); userText = choice ? choice.text : 'Aucune'; } else { const expected = q.answer.slice().sort(); const got = Array.isArray(user) ? user.slice().sort() : []; correct = expected.length === got.length && expected.every((v,i)=>v===got[i]); userText = Array.isArray(user) ? user.map(id => (q.choices.find(c=>c.id===id)||{text:id}).text).join(', ') : 'Aucune'; } const correctText = q.type === 'multiple' ? q.choices.filter(c => q.answer.includes(c.id)).map(c=>c.text).join(', ') : (q.choices.find(c => c.id === q.answer) || {text: q.answer}).text; return `${sanitize(q.question)} Votre réponse : ${sanitize(userText)} — Réponse attendue : ${sanitize(correctText)} `; } /* Réinitialiser le quiz */ function resetQuiz() { state.currentIndex = 0; state.answers = {}; state.startTime = Date.now(); clearInterval(state.timerInterval); state.timerInterval = setInterval(updateTimer, 1000); resultPanel.classList.add('hidden'); renderQuestion(); updateControls(); } /* Partager le résultat (copier dans le presse-papier) */ function shareResult() { const total = QUIZ_TEXT.questions.length; let correctCount = 0; QUIZ_TEXT.questions.forEach(q => { const user = state.answers[q.id]; if (q.type === 'single') { if (user === q.answer) correctCount++; } else { const expected = q.answer.slice().sort(); const got = Array.isArray(user) ? user.slice().sort() : []; if (expected.length === got.length && expected.every((v,i)=>v===got[i])) correctCount++; } }); const text = `J'ai obtenu ${correctCount}/${total} au quizz "${QUIZ_TEXT.title}" sur la recette du Clafoutis Abricot Fondant !`; navigator.clipboard?.writeText(text).then(() => { alert('Résultat copié dans le presse-papier. Partagez-le partout !'); }).catch(() => { prompt('Copiez ce texte pour le partager :', text); }); } /* ---------- Utilitaires ---------- */ /* Simple sanitisateur pour textes (évite injections) */ function sanitize(str) { if (!str && str !== 0) return ''; return String(str) .replace(/&/g, "&") .replace(/, "<") .replace(/>/g, ">"); } /* ---------- Démarrage ---------- */ initQuiz(); /* ---------- Notes techniques ---------- - Aucune API externe n'est requise pour ce quiz. - Si vous souhaitez pré-remplir via une API publique gratuite (exemples), vous pouvez appeler un service public JSON. Exemple (non utilisé ici) : URL d'exemple : https://api.publicapis.org/entries Exemple de réponse JSON : { "count": 1420, "entries": [ { "API": "Cat Facts", "Description": "Daily cat facts", "Auth": "", "HTTPS": true, "Cors": "no", "Link": "https://alexwohlbruck.github.io/cat-facts/" }, ... ] } - Pour préserver performance : pas de librairie lourde, Tailwind via CDN (léger). - Accessibilité : focus géré, aria-live pour feedback, boutons utilisables au clavier. - Internationalisation : toutes les chaînes sont en français et modifiables au début. ---------------------------------------------------------*/ Astuces pratiques pour gagner du temps et sublimer le fruit de saison
- Sources d'inspiration et recettes similaires à consulter
Obtenez un clafoutis abricot fondant en seulement 30 minutes : une version express, simple et gourmande pour transformer les abricots de saison en un dessert d’été qui se sert tiède ou froid. ⏱️🍑 Ce guide donne la méthode express, les ingrédients précis et les astuces pour réussir un résultat moelleux et sucré à souhait dès la première fournée.
Recette rapide : clafoutis abricot fondant en 30 minutes
Pour 6 personnes : 500 g d’abricots lavés et dénoyautés, 4 œufs, 125 g de sucre, 100 g de farine, 60 g de beurre, 25 cl de lait et 1 pincée de sel. 🧈🍶 Utiliser un moule peu profond permet de réduire fortement le temps de cuisson sans sacrifier le fondant.
Cette version est pensée pour être rapide : préparation 10–12 minutes, cuisson 18–20 minutes dans un four très chaud ou 25–30 minutes en mode convection à 200 °C. Pour une alternative plus traditionelle (texture plus dense), la cuisson classique de 45–50 minutes reste disponible. Insight clé : choisir un moule bas change tout pour gagner du temps.
Étapes express pour un clafoutis abricot ultra fondant
Préparer les abricots : couper en deux et réserver côté bombé vers le haut dans un moule beurré. 🍑 Disposer serré les moitiés assure un visuel gourmand et concentre les jus durant la cuisson.
Préparer l’appareil : battre les 4 œufs avec le 125 g de sucre et la pincée de sel jusqu’à mousse légère, ajouter la 100 g de farine tamisée, puis incorporer le beurre fondu tiède et le 25 cl de lait pour obtenir une pâte parfaitement lisse. Astuce pratique : verser le lait tiède pour éviter les grumeaux et garder une texture très fondante.
Cuisson express : préchauffer le four à 220 °C, enfourner immédiatement et surveiller entre 18 et 30 minutes selon le moule. Le clafoutis est cuit lorsque le dessus est doré et que le centre tremble encore légèrement. Cet ajustement permet d’obtenir un dessert d’été prêt en moins d’une demi-heure.
À lire Une sauce à la saucisse crémeuse prête en seulement 15 minutes
La soirée pizza maison démarre avec cette pâte ultra simple à réaliser
La soirée pizza maison démarre avec cette pâte ultra simple à réaliser : en moins d’1h20, préparez une base moelleuse et dorée qui permet de garnir deux pizzas, congeler une portion et improviser un repas convivial en un clin d’œil.…
Le secret du mijoteur pour une cuisson de steak parfaitement tendre
Le secret pour obtenir un steak parfaitement tendre au mijoteur : maîtriser le slow cooking avec des étapes simples et un temps de repos adapté. Claire, prof de yoga et adepte d’une cuisine saine, a transformé des steaks abordables en…
Une Soupe Taco Réconfortante pour les Soirées Pressées
Une soupe taco réconfortante, prête en moins de 45 minutes, pour transformer une soirée pressée en un repas chaud savoureux et rassasiant. 🔥 Ce bol unique combine viande assaisonnée, haricots, maïs et tomates épicées pour offrir une expérience inspirée du…
Variantes gourmandes et astuces de cheffe pour un résultat irrésistible
Pour renforcer le côté gourmand, ajouter une cuillère à café d’extrait de vanille ou remplacer 20 g de sucre par du sucre complet pour une note caramélisée. 🍨 Une boule de glace vanille au service apporte un contraste chaud/froid qui sublime le fruit.
À lire Un petit-déjeuner façon diner prêt en seulement 25 minutes
Conservation et service : ce clafoutis se conserve très bien 2 à 3 jours au réfrigérateur ; servir tiède pour les convives pressés ou bien frais pour un dessert à préparer la veille. Insight : la texture s’affirme au frais tout en restant fondante.
Quizz : Ce Clafoutis Abricot Fondant
Testez vos connaissances sur la recette en 30 minutes et devenez le roi/la reine du clafoutis d'été.
Astuces pratiques pour gagner du temps et sublimer le fruit de saison
Choisir des abricots mûrs mais fermes maximise la tenue à la cuisson et évite un excès de jus qui alourdit la pâte. ☀️ Le fruit de saison doit rester la star : le disposer côté bombé visible crée un bel effet visuel à la sortie du four.
Pour une cuisson express réussie, utiliser un plat métallique ou un moule en céramique peu profond ; ces matériaux transmettent la chaleur plus rapidement. Résultat clé : la technique de moule change la durée et le moelleux du clafoutis.
Plan de Repas Hebdomadaire du 7 Septembre 2026
Plan de repas hebdomadaire prêt à suivre pour la semaine du 7 septembre 2026 : gagnez du temps, maîtrisez votre budget et adoptez une alimentation équilibrée sans stress. Commencez la semaine avec un menu clair, des étapes de préparation des…
Un Dîner Convivial au Biscuits Dorés, Préparé en Une Seule Poêle
À lire Steaks de Chou Rôtis : Croquants et Fondants en Seulement 10 Minutes de Préparation !
Obtenez un dîner convivial en moins de 30 minutes : un plat unique qui combine une garniture crémeuse et des biscuits dorés cuits dans une seule poêle, pour une préparation rapide et un nettoyage minimal. Ce format transforme la cuisine…
Compote de pommes ultra simple avec seulement quatre ingrédients, dont… de l’eau !
Compote de pommes ultra simple, prête en moins d'une heure : voici une recette simple à quatre ingrédients (oui, de l'eau est l'un d'eux) pour une gourmandise saine à partager. 🍏 Cette préparation allie rapidité et saveur pour un dessert…
Sources d'inspiration et recettes similaires à consulter
Pour comparer des variantes et des astuces de pâtissiers amateurs, la recette pas à pas propose une version classique très visuelle. Pour une lecture gourmande et conviviale, la fiche Marmiton offre d'autres conseils de cuisson et de service.
Pour des idées de menus estivaux et des déclinaisons faciles, consulter les guides pratiques comme recettes estivales simples ou le dossier clafoutis abricot guide pour adapter la recette selon le matériel disponible. Inspiration finale : mêler simplicité et technique donne un dessert d'été mémorable.
Phrase-clé finale : en maîtrisant le choix du moule, la température et la disposition des abricots, le clafoutis abricot fondant devient un dessert d'été rapide et gourmand prêt en minutes. 🍑🍽️
Coupes fajitas au bœuf haché : un délice coloré et savoureux
À lire Un Dîner Express à la Poêle aux Saveurs Lumineuses et Beurrées
Coupes fajitas au bœuf haché : le plat convivial et ultra rapide à adopter 🍽️ Point principal : Les coupes fajitas préparées avec du bœuf haché offrent un délice coloré et savoureux qui se prépare en moins de 35 minutes,…
Améliorez vos soirées pâtes grâce à cette sauce compatible congélation
Transformez vos soirées pâtes en repas rapides et réconfortants grâce à une sauce maison compatible congélation : une recette facile, une préparation rapide (10 min de préparation, 30 min de cuisson) et des portions prêtes à sortir du congélateur pour…