{bag.title}
{bag.caption}-
{bag.items.map(it =>
// SkillsKit — "Inventaire de l'aventurier" / explorer's kit-bag layout // Three columns ("trousses") on cream paper, each item is a row with: glyph, label, // a hand-drawn measuring tape gauge (years/level), and a small annotation. // More journal-like, more aventure, less "boîte d'icônes". const KIT = { intro: { title: "Inventaire", subtitle: "État du sac à dos · vérifié le 30 avril 2026", note: "Tout ce que j'emporte sur le terrain — outils, langues, méthodes — avec leur usure et leur niveau de maîtrise.", stats: [ { k: "OUTILS", v: "16" }, { k: "ANNÉES", v: "4" }, ], }, bags: [ { tag: "TROUSSE A", title: "Langages", caption: "Le pas de base", items: [ { g: ">", n: "HTML", note: "structure et sémantique" }, { g: "✦", n: "CSS", note: "design, animations, responsive" }, { g: "{}", n: "JavaScript", note: "ES6+, vanilla et modules" }, { g: "🐘", n: "PHP", note: "POO, web back-end" }, { g: "#", n: "C#", note: "Blazor et apps .NET" }, { g: "{}", n: "Java", note: "POO, projets pédagogiques" }, ], }, { tag: "TROUSSE B", title: "Frameworks & CMS", caption: "Tente, feu, base de données", items: [ { g: "⚛", n: "React", note: "SPA, hooks, JSX" }, { g: "◇", n: "Symfony", note: "MVC, Doctrine, services" }, { g: "▲", n: "Laravel", note: "Eloquent, Blade, API" }, { g: "▶", n: "Express.js", note: "API REST sur Node" }, { g: "◈", n: "Blazor", note: "C# côté client/serveur" }, { g: "≡", n: "WordPress", note: "CMS, thèmes, plugins" }, ], }, { tag: "TROUSSE C", title: "BDD & Gestion", caption: "Données et méthode", items: [ { g: "⛁", n: "SQL", note: "requêtes et modélisation" }, { g: "⛂", n: "PostgreSQL", note: "relationnel avancé" }, { g: "⛃", n: "SQL Server (SSMS)", note: "requêtes et procédures" }, { g: "⎇", n: "Git", note: "branches et workflow" }, { g: "↧", n: "GitHub", note: "collaboration et CI/CD" }, { g: "↻", n: "Méthode Agile", note: "Scrum-ban, kanban" }, ], }, ], langs: [ { n: "Français", lvl: 5, note: "langue maternelle" }, { n: "Anglais", lvl: 4, note: "B2 — lecture, écriture, échanges techniques" }, { n: "Espagnol", lvl: 2, note: "A2 — bases" }, ], }; function Gauge({ value }) { // 5-segment hand-drawn measuring tape return (
L'inventaire complet du sac : trois trousses — langages, frameworks, bases de données & méthode. Pour chaque outil, j'indique mon niveau de maîtrise et une courte note d'usage.