Verser un pattern

La bibliothèque n'a pas de base de données et pas de formulaire : le dépôt EST le formulaire. Un pattern, ce sont deux fichiers dans patterns/ — un fragment HTML autonome et son contrat JSON — plus, si sa charte est nouvelle, un jeu de jetons dans systems/. Vous ouvrez une pull request, elle est relue, elle est fusionnée. Licence MIT.

  1. Forkez et clonez. gh repo fork lbachelotcapitalb/visual-lab --clone
  2. Écrivez le fragment dans patterns/<famille>-<NN>-<slug>.html. Autonome : son CSS voyage dans un <style> à l'intérieur du fichier, ses couleurs passent par des variables --vl-*, jamais par des valeurs en dur. Aucun script, aucune police distante, aucune image.
  3. Écrivez le contrat dans le .json du même nom (gabarit ci-dessous). avoid_when vaut when_to_use : un pattern qu'on ne sait pas refuser ne sert à rien.
  4. Régénérez et vérifiez. node bin/index.mjs && node bin/check.mjs <id> — l'index se reconstruit, les benchmarks se rejouent dans un vrai navigateur.
  5. Ouvrez la pull request. Une pull request = un pattern (ou une charte + ses patterns). Décrivez ce que la composition résout, pas à quoi elle ressemble.

Forker le dépôt ↗ Ouvrir une pull request ↗ Proposer sans coder (issue) ↗

La nomenclature

Le nom de fichier porte la famille : card-12-inverted-kpi-row est de famille card, et l'index le vérifie. Le vocabulaire est fermé — huit familles, pas neuf :

cardchartdiagramlayoutlistshapetagtitle

diagramchart : un chart porte des données (une valeur mesurée décide de la géométrie), un diagram porte une structure (couches, flux, appartenance) où rien n'est proportionnel à quoi que ce soit.

Les médias

Un pattern déclare où il est censé servir — c'est une intention, la faisabilité se prouve par bin/emit.mjs --target <média>, qui refuse ce que la cible ne sait pas rendre :

slidewebemailprintsocial

Ce qui fait refuser une contribution

une couleur en dur au lieu d'un --vl-*le fragment ne se thème plus
une police ou une image distantezéro requête sortante est un invariant
du JavaScript dans le fragmentun pattern est une composition, pas un composant
un avoid_when vide ou décoratifsans lui le catalogue ne route plus
un binaire (PNG, capture)une image est une copie morte, elle périme en silence