.qcmf-wrap { font-family: system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif; max-width: 800px; margin: 24px auto; padding: 16px; } .qcmf-card { background: #fff; border-radius: 16px; box-shadow: 0 10px 30px rgba(0,0,0,.08); padding: 24px; } .qcmf-header { display:flex; justify-content:space-between; align-items:center; margin-bottom: 12px; gap:12px; flex-wrap: wrap; } .qcmf-title { font-size: clamp(18px, 2.4vw, 22px); font-weight: 700; margin:0; } .qcmf-badge { font-size:12px; padding:6px 10px; border-radius:999px; background:#f2f4f7; } .qcmf-progress { height:10px; background:#eef2f7; border-radius:999px; overflow:hidden; margin:12px 0 20px; } .qcmf-progress > div { height:100%; width:0; background: linear-gradient(90deg,#4f46e5,#22c55e); transition: width .35s ease; } .qcmf-question { font-size: clamp(18px, 2.6vw, 22px); line-height: 1.4; margin: 10px 0 14px; } .qcmf-options { display:grid; gap:12px; grid-template-columns: 1fr; } .qcmf-btn { border:1px solid #e5e7eb; background:#fff; border-radius: 12px; padding: 12px 14px; text-align:left; cursor:pointer; font-size:16px; transition: transform .06s ease, border-color .2s, background .2s; color:#111; } .qcmf-btn:hover { transform: translateY(-1px); border-color:#c7d2fe; background:#f8fafc; } .qcmf-btn[disabled] { opacity:.8; cursor:not-allowed; } .qcmf-btn.correct { border-color:#22c55e; background:#ecfdf5; } .qcmf-btn.wrong { border-color:#ef4444; background:#fef2f2; } .qcmf-feedback { margin-top: 12px; padding: 12px 14px; border-left: 4px solid #e5e7eb; border-radius:10px; background:#f8fafc; font-size:14px; } .qcmf-feedback.good { border-color:#22c55e; background:#ecfdf5; } .qcmf-feedback.bad { border-color:#ef4444; background:#fef2f2; } .qcmf-cta { border:none; border-radius:10px; padding:10px 14px; font-weight:600; cursor:pointer; margin-top:16px; } .qcmf-cta.primary { background:#4f46e5; color:#fff; } .qcmf-note { font-size: clamp(20px, 3vw, 28px); font-weight:800; margin-top:12px; } @media (min-width: 640px) { .qcmf-options { grid-template-columns: 1fr 1fr; } } (function(){ const QUESTIONS = [ { question: « Je (finir) mon devoir. », options: [« Je finissais », « Je finissait », « Je finissions », « Je finis »], correctIndex: 0, explications: [« Correct : terminaison -ais → je finissais. », « Erreur : -ait est pour il/elle. », « Erreur : terminaison de nous. », « Erreur : présent. »]}, { question: « Tu (choisir) un livre. », options: [« Tu choisissais », « Tu choisissait », « Tu choisissions », « Tu choisi »], correctIndex: 0, explications: [« Correct : tu choisissais. », « Erreur : -ait pour 3e pers. sing. », « Erreur : terminaison ‘nous’. », « Erreur : participe passé. »]}, { question: « Il (réussir) son examen. », options: [« Il réussissais », « Il réussissait », « Il réussissaient », « Il réussit »], correctIndex: 1, explications: [« Erreur : -ais pour je/tu. », « Correct : il réussissait. », « Erreur : -aient pluriel. », « Erreur : passé simple. »]}, { question: « Elle (grandir) vite. », options: [« Elle grandissais », « Elle grandissait », « Elle grandissaient », « Elle grandit »], correctIndex: 1, explications: [« Erreur : terminaison -ais pour je/tu. », « Correct : elle grandissait. », « Erreur : pluriel. », « Erreur : passé simple. »]}, { question: « Nous (rougir) de honte. », options: [« Nous rougissions », « Nous rougissais », « Nous rougissait », « Nous rougis »], correctIndex: 0, explications: [« Correct : nous rougissions. », « Erreur : -ais pour je/tu. », « Erreur : -ait pour il/elle. », « Erreur : présent. »]}, { question: « Vous (applaudir) à la fin. », options: [« Vous applaudissiez », « Vous applaudissait », « Vous applaudissaient », « Vous applaudis »], correctIndex: 0, explications: [« Correct : vous applaudissiez. », « Erreur : singulier. », « Erreur : pluriel ‘ils’. », « Erreur : présent. »]}, { question: « Ils (finir) tôt. », options: [« Ils finissait », « Ils finissaient », « Ils finissais », « Ils finis »], correctIndex: 1, explications: [« Erreur : singulier. », « Correct : ils finissaient. », « Erreur : terminaison je/tu. », « Erreur : présent. »]}, { question: « Elles (choisir) la bonne réponse. », options: [« Elles choisissaient », « Elles choisissait », « Elles choisissais », « Elles choisit »], correctIndex: 0, explications: [« Correct : elles choisissaient. », « Erreur : singulier. », « Erreur : terminaison je/tu. », « Erreur : passé simple. »]}, { question: « Je (réussir) facilement. », options: [« Je réussissais », « Je réussissait », « Je réussissaient », « Je réussi »], correctIndex: 0, explications: [« Correct : je réussissais. », « Erreur : terminaison il/elle. », « Erreur : pluriel. », « Erreur : participe passé. »]}, { question: « Tu (grandir) rapidement. », options: [« Tu grandissais », « Tu grandissait », « Tu grandissaient », « Tu grandi »], correctIndex: 0, explications: [« Correct : tu grandissais. », « Erreur : terminaison il/elle. », « Erreur : pluriel. », « Erreur : participe passé. »]}, { question: « Il (rougir) en classe. », options: [« Il rougissais », « Il rougissait », « Il rougissaient », « Il rougit »], correctIndex: 1, explications: [« Erreur : terminaison je/tu. », « Correct : il rougissait. », « Erreur : pluriel. », « Erreur : passé simple. »]}, { question: « Nous (finir) notre repas. », options: [« Nous finissions », « Nous finissait », « Nous finissais », « Nous finis »], correctIndex: 0, explications: [« Correct : nous finissions. », « Erreur : terminaison singulier. », « Erreur : terminaison tu. », « Erreur : présent. »]}, { question: « Vous (choisir) un film. », options: [« Vous choisissiez », « Vous choisissait », « Vous choisissais », « Vous choisi »], correctIndex: 0, explications: [« Correct : vous choisissiez. », « Erreur : singulier. », « Erreur : terminaison tu. », « Erreur : participe passé. »]}, { question: « Ils (réussir) leurs exercices. », options: [« Ils réussissait », « Ils réussissais », « Ils réussissaient », « Ils réussit »], correctIndex: 2, explications: [« Erreur : singulier. », « Erreur : terminaison je/tu. », « Correct : ils réussissaient. », « Erreur : passé simple. »]}, { question: « Elles (grandir) ensemble. », options: [« Elles grandissait », « Elles grandissais », « Elles grandissaient », « Elles grandit »], correctIndex: 2, explications: [« Erreur : singulier. », « Erreur : je/tu. », « Correct : elles grandissaient. », « Erreur : passé simple. »]} ]; const elRoot=document.getElementById(« qcm-francais-imparfait2″); let index=0, correct=0; const h=(t,a={},…c)=>{const e=document.createElement(t);for(const[k,v]of Object.entries(a||{})){if(k=== »class »)e.className=v;else if(k=== »html »)e.innerHTML=v;else e.setAttribute(k,v)}c.forEach(x=>{if(x!=null)e.appendChild(typeof x=== »string »?document.createTextNode(x):x)});return e}; function render(){ elRoot.innerHTML= » »; const q=QUESTIONS[index]; const header=h(« div »,{class: »qcmf-header »}, h(« h2″,{class: »qcmf-title »}, »Imparfait – 2ème groupe (Français 4ème) »), h(« span »,{class: »qcmf-badge »},`Question ${index+1}/${QUESTIONS.length}`) ); const progress=h(« div »,{class: »qcmf-progress »},h(« div »,{style:`width:${(index/QUESTIONS.length)*100}%`})); const opts=h(« div »,{class: »qcmf-options »}); q.options.forEach((opt,i)=>{ const btn=h(« button »,{class: »qcmf-btn »},opt); btn.onclick=()=>{ […opts.children].forEach(b=>b.disabled=true); if(i===q.correctIndex){correct++;btn.classList.add(« correct »);} else btn.classList.add(« wrong »); const fb=h(« div »,{class: »qcmf-feedback « +(i===q.correctIndex? »good »: »bad »)},q.explications[i]); opts.appendChild(fb); const next=h(« button »,{class: »qcmf-cta primary »}, »Suivant »); next.onclick=()=>{if(index{index=0;correct=0;render();} )); } render(); })();