Journal des changements de Drake.css framework. L'historique du projet amont est archivé
dans docs/fork/CHANGELOG-uikit-amont.md.
- Pilote de synchronisation amont à blanc (décision D-023) : la procédure
docs/fork/UPSTREAM.mdexercée sur le delta historique v3.25.16 → v3.25.20 avec vérité terrain — 44 hunks substantiels vérifiés, 32 retrouvés preuve à l'appui, 12 sans objet par décision, zéro absent ; outillagebuild/fork/sync-scout.jset rapport en section 11 d'UPSTREAM.md. - Trio de fiabilité de distribution (décision D-024) : gate consommateur en CI (le
tarball est installé dans un projet vierge et fumé à chaque push), rituel de
release outillé
pnpm release(préflight, tag signé, release GitHub, vérification HTTP des chemins CDN), budgets de taille épinglés des artefacts principaux danspnpm verify(relèvement = décision consignée, jamais silencieux). - Campagne d'accessibilité (décision D-026) : inventaire axe-core des 88 pages
(3 926 violations, 15 familles) résorbé sur quatre axes arbitrés — rôles texte de
la palette recalibrés AA (surfaces d'accent intactes, consignées), sémantique du
catalogue (
<main>, landmarks, labels) avec recapture décidée, garde de focalisabilité du runtime d'icônes et accès clavier des zones défilantes, soulignement des liens en bloc de texte ; gate permanentpnpm audit-a11y(axe-core épinglé, registre d'exceptions, zéro violation non consignée en CI). - Sortie ESM (décision D-025, amendant D-017) : bundles
drake.esm.js,drake-core.esm.jset composants.esm.js, arborescence de modules préservésdist/esm/(tree-shaking réel), carteexportsavec passe-plat./dist/*,sideEffectsdéclaré, fumée ESM au gate consommateur, budgets et test de types étendus — l'UMD reste livré à l'identique.
- Cibles tactiles >= 24 px CSS (décision D-021) : les onze familles de composants du
registre d'exceptions et les deux pages fixtures reçoivent une zone de saisie
conforme WCAG 2.5.8 — huit familles à identité visuelle stricte (padding compensé,
background-clip, anneaux convertis enbox-shadow), trois à croissance de boîte mineure sans peinture nouvelle. Le registre d'exceptions est vidé ;pnpm audit-heritagedevient le gate de non-régression tactile (zéro cible). - Variante de fontes en fichiers (décision D-022, amendant D-006/D-009) : quatre WOFF2
Inter subsettés latin/latin-ext à axes variables (103-145 Kio) et feuille
drake-inter-files.cssàunicode-range(2,9 Ko gzip contre 731 Ko pour l'option mono-fichier conservée) — chargement recommandé ; empreintes épinglées, génération déterministe prouvée. - Feuilles d'icônes réduites : option
--subset/--subset-outputdu générateur Tabler (3 icônes = 3,8 Ko contre 3,9 Mo de catalogue opt-in) ; coût de parse et limite monochrome documentés. - Garde d'intégrité de distribution (G8) : tout fichier empaqueté par npm doit être suivi par git — un artefact généré non versionné est inlivrable par les canaux git.
- Section README « Comment c'est testé » cartographiant la chaîne de preuve CI.
- Le dépôt est public (décision D-019) et la distribution est GitHub-first (décision
D-020) : release avec tarball npm attaché, installation
github:…#tag, CDN jsDelivr ; le registre npm reste optionnel. CIverifyrequise par la protection de branche.
- Trente-deux artefacts empaquetés n'étaient pas versionnés (
drake-inter-files.css,drake-core*.css, bundles de composants) : présents dans le tarball de release mais absents des installs git et du CDN. Tous suivis désormais, couverts par G9 et par la nouvelle garde G8.
- Le fork adopte l'identité Drake.css framework (décision D-012) : API globale
Drake, préfixe universeldrk-(classes, attributs, propriétés personnalisées), icônes.drk-ti, artefactsdist/css/drake*.cssetdist/js/drake*.js, paquet privédrake.cssen version0.1.0. - Le contrat de compatibilité devient la parité comportementale C0–C3 avec la référence
interne pré-renommage (D-012) ; le registre des surfaces héritées est documenté dans
FORK.md. - Les styles ont intégralement quitté Less/SCSS pour Panda.css (décision D-013, port
achevé) :
panda.config.ts+src/styles/(tokens, fragmentsglobalCssordonnés) sont la source canonique, la parité avec la référence Less est prouvée par diff CSS normalisé sur les quatre artefacts (tests/fixtures/panda-parity-proof.json) etsrc/less/,src/scss/ainsi que les mixins sont supprimés. - Elm demeure hors du cœur après réexamen (décision D-014).
- Gate G7 outillé (
pnpm check-compat) : matrice de compatibilité C0-C3 contre la référence pré-renommage — 176 snapshots structurels du catalogue (LTR/RTL), scénarios d'interaction des grappes prioritaires, boucle API programmatique avec destruction vérifiée ; fixtures soustests/fixtures/compat/. - Les fragments de
src/styles/consomment les tokens (palette,breakpoints,fontFamilies) à la génération, à sortie CSS strictement identique (preuve par empreintes et diff de parité G15). - Phase 1 close : attentes sans runtime par composant (
docs/fork/NO_RUNTIME.md+ fixtures machine vérifiées par G7) et inventaire de la dette mobile-first/SEO héritée (pnpm audit-heritage, 88 pages à 320 px). - Theming par propriétés personnalisées (décision D-016, acceptée puis implémentée) :
:rootpublie les 12 tokens sémantiques en--drk-*, la cascade consommevar(--drk-…, <valeur héritée>)— surcharge sans reconstruction, chemin mode sombre documenté dansFORK.md; équivalence calculée prouvée par les gates navigateur. - Cap de stabilisation 0.1.0 (décision D-017) : versionnage SemVer avec tags annotés
signés
v0.1.0-rc.N, remoteorigindécidé (dépôt GitHub privé, création et push au feu vert explicite),private: trueconservé jusqu'à une décision de publication npm, pas de sortie ESM en 0.1.0. - Déclarations TypeScript consommateur :
dist/types/émis et committé (entréetypesdepackage.json, global UMDwindow.Drakedéclaré), test de consommation strict danspnpm typecheck(G3). - Audit d'identité D-012 automatisé dans G10 : zéro occurrence du préfixe hérité et des noms amont hors zones autorisées (allowlist committée et justifiée, bannières légales décomptées, entrées périmées refusées).
- Scénarios C2 de cycle de vie (reconnexion DOM, montage/destruction par attribut,
$resetsur mutation de valeur, composant custom et pluginuse()), portant la matrice à 156 assertions. - Dette héritée du catalogue résorbée (D-017) : zéro débordement horizontal à 320 px sur
les 88 pages, dimensions réservées et alternatives sur toutes les images, hiérarchie
de titres séquentielle, vidéos de démonstration servies localement
(
tests/media/drake-demo.webm) — le catalogue n'exige plus le réseau. Les cibles < 24 px inhérentes aux composants hérités sont intégralement consignées au registre d'exceptions (docs/fork/HERITAGE_EXCEPTIONS.md, contrôle automatique : zéro cible non consignée) ; snapshots C0/C1 et attentes sans-runtime recapturés sur cette divergence décidée, scénarios C2 et boucle C3 verts sans recapture. - Notes de migration
docs/fork/MIGRATION.md: table normative de renommage des préfixes et de l'API globale, correspondance des artefacts, migration des icônes et du theming.
- Tailles :
drake.min.css305 Kio,drake-core.min.css290 Kio,drake.min.js166 Kio,drake-inter.css969 Kio (fontes embarquées),drake-tabler-icons.css3,8 Mio (catalogue opt-in) ; empreintes dansdist/fork-manifest.json. - Laboratoire (fixture G13, Chrome headless) : LCP 116 ms mobile / 108 ms bureau, INP 16 ms, CLS 0, TBT 0 ; reflow 320 px sans défilement horizontal.
- Fuites : boucle C3 — 58 composants montés puis détruits sans listener, observer ni nœud résiduel ; scénarios de reconnexion sans résidu.
- Initialisation (médiane de 3 runs, catalogue local) :
index.html106 instances montées,domInteractive71 ms,load159 ms ;form.html36 instances, 40/138 ms ;slider.html39 instances, 43/145 ms. - Reconstruction en environnement propre : clone frais +
pnpm install --frozen-lockfile+pnpm verifyverts, zéro diff des artefacts suivis après reconstruction.
- Release candidate : tag annoté signé
v0.1.0-rc.1(2026-07-21), distinct des tags amont (D-017). - Acceptation finale du mainteneur le 2026-07-21, gates re-prouvés verts sur checkout
propre : tag annoté signé
v0.1.0. - Remote
origin: dépôt GitHubTest-bot-cell/Drake-css-framework(releasev0.1.0avec tarball attaché).
- Runtime navigateur intégralement TypeScript strict, sans source JavaScript frontend.
- Tabler Icons 3.45.0 Outline en masques CSS (5 112 icônes), catalogue opt-in.
- Inter 4.1 variable roman et italic embarquée en CSS, zéro fichier de fonte autonome.
- Contrat HTML-first, mobile-first 320 px et SEO technique avec gates G0–G14.