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(//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 Un petit-déjeuner façon diner prêt en seulement 25 minutes
Plan de Repas Hebdomadaire du 17 août 2026
Simplifiez la semaine : adoptez ce plan de repas hebdomadaire du 17 août 2026 pour gagner du temps, optimiser la nutrition et assurer des repas équilibrés chaque jour. Suivre ce planning permet de réduire le stress du soir et de…
Préparez en 3 minutes ce mélange d’épices incontournable de votre placard
Préparez en 3 minutes un mélange d’épices qui transformera votre placard de cuisine : combinez des épices communes et obtenez un assaisonnement polyvalent, prêt en 3 minutes et utilisable sur viandes, poissons, légumes et riz. Cette préparation rapide offre des…
Les Légumes Grillés que je Prépare Tout l’Été
Obtenez des légumes grillés pleins de saveurs en moins de 30 minutes : suivez des étapes claires pour réussir poivrons, courgettes, aubergines et maïs au barbecue ou à l’Airfryer, avec des astuces de cuisson, des marinades simples et des idées…
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 Steaks de Chou Rôtis : Croquants et Fondants en Seulement 10 Minutes de Préparation !
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.
Un petit-déjeuner façon diner prêt en seulement 25 minutes
Préparez un petit-déjeuner façon diner en seulement 25 minutes : une omelette Denver gourmande, une cuisson organisée et des accompagnements express pour transformer le matin sans stress. Suivre ces étapes garantit un plat savoureux, rapide et facile à reproduire tous…
Steaks de Chou Rôtis : Croquants et Fondants en Seulement 10 Minutes de Préparation !
À lire Un Dîner Express à la Poêle aux Saveurs Lumineuses et Beurrées
Préparez des steaks de chou parfaitement croquants à l’extérieur et fondants à l’intérieur en seulement 10 minutes de préparation — un vrai coup de cœur pour une recette facile et une préparation rapide 🕒🔥. Steaks de chou rôtis : méthode…
Le Secret Pour Un Poulet Sucré-Salé Inoubliable
Le secret d'un poulet sucré-salé inoubliable commence par une marinade pensée pour pénétrer la chair et une finition qui crée un caramel brillant. Ce guide fournit des étapes claires pour mariner, cuire, épaissir la sauce et obtenir un glaçage gourmand…
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. 🍑🍽️
Le secret d’un sandwich au poulet parfait : cette marinade incontournable
À lire Tomates rôties au four prêtes en seulement 15 minutes
Le secret du sandwich au poulet parfait tient à une marinade équilibrée qui garantit goût, tendreté et cuisson uniforme 🍯🔥. Suivre cette méthode permet d'obtenir un poulet mariné juteux en 30 minutes à 4 heures, prêt à transformer n'importe quel…
Plan Repas Hebdomadaire du 10 au 16 août 2026
Plan repas hebdomadaire prêt à l'emploi pour la semaine du 10 au 16 août : suivez ce programme repas pour gagner du temps, réduire le stress des repas et améliorer votre alimentation dès aujourd'hui. Ce plan fournit un menu jour…