// template-pack-6-fin-livre-commercial.jsx // PACK 6 · FIN DE LIVRE / QR / COLLECTION / COMMERCIAL — Allo Education Books v1.2 // 12 templates premium, utiles, imprimables, fermant toutes les collections. // Toutes les pages passent par . Aucun header/footer recréé. // Pas d'emoji. Toutes icônes via ou iconKey. Pilotables par data. /* ════════════════════════════════════════════════════════════════════════ Helpers locaux Pack 6 ════════════════════════════════════════════════════════════════════════ */ function P6QRBlock({ slug, label, sub, size = "1in", tone = "primary" }) { // Decorative QR placeholder (deterministic pattern from slug) const cells = 13; const seed = (slug || "ae").split("").reduce((a, c) => a + c.charCodeAt(0), 0); const grid = []; for (let y = 0; y < cells; y++) { for (let x = 0; x < cells; x++) { const corner = (x < 3 && y < 3) || (x > cells - 4 && y < 3) || (x < 3 && y > cells - 4); const v = ((x * 31 + y * 17 + seed) * 2654435761) >>> 0; const on = corner ? ((x + y) % 2 === 0 || (x === 0 || y === 0 || x === 2 || y === 2 || x === cells - 1 || y === cells - 1 || x === cells - 3 || y === cells - 3)) : (v % 7 < 3); grid.push({ x, y, on }); } } return (
{grid.map((c, i) => c.on && )}
{label && (
{label} {sub &&
{sub}
}
)}
); } function P6PremiumBorder({ children, tone = "primary" }) { return (
{/* corner ornaments */} {[ { t: 0, l: 0 }, { t: 0, r: 0 }, { b: 0, l: 0 }, { b: 0, r: 0 }, ].map((p, i) => (
))}
{children}
); } function P6FieldLine({ label, value, w = "100%" }) { return (
{label}
{value}
); } /* ════════════════════════════════════════════════════════════════════════ 1 · DIPLÔME / CERTIFICAT (template: "completion-certificate") ════════════════════════════════════════════════════════════════════════ */ function F1Certificate({ density, qrVisible, scoreVisible, scale = 1 }) { return (
Allo Education Books · Diplôme officiel

Diplôme de progression

Décerné par Allo Education à
{/* Name */}
Léa Martinez
a terminé avec succès le cahier
Cahier de Vacances · CM2 → 6ᵉ
en travaillant les 12 chapitres et les 6 défis.
{/* Stats row */}
{[ { n: "12", l: "Chapitres" }, { n: "186", l: "Exercices" }, { n: "94 %", l: "Réussite" }, ].map(s => (
{s.n}
{s.l}
))}
{/* Date + signatures */}
Référence diplôme · AE-CV-CM2-2026-00184
Bravo Léa, tu peux être fière de toi. Tu as travaillé chaque jour, tu as pris soin de tes corrections — c'est exactement ça, progresser.
); } /* ════════════════════════════════════════════════════════════════════════ 2 · BILAN FINAL PERSONNEL (template: "final-self-assessment") ════════════════════════════════════════════════════════════════════════ */ function F2SelfAssessment({ density, qrVisible, scoreVisible, scale = 1 }) { const competences = [ "Lire un texte long et le résumer", "Conjuguer aux 3 temps du passé", "Calcul mental jusqu'à 1000", "Résoudre un problème en 2 étapes", "Utiliser une équation simple", "Identifier un quadrilatère", "Repérer sur un repère orthonormé", "Présenter une réponse rédigée", ]; return ( {/* Score global */}
86 SUR 100
Mon score global
Excellent travail régulier
Calculé sur l'ensemble des chapitres terminés et corrigés. Le score n'est qu'un indicateur — ce qui compte, c'est ce que je sais faire seul·e.
{/* Compétences grid */}
Maîtrisé
Presque
À revoir
{competences.map((c, i) => (
{c}
{[ "var(--ae-success)", "var(--ae-yellow-dark)", "var(--ae-error)", ].map((color, j) => (
))}
))}
{/* Open zones */}
Conseil Ketty — reprends d'abord les compétences en orange : deux séances de 20 minutes suffisent souvent à les faire passer en vert.
); } /* ════════════════════════════════════════════════════════════════════════ 3 · PAGE RESSOURCES QR (template: "qr-resources-hub") ════════════════════════════════════════════════════════════════════════ */ function F3QRHub({ density, qrVisible, scoreVisible, scale = 1 }) { const cards = [ { slug: "ressources-corrections", icon: "icon-info", lab: "Corrections enrichies", sub: "Pas-à-pas commentés", tone: "primary" }, { slug: "ressources-similaires", icon: "icon-cible", lab: "Exercices similaires", sub: "Banque actualisée", tone: "orange" }, { slug: "ressources-quiz", icon: "icon-trophee", lab: "Quiz interactifs", sub: "Score & feedback", tone: "yellow" }, { slug: "ressources-ketty", icon: "icon-ketty", lab: "Aide Ketty", sub: "Coach pédagogique", tone: "green" }, ]; return ( {/* Hero QR */}
QR principal du livre
Ouvrir l'espace ressources
Scanne ce QR pour accéder à toutes les ressources du cahier en un seul endroit. URL : alloeducation.fr/qr/cahier-cm2-2026
{cards.map(c => (
QR ressource
{c.lab}
{c.sub}
))}
  • Les ressources QR complètent le cahier ; elles ne le remplacent pas.
  • Aucune création de compte n'est obligatoire pour les corrections de base.
  • Les ressources évoluent : un QR conduit toujours à la version la plus récente.
  • En cas de coupure réseau, le cahier reste 100 % utilisable en autonomie.
); } /* ════════════════════════════════════════════════════════════════════════ 4 · CONTINUER AVEC ALLO EDUCATION (template: "continue-with-alloeducation") ════════════════════════════════════════════════════════════════════════ */ function F4Continue({ density, qrVisible, scoreVisible, scale = 1 }) { const blocks = [ { icon: "icon-livre", tone: "primary", lab: "Réviser", desc: "Reprendre les notions essentielles, à mon rythme, avec mémo et fiche d'autonomie." }, { icon: "icon-cible", tone: "orange", lab: "S'entraîner", desc: "Banque d'exercices supplémentaires, niveau adaptable, corrigés guidés." }, { icon: "icon-ketty", tone: "green", lab: "Progresser avec Ketty", desc: "Mini-coaching pédagogique : objectifs, encouragements, suivi régulier." }, ]; return (
{blocks.map(b => (
{b.lab}
{b.desc}
))}
{/* QR & CTA douce */}
Prolonger l'élan, à la maison ou en classe.
Scanne le QR pour découvrir les pages d'entraînement, les fiches gratuites et les conseils Ketty. Pas d'abonnement obligatoire — la majorité des ressources reste accessible librement, selon les ressources disponibles.
Pas besoin de tout faire d'un coup. 10 minutes par jour valent mieux qu'une heure une fois par semaine. La régularité, ça change tout.
); } /* ════════════════════════════════════════════════════════════════════════ 5 · COLLECTION SHOWCASE (template: "collection-showcase") ════════════════════════════════════════════════════════════════════════ */ function MiniCover({ matiere, niveau, tone, n }) { return (
Allo Education
{matiere}
{niveau}
#{String(n).padStart(2, "0")}
); } function F5Collection({ density, qrVisible, scoreVisible, scale = 1 }) { const livres = [ { matiere: "Maths", niveau: "CM2 — 6ᵉ", tone: "primary" }, { matiere: "Français", niveau: "CM1 — CM2", tone: "orange" }, { matiere: "Cahier de Vacances", niveau: "CE2 → CM1", tone: "yellow" }, { matiere: "Anglais", niveau: "6ᵉ — 5ᵉ", tone: "green" }, { matiere: "Histoire-Géo", niveau: "5ᵉ — 4ᵉ", tone: "primary" }, { matiere: "Maths Brevet", niveau: "3ᵉ", tone: "orange" }, ]; // (compact layout: covers à 0.92 ratio + label inline + QR row mince) return (
{livres.map((l, i) => (
{l.niveau}
{l.matiere}
AE-{l.matiere.slice(0, 3).toUpperCase()}-{2026 + (i % 2)}
))}
Découvrir la collection complète · alloeducation.fr/livres
Note aux parents et enseignants. Tous les cahiers de la collection partagent la même charte, le même format et la même approche pas-à-pas — utilisables en parallèle sans risque.
); } /* ════════════════════════════════════════════════════════════════════════ 6 · BONUS / CHALLENGE FINAL (template: "final-bonus-challenge") ════════════════════════════════════════════════════════════════════════ */ function F6BonusChallenge({ density, qrVisible, scoreVisible, scale = 1 }) { const niveaux = [ { lab: "Niveau 1 · Facile", tone: "green", stars: 1, titre: "Calcule rapidement.", lignes: ["12 + 28 = …", "45 − 17 = …", "6 × 7 = …"], }, { lab: "Niveau 2 · Moyen", tone: "yellow", stars: 2, titre: "Résous le problème.", lignes: ["3 paquets de 12 stylos coûtent 18 €.", "Combien coûte un seul paquet ?", "Quel est le prix d'un stylo ?"], }, { lab: "Niveau 3 · Défi", tone: "orange", stars: 3, titre: "Devine la suite logique.", lignes: ["2 — 4 — 8 — 16 — …", "1 — 1 — 2 — 3 — 5 — …", "Justifie ton raisonnement en une phrase."], }, ]; return (
{niveaux.map((n, i) => (
{/* Stars column */}
{Array.from({ length: 3 }).map((_, j) => ( ))}
{/* Body */}
{n.lab}
{n.titre}
{n.lignes.map((l, k) => (
{l}
))}
{/* Score */}
Score
__/3
))}
Le défi 3 est volontairement difficile. Si tu bloques, c'est normal : relis les indices, pose les calculs, et fais une pause si besoin.
); } /* ════════════════════════════════════════════════════════════════════════ 7 · NOTES / BROUILLON PREMIUM (template: "notes-draft-page") ════════════════════════════════════════════════════════════════════════ */ function F7NotesDraft({ density, qrVisible, scoreVisible, scale = 1 }) { return ( {/* Title bar */}
{/* Big draft zone */}
{/* Top-right tag */}
Brouillon libre
Le brouillon n'est jamais corrigé — il sert d'abord à moi. Allo Education Books · Page brouillon premium
); } /* ════════════════════════════════════════════════════════════════════════ 8 · MES ERREURS À REVOIR (template: "mistakes-to-review") ════════════════════════════════════════════════════════════════════════ */ function F8Mistakes({ density, qrVisible, scoreVisible, scale = 1 }) { const rows = [ { page: "p. 24", notion: "Conjugaison · imparfait", err: "j'écrivais → j'écrivai", corr: "imparfait : -ais", date: "" }, { page: "p. 36", notion: "Calcul · retenue", err: "47+18=55", corr: "8+7=15, retenue 1 → 65", date: "" }, { page: "p. 41", notion: "Géométrie · périmètre", err: "P = côté × 2", corr: "P = côté × 4 (carré)", date: "" }, { page: "p. 58", notion: "Lecture · sens", err: "qu'est-ce qu'il dit ?", corr: "Il dit que…", date: "" }, { page: "p. 67", notion: "Vocabulaire · synonymes", err: "rapide ≠ vite", corr: "rapide = vite", date: "" }, ]; return (
  1. 1Je note l'erreur exacte que j'ai faite, sans la cacher.
  2. 2J'écris la correction en vert, avec la règle.
  3. 3Je me fixe une date pour refaire un exercice du même type.
PageNotionMon erreur CorrectionÀ refaire leFait
{rows.map((r, i) => (
{r.page} {r.notion} {r.err} {r.corr} __/__
))} {/* Empty rows for student to add */} {Array.from({ length: 4 }).map((_, i) => (
))}
Une erreur ramassée = un point de progrès. Mieux vaut 5 erreurs notées et refaites que 50 erreurs ignorées. ); } /* ════════════════════════════════════════════════════════════════════════ 9 · PLANNING DE RÉVISION (template: "revision-planner") ════════════════════════════════════════════════════════════════════════ */ function F9RevisionPlanner({ density, qrVisible, scoreVisible, scale = 1 }) { const jours = ["Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi", "Dimanche"]; const objectifs = [ { jour: "Lundi", obj: "Conjugaison · imparfait", duree: "20 min", pages: "p. 24-25" }, { jour: "Mardi", obj: "Calcul mental · tables", duree: "15 min", pages: "p. 30" }, { jour: "Mercredi", obj: "Lecture · texte court", duree: "30 min", pages: "p. 42-43" }, { jour: "Jeudi", obj: "Géométrie · quadrilatères", duree: "20 min", pages: "p. 51" }, { jour: "Vendredi", obj: "Problèmes · 2 étapes", duree: "25 min", pages: "p. 60-61" }, { jour: "Samedi", obj: "Carnet d'erreurs · refaire", duree: "30 min", pages: "p. 80" }, { jour: "Dimanche", obj: "Repos · ou défi facultatif", duree: "—", pages: "Bonus" }, ]; return (
JourObjectifDurée PagesFait
{objectifs.map((o, i) => (
{o.jour} {o.obj} {o.duree} {o.pages}
))}
  • Je mets mon planning visible près de mon bureau.
  • Je commence par l'objectif le plus court du jour.
  • Je coche dès que c'est fait — c'est très motivant.
  • Je me félicite à la fin de la semaine, peu importe le score.
Ce planning est à toi. Si tu ne tiens pas un jour, ce n'est pas grave — tu reprends le lendemain, sans culpabilité.
); } /* ════════════════════════════════════════════════════════════════════════ 10 · MENTIONS / LÉGAL / ÉDITION (template: "legal-edition-page") ════════════════════════════════════════════════════════════════════════ */ function F10Legal({ density, qrVisible, scoreVisible, scale = 1 }) { return (
Éditeur
Éditions Allo Education
Direction
Direction pédagogique Allo Education
Conception
Équipe Auteurs & Illustration · Allo Education
ISBN
978-2-XXXXXX-XX-X
Dépôt légal
Septembre 2026
Imprimé par
Amazon KDP · Print on demand
Format
8.5 × 11 in · 300 dpi · CMJN
Charte
Allo Education Books · v1.2 verrouillée
Release
aeb-2026.09.r1
Référence cahier
AE-CV-CM2-2026
Mise à jour
Les ressources QR sont mises à jour automatiquement.
Les ressources accessibles par QR Code complètent ce cahier. Elles sont fournies gratuitement, selon disponibilité. Allo Education se réserve le droit de les modifier ou de les retirer sans préavis. L'accès aux ressources peut nécessiter une connexion Internet ; le cahier reste parfaitement utilisable hors-ligne.
  • Mascotte Ketty © Allo Education — tous droits réservés.
  • Pictogrammes : icon set propriétaire Allo Education v1.2.
  • Photographies : banque interne ou domaine public.
  • Polices : Fredoka, Nunito Sans, JetBrains Mono · licences SIL/OFL.
© 2026 Allo Education. Tous droits réservés. Toute reproduction, même partielle, par quelque procédé que ce soit, est interdite sans autorisation écrite préalable de l'éditeur. La reproduction des fiches gratuites à usage personnel ou en classe est expressément autorisée.
Marque déposée · Allo Education · contact éditorial : edition@alloeducation.fr
); } /* ════════════════════════════════════════════════════════════════════════ 11 · COUVERTURE INTÉRIEURE COLLECTION (template: "inner-cover-collection") ════════════════════════════════════════════════════════════════════════ */ function F11InnerCover({ density, qrVisible, scoreVisible, scale = 1 }) { return (
{/* Decorative shapes */}
Allo Education Books

Cahier de Vacances

de CM2 vers la 6ᵉ
{/* Tags */}
{["Maths", "Français", "Anglais", "Méthode", "Jeux"].map(t => ( {t} ))}
15 minutes par jour, pas plus. Tout l'été pour réviser sans pression et arriver en 6ᵉ avec confiance.
{/* Owner block */}
Ce cahier appartient à
 
{[ { lab: "12 chapitres", desc: "Maths, français, anglais, méthode, jeux." }, { lab: "Pas-à-pas", desc: "Méthode claire, exemples guidés, corrigés." }, { lab: "Avec Ketty", desc: "Coach pédagogique sur chaque chapitre." }, ].map((b, i) => (
{b.lab}
{b.desc}
))}
); } /* ════════════════════════════════════════════════════════════════════════ 12 · TRANSITION DE CHAPITRE (template: "chapter-transition-page") ════════════════════════════════════════════════════════════════════════ */ function F12ChapterTransition({ density, qrVisible, scoreVisible, scale = 1 }) { return (
Chapitre 4
Ouverture du chapitre

Les fractions, simplement.

Comprendre, comparer, additionner. Tout commence par une part de pizza et une bonne paire de yeux.
{/* Meta row */}
{[ { icon: "icon-horloge", lab: "Durée", val: "5 séances · 60 min" }, { icon: "icon-cible", lab: "Niveau", val: "6ᵉ · accessible" }, { icon: "icon-trophee", lab: "Difficulté", val: "★★ sur 3" }, ].map((m, i) => (
{m.lab} {m.val}
))}
  1. 1Comprendre une fraction comme partage.
  2. 2Comparer deux fractions simples.
  3. 3Additionner des fractions de même dénominateur.
  • Représenter une situation par une fraction.
  • Lire et écrire une fraction en chiffres et en mots.
  • Justifier une comparaison à l'écrit.
  • Articuler dessin + calcul.
Ce chapitre démarre tout doucement. On commence par regarder, puis on pose les calculs. À la fin, tu sauras dire pourquoi 3/4 est plus grand que 2/4.
); } /* ──────────────────────────────────────────────────────────────────────── Export ──────────────────────────────────────────────────────────────────────── */ Object.assign(window, { F1Certificate, F2SelfAssessment, F3QRHub, F4Continue, F5Collection, F6BonusChallenge, F7NotesDraft, F8Mistakes, F9RevisionPlanner, F10Legal, F11InnerCover, F12ChapterTransition, });