
Prélever une couleur à l’écran prend deux secondes. Savoir quoi en faire prend beaucoup plus longtemps. Caméléonardo fait les deux : il lit la couleur sous votre curseur, et il vous donne ensuite de quoi l’accorder, la décliner, la vérifier et la ranger. C’est une pipette, une loupe et un atelier de couleurs pour Windows, dans un seul exécutable qui ne s’installe pas.
Il y a deux sortes d’outils de couleur. Les pipettes, qui lisent un pixel et s’arrêtent là. Et les ateliers, qui composent des accords mais ne savent pas aller chercher la couleur d’un bouton dans une capture d’écran. Caméléonardo fait les deux bouts du travail, et c’est tout son intérêt : la couleur que vous venez de prélever devient immédiatement le point de départ d’une palette.

Une loupe qui ne vous ment pas
La loupe agrandit la zone sous votre curseur sans jamais lisser l’image. Les pixels restent des carrés nets. C’est un détail technique qui change tout en pratique : un agrandissement lissé fabrique des couleurs intermédiaires qui n’existent nulle part à l’écran, et vous prélevez alors une couleur inventée.

La loupe au grossissement × 6. La grille et le réticule disent exactement quel pixel sera lu.
Une fois la couleur figée, la loupe reste navigable. Vous vous déplacez d’un pixel à la fois aux flèches du clavier, de dix avec la touche Maj. Cela vous évite de refaire tout le geste parce que vous avez visé un cheveu trop à droite.
Trois modes de prélèvement, selon ce que vous faites. Le clic maintenu est le plus sûr. Le survol permanent fait tourner la loupe en continu, ce qui est commode pour balayer une image. Et le raccourci clavier seul, à qui veut prélever la couleur d’un menu déroulant, qui se refermerait au moindre clic.
Le cas de la transparence
Voici un problème que la plupart des pipettes ignorent. Un pixel semi-transparent affiché à l’écran n’est plus transparent : le système a déjà fait le mélange, et la pipette ne lit que le résultat. Impossible, avec un seul point, de distinguer un rose opaque d’un rouge à demi transparent posé sur du blanc.
Caméléonardo prélève donc trois points : le premier plan, le fond, puis la zone mélangée. Il en déduit la transparence réelle et vous donne le code avec son alpha. L’ordre des trois prélèvements n’a aucune importance, le calcul part dès que les trois cases sont vertes.
Quatorze notations, et les pièges qui vont avec
Le code de la couleur courante s’écrit dans quatorze notations : le code HTML bien sûr, mais aussi la constante Delphi, la constante Visual Basic, le COLORREF de l’API Windows, l’entier PowerBuilder, les six chiffres sans dièse qu’attend le champ de Photoshop, la couleur Android avec son alpha en premier, et les notations CSS.
Ce n’est pas qu’une liste de conversions. Trois de ces notations écrivent les composantes en ordre bleu, vert, rouge. Écrire les trois octets dans l’ordre habituel donne une couleur juste retournée : une erreur qui ne se voit pas sur un gris et qui saute aux yeux sur un orange. Chaque notation porte sa phrase d’explication, et le logiciel applique la bonne règle sans que vous ayez à y penser.
Le format choisi gouverne ensuite tout le logiciel. Vous travaillez sur un projet Android, vous choisissez la notation une fois, et chaque clic droit sur n’importe quel échantillon vous donne la bonne écriture.
Une roue chromatique à deux modèles
C’est la pièce maîtresse. Une roue où l’angle donne la teinte, la distance au centre la saturation, et le blanc au milieu.

Sa particularité : elle existe en deux modèles. La roue des peintres, rouge, jaune, bleu, où l’opposé du rouge est le vert. Et la roue de l’écran, rouge, vert, bleu, où l’opposé du rouge est le cyan. Ce sont deux façons de mélanger, pas deux façons d’afficher, et les deux ont raison dans leur métier. Un peintre qui cherche la complémentaire du rouge attend du vert. Un développeur attend du cyan.
Le passage d’un modèle à l’autre n’est pas une approximation. Il s’appuie sur une table de correspondance mesurée, strictement croissante, donc parfaitement réversible : vous pouvez faire l’aller-retour sans dériver.
Quinze figures d’harmonie sont proposées, présentées en schémas plutôt qu’en noms, parce qu’un schéma se reconnaît d’un coup d’œil là où un nom demande d’être lu. Complémentaire, complémentaire divisée, triade, carré, composé, monochrome, nuances, chaudes, froides, pastels, primaires, secondaires, et deux modes libres.
Deux détails de conception méritent d’être signalés, parce qu’ils trahissent le soin apporté à l’outil. D’abord, le cercle est repeint à la clarté du point retenu. Un cercle peint à pleine clarté mentirait dès que vous travaillez sur des tons sourds : vous visez un vert franc, vous récoltez un vert-de-gris. Ensuite, le nombre de points est propre à chaque figure. Vous voulez dix tons d’une monochrome et cinq d’une triade, et les retrouver tels quels en revenant dessus.
Cinq sélecteurs plutôt qu’un
La roue n’est qu’un des cinq outils du bloc des sélecteurs.
Le sélecteur classique pose un plan saturation et valeur, une réglette de teinte, une réglette d’alpha, et surtout un aperçu « avant et après » qui vous dit de combien vous avez dérivé depuis votre point de départ.
La grille web aligne les 216 couleurs sûres. Un souvenir des écrans à 256 couleurs, encore utile pour composer vite une teinte franche.
Le nuancier est une nappe paramétrique : la teinte tourne de gauche à droite pendant que la clarté descend, et six réglettes vous laissent la piloter. La saturation y culmine volontairement au milieu du balayage, parce qu’aux deux bouts une couleur trop saturée devient criarde ou boueuse.
L’audit de contraste, enfin, affiche en gros le rapport entre votre couleur et son fond, quatre verdicts d’accessibilité, et jusqu’à deux variantes conformes. Ces variantes gardent votre teinte et votre vivacité, et ne touchent qu’à la clarté. Le raisonnement est juste : la teinte et la vivacité sont ce que vous avez choisi, la clarté est ce qui décide de la lisibilité.

Des couleurs tirées de vos images
Déposez une photo sur le bloc d’analyse, ou collez-la depuis le presse-papiers, qu’il s’agisse d’une capture d’écran, d’une image copiée dans un navigateur ou d’un fichier copié dans l’explorateur. Le logiciel en tire les couleurs dominantes, de deux à seize. Un rond posé sur l’image dit où chaque couleur a été prise, ce qui vous permet de juger si le relevé a du sens.
Survolez un de ces ronds, il devient une loupe : vous prélevez alors la couleur exacte de ce point, celle du relevé étant une moyenne qui ne se trouve pas forcément telle quelle dans l’image. Le relevé ne vous convient pas ? Ctrl enfoncé, saisissez le rond et portez-le ailleurs : son échantillon prend la couleur exacte du nouvel endroit.
Les couleurs trouvées se réordonnent à la souris, et un dégradé se construit sur leur ordre, du plus clair au plus sombre.
Essayer un accord sous une vraie police
Le bloc de typographie donne accès à 1 821 familles latines de Google Fonts. Pas une liste de noms : les fichiers sont téléchargés pour de vrai, l’aperçu les affiche dans leur vraie fonte, et le bouton Obtenir les installe pour tout le système. Si une police ne peut pas être téléchargée, l’aperçu le dit en tête, avec la raison : vous ne jugez jamais une police de remplacement en croyant voir la vôtre.

Un accord de couleurs essayé sous une police réelle, avec son vérificateur de contraste.
Vous composez un titre, un paragraphe et un lien, chacun avec sa couleur, et le vérificateur vous dit si l’ensemble reste lisible. Le fond et les textes puisent dans la palette courante : chargez-en une autre, l’aperçu suit. Il ne propose que ce qui manque : suggérer un palier AA à une couleur qui tient déjà AAA serait lui proposer de reculer.
Ranger, nommer, retrouver
Une palette courante de 256 cases, une base locale, et 477 accords livrés d’office, relevés sur une bibliothèque publique, dédoublonnés et étiquetés.
Au moment de ranger une palette, le logiciel vous demande un nom, vérifie à chaque frappe qu’il est libre, et propose des étiquettes déjà cochées d’après vos couleurs. C’est le seul moment où l’on sait ce qu’est la palette qu’on range. Les demander plus tard reviendrait à ne jamais les poser.
En pratique
| Système | Windows 64 bits |
| Installation | aucune. Un exécutable que vous posez où vous voulez |
| Éditions | autonome, 71 Mo, rien à installer. Légère, 632 Ko, exige le « .NET Desktop Runtime » |
| Portabilité | complète. Copiez le dossier sur une clé, vos réglages, palettes et polices suivent |
| Mises à jour | depuis l’onglet « À propos » des réglages, que F1 ouvre directement, bouton Vérifier les mises à jour. Le fichier téléchargé est vérifié par empreinte avant d’être installé, et le logiciel se relance tout seul |
| Réseau | facultatif. Il ne sert qu’à la mise à jour, aux polices et à la création assistée |
| Droits | aucun. Rien n’est écrit hors de votre profil et du dossier du logiciel |
| Langue | français, anglais ou espagnol, au choix dans les réglages. Le changement est instantané, sans redémarrer |
| Licence | gratuit pour les particuliers. Payant pour les professionnels, sur devis : la demande se fait par ticket sur le site |
Un dernier mot sur une fonction que vous n’êtes pas obligé d’employer : si vous enregistrez une clé d’API Google AI Studio, Caméléonardo fabrique des visuels à partir de vos palettes, en cinq questions. Affiches, cartes, bannières, mises en situation. Il produit l’image, le document à calques pour Photoshop ou GIMP, et le PDF d’impression avec fond perdu et traits de coupe. Sans clé, rien de tout cela n’apparaît à l’écran : proposer une création qu’on ne peut pas lancer serait une fausse promesse.
À vous de jouer
Caméléonardo est fait pour vivre dans un coin d’écran pendant que vous travaillez ailleurs. Il reste au premier plan, il se range dans la zone de notification plutôt que de se fermer, et son raccourci global vous donne la pipette sans que vous ayez à revenir sur sa fenêtre.
La documentation complète couvre chaque écran et chaque réglage, avec les raccourcis, les emplacements de fichiers et une section de dépannage.
Télécharger
- À la dernière étape de « Créer un visuel », la consigne qui va partir se modifie directement dans son cadre. Ce qu'on y tape est envoyé tel quel.
- Une consigne prise dans la bibliothèque y montre ses champs « à remplir », avec les valeurs déjà saisies. Changer une valeur recompose la consigne. Les champs qui acceptent une image gardent leur bouton « Parcourir… », la vignette de l'image jointe et son numéro de référence, et une croix pour la retirer : les images suivantes remontent d'un rang et la consigne suit.
- Le bouton « Bibliothèque… » a une icône au trait comme les autres, trois livres, au lieu d'une page lignée qui se lisait comme un pavé plein. ---
- Les consignes ont été relues une à une : cinquante et une valeurs à choisir, écrites entre crochets, entre parenthèses ou en capitales dans le texte d'origine (« [LANDMARK] », « (CITY_NAME) », « <YOUR PHOTO> », « 【MOVIE_TITLE】 »…), n'avaient pas de champ « à remplir ». Elles en ont un désormais, avec son intitulé en français, dans vingt-neuf fiches.
- « Votre photo » (fiche du rapport d'esthétique du visage) accepte une image par le bouton « Parcourir… ».
- Une valeur saisie dans une consigne écrite au format JSON ne garde plus une accolade de chaque côté. ---
- Les points ajoutés au-delà des branches d'une figure pâlissent vers le centre au lieu de s'assombrir : chaque échantillon est désormais la couleur qu'on voit sous son point, de la couleur pure vers le clair, comme la roue. La monochrome suit la même règle ; seule « Nuances » fait descendre la clarté.
- Les codes affichés suivent le format choisi partout où ils étaient encore en hexadécimal : échantillons et code visé de la roue, pivot de l'harmonie, analyse d'image, loupe, échelle de nuances, matrice des contrastes, vision des couleurs, typographie, modification d'une palette, rangement dans la palette. Avec un nuancier RAL® ou PANTONE®, c'est le nom de la couleur. ---
- À la dernière étape de « Créer un visuel », la consigne qui va partir se modifie directement dans son cadre. Ce qu'on y tape est envoyé tel quel.
- Une consigne prise dans la bibliothèque y montre ses champs « à remplir », avec les valeurs déjà saisies. Changer une valeur recompose la consigne. Les champs qui acceptent une image gardent leur bouton « Parcourir… », la vignette de l'image jointe et son numéro de référence, et une croix pour la retirer : les images suivantes remontent d'un rang et la consigne suit.
- Le bouton « Bibliothèque… » a une icône au trait comme les autres, trois livres, au lieu d'une page lignée qui se lisait comme un pavé plein. ---
- Les consignes ont été relues une à une : cinquante et une valeurs à choisir, écrites entre crochets, entre parenthèses ou en capitales dans le texte d'origine (« [LANDMARK] », « (CITY_NAME) », « <YOUR PHOTO> », « 【MOVIE_TITLE】 »…), n'avaient pas de champ « à remplir ». Elles en ont un désormais, avec son intitulé en français, dans vingt-neuf fiches.
- « Votre photo » (fiche du rapport d'esthétique du visage) accepte une image par le bouton « Parcourir… ».
- Une valeur saisie dans une consigne écrite au format JSON ne garde plus une accolade de chaque côté. ---
- Les points ajoutés au-delà des branches d'une figure pâlissent vers le centre au lieu de s'assombrir : chaque échantillon est désormais la couleur qu'on voit sous son point, de la couleur pure vers le clair, comme la roue. La monochrome suit la même règle ; seule « Nuances » fait descendre la clarté.
- Les codes affichés suivent le format choisi partout où ils étaient encore en hexadécimal : échantillons et code visé de la roue, pivot de l'harmonie, analyse d'image, loupe, échelle de nuances, matrice des contrastes, vision des couleurs, typographie, modification d'une palette, rangement dans la palette. Avec un nuancier RAL® ou PANTONE®, c'est le nom de la couleur. ---
- La langue de l'interface se choisit en tête de l'onglet Affichage des réglages : français (par défaut), anglais ou espagnol. Chaque langue est écrite dans la sienne, pour qu'on la reconnaisse.
- Le changement est immédiat, sans redémarrer : toutes les fenêtres ouvertes changent de langue sur place, et ce qui s'ouvre ensuite arrive dans la bonne.
- Tout est traduit : les écrans, les menus, les infobulles, les messages, les avertissements, l'aide, le tutoriel, les astuces du formulaire de création et le journal d'exécution.
- Les noms de couleurs ne sont traduits que lorsqu'ils ont un équivalent reconnu dans la liste française des noms de couleur de Wikipédia : une centaine, comme Abricot, Bleu de Prusse ou Vert-de-gris, en français comme en espagnol. Les autres, noms de fantaisie ou noms propres, gardent leur nom d'origine dans les trois langues. La recherche trouve une couleur sous ses deux noms.
- Les palettes livrées s'affichent sous leur nom d'origine en anglais, et traduites en espagnol. Une palette que vous avez nommée garde son nom.
- Vos réglages, vos palettes et l'agencement de vos blocs ne dépendent pas de la langue : en changer ne modifie rien de ce que vous avez enregistré.
- Ce que vous tapez dans un champ n'est jamais traduit. ---
- Le bouton AI de l'Harmonie crée à partir de l'harmonie affichée, celui de l'Analyse d'image à partir des couleurs relevées dans l'image, et celui de la Typographie à partir de son accord (fond, titre, texte, lien). Tous partaient jusqu'ici de la palette du bloc Palettes.
- Un bloc sans couleur ne bloque pas : la création part alors de la palette courante, et le logiciel le dit. ---
UNE SEULE PORTE POUR LE FORUM, LES BUGS ET LES SUGGESTIONS
- Les trois boutons mènent désormais à la même adresse d'abonnement au forum, code avis compris : c'est le site qui aiguille vers le bon guichet.
SIGNALEMENTS ET SUGGESTIONS RECONNUS
- Les boutons Signaler un bug et Suggestions portent désormais le code avis, comme l'avis et le forum : le site sait de quelle installation vient le message, sans rien avoir à demander.
- Le code est calculé au moment du clic, donc toujours celui qui s'affiche à l'écran.
- Le wiki et le téléchargement restent des adresses simples : ils n'ont personne à reconnaître.
MISE À JOUR DEPUIS LE LOGICIEL
- La fenêtre À propos cherche désormais les mises à jour : un bouton, une ligne d'état, une barre de progression. Caméléonardo télécharge la nouvelle version, vérifie son empreinte, se remplace lui-même et se relance.
- Un fichier dont l'empreinte ne correspond pas à celle annoncée est effacé et rien n'est installé. C'est ce qui sépare une mise à jour d'une porte d'entrée.
- La recherche ne fait jamais échouer le logiciel : réseau coupé ou serveur en panne, elle le dit et s'arrête là. Et elle distingue « vous avez la dernière version » de « la recherche n'a pas abouti » — deux réponses qu'un message unique aurait confondues.
- Deux éditions, deux circuits de mise à jour. L'édition qui embarque .NET et l'édition légère ne se remplacent plus l'une par l'autre : une légère installée à la place d'une autonome ne redémarrerait pas sur un poste sans .NET. Chaque exécutable sait laquelle il est et ne regarde que ce qui le concerne.
- Les deux éditions sont désormais publiées ensemble, à chaque version : quel que soit le téléchargement choisi, la mise à jour proposée est à jour.
LES LIENS AVIS ET FORUM PORTENT LE CODE
- Le bouton Laisser un avis mène désormais à https://www.1et2.com/?avis=<code>, et le bouton Forum à https://www.1et2.com/?abonnement_forum=Cam%C3%A9l%C3%A9onardo&code=<code>.
- Ces deux adresses ne sont plus des constantes mais des fonctions calculées au moment du clic : elles portent toujours le code affiché à l'écran, et suivent donc son renouvellement toutes les cinq minutes. Une constante aurait figé le code au jour de la compilation — le site aurait refusé tout le monde.
- Le nom du logiciel part encodé (Cam%C3%A9l%C3%A9onardo) et non écrit à la main : une table de pourcentages recopiée est une faute qui ne se voit pas. C'est bien le libellé accentué qu'attend le serveur, le même que celui qui entre dans le calcul du code.
- Les quatre autres liens — bugs, suggestions, wiki, télécharger — restent figés sous /app/cameleonardo/, puisqu'ils n'ont rien à prouver au serveur.
CODE AVIS ET LIENS VERS LE SITE
- La fenêtre À propos affiche un code avis de six caractères, en grand, dans un bouton : un clic le copie. Il sert à déposer un avis sur le site.
- Un cadran à côté du code montre combien de temps il reste avant qu'il ne change, le compte à rebours écrit en son centre.
- Cinq boutons mènent au site : Laisser un avis, Signaler un bug, Suggestions, FAQ / Wiki et Forum.
L'AUDIT DE SENS : CE QUE LE MODE PROMET, ET CE QU'IL REND
Le premier audit ne vérifiait que des ÉCARTS — pas de doublons, une séparation minimale. Il ne disait rien de ce que les couleurs SONT. C'est ainsi que « secondaires » a rendu du bleu au lieu du violet pendant des versions, que l'éventail analogue a fait le tour sans que personne s'en aperçoive, et que les chaudes ont laissé passer du vert franc : trois défauts en trois demandes, tous invisibles à un contrôle qui compte des degrés.
Le nouvel audit NOMME les couleurs obtenues, MESURE les angles réellement rendus, et vérifie que le cercle peint bien, sous chaque poignée, la couleur que cette poignée porte. Le tout sur les deux roues, le banc basculant réellement de modèle avant de le remettre.
- Les couleurs sont nommées. « Primaires » doit rendre du rouge, du jaune et du bleu, « secondaires » de l'orangé, du vert et du violet — rouge-vert-bleu et jaune-cyan-magenta sur la roue de l'écran. C'est le seul contrôle qui aurait vu le violet devenu bleu.
- Une chaude a plus de rouge que de bleu, une froide l'inverse. Le critère ne dépend d'aucun modèle de roue : c'est ce qui en fait un juge et non une convention de plus.
- Un pastel est pâle et clair, les nuances vont du plus clair au plus sombre sans retour, le monochrome du plus dense au plus pâle, et ni l'un ni l'autre ne montre deux teintes.
- Les angles sont mesurés sur la roue en vigueur, pas sur la table qui les a produits ; l'éventail analogue garde son pas, son centre et sa borne.
- Et le cercle peint sous chaque poignée la couleur qu'elle porte : le chemin complet de la vue est refait — teinte, angle de roue, angle dessiné, puis le retour que fait la peinture en ce point. C'est précisément le défaut qu'un centre de secteur écrit à deux endroits avait produit. CE QUE L'AUDIT A TROUVÉ : le secteur chaud et froid débordait de sa famille
- Trois cent soixante-neuf couleurs fautives, sur les deux roues : du magenta et du vert franc dans les chaudes, du vert dans les froides. La demi-ouverture valait un quart de tour, ce qui était trop.
- La valeur est désormais mesurée et non postulée : en promenant le critère rouge-contre-bleu angle par angle autour de chaque centre, la famille tient jusqu'à 70,5° et 67° sur la roue des peintres, 75° sur celle de l'écran. Soixante-cinq degrés passent partout, avec la marge qu'il faut pour que ce ne soit pas une valeur posée au bord du gouffre.
- 1705 contrôles au banc.
LES DEUX ROUES AU CHOIX : RJB OU RVB
> Ce lot a été mené en parallèle de la 3.177.0 ci-dessous, arrivée dans le même > dossier pendant sa mise au point. Les deux tiennent ensemble — la compilation > passe et le banc est vert —, mais ils ont d'abord porté le même numéro ; c'est > pourquoi celui-ci prend le suivant.
- Un sélecteur à deux boutons, à droite des schémas de figures. Ce sont deux façons de MÉLANGER, pas deux façons d'afficher : un écran additionne du rouge, du vert et du bleu, et l'opposé du rouge y est le cyan ; un peintre mélange du rouge, du JAUNE et du bleu, et l'opposé du rouge y est le vert. Les deux sont justes dans leur ordre, et l'on ne compose pas de la même façon une affiche imprimée et une interface.
- Deux boutons plutôt qu'une bascule : on voit du premier coup d'œil lequel est en vigueur ET ce que vaut l'autre. « RJB » seul ne dit pas si l'on y est ou si l'on y va.
- Tout bascule d'un seul point : figures, cercle peint et placement des poignées passent tous par les deux mêmes conversions, qui deviennent transparentes sur la roue de l'écran — l'angle y EST la teinte. Un réglage partagé plutôt qu'un paramètre propagé de proche en proche : celui-ci finit toujours par être oublié quelque part, et une poignée posée selon une roue sur un cercle peint selon l'autre est un défaut qu'on met longtemps à comprendre.
- La couleur de base est conservée, la figure est refaite autour d'elle : voir la même couleur appeler un vert dans une roue et un cyan dans l'autre est exactement ce qu'on vient comparer.
- L'éventail analogue compte trente degrés sur la roue de l'écran, quinze sur celle des peintres. Les quinze ne sont pas un choix : ils sont RESSORTIS du calcul qui a résolu la table de calibrage, où le pas de l'analogue entrait comme inconnue. Ils valent pour cette roue-là et pour elle seule ; sur celle de l'écran, qui ne comprime plus rien, quinze degrés donneraient cinq couleurs indistinguables.
- BUG que ce changement a révélé : l'éventail analogue faisait le tour. À trente degrés de pas, le treizième point revenait sur le premier et rendait exactement la même couleur. Son ouverture est plafonnée à une demi-roue — treize teintes en RJB, sept en RVB —, au-delà de quoi les points prennent des rangs comme dans les autres figures. Et bien avant le tour complet, un éventail qui couvre trois quarts de cercle n'avait plus rien d'une analogie.
- Les primaires y deviennent rouge, vert, bleu, et les secondaires jaune, cyan, magenta — les trois quartiers du cercle suivent d'eux-mêmes.
- L'audit complet est rejoué SUR LES DEUX ROUES : le banc bascule réellement de modèle, vérifie qu'aucune figure ne rend deux fois la même couleur, puis remet le modèle d'origine.
PLUS DE BLANC, PLUS DE COUTURE, ET LA BASE FAIT LE TOUR
- La séparation des chaudes et des froides était fausse. Les chaudes vont du rouge au jaune, les froides du bleu au vert et au violet : sur une roue de douze teintes, les chaudes s'étendent du rouge-violet au jaune, dont le milieu tombe à quarante-cinq degrés et non à trente. À trente, le secteur descendait jusqu'au violet pur, qui est une froide dans tous les nuanciers.
- Un vrai dégradé, plus aucun blanc. Éteindre la couleur au bord effaçait bien la couture, mais un cercle chromatique avec un coin blanc reste un cercle abîmé. La moitié de roue qui n'appartient pas à la famille n'est plus ôtée : elle est comprimée dans une bande étroite, où le dégradé court vite mais court. La fonction d'affichage reste croissante et continue d'un bout à l'autre du cercle — un contrôle mesure que la teinte n'y bondit jamais de plus de deux degrés d'un point à l'autre.
- Même remède pour les trois quartiers des primaires et des secondaires : ils se rejoignent par le dégradé que la roue des peintres trace entre eux — orangé du rouge au jaune, vert du jaune au bleu. Le cœur de chaque quartier garde exactement sa teinte pure, sans quoi le mode ne dirait plus rien.
- La base parcourt son secteur d'un bord à l'autre. Deux verrous l'arrêtaient : une borne qui lui interdisait les abords du bord — c'est désormais l'ÉVENTAIL qui s'adapte, ses branches se rangeant du côté où il reste de la place, avec le même écartement et donc sans jamais deux couleurs jumelles — et un tirage vers le secteur trop fort. Il se fait maintenant exactement à mi-chemin : un demi-tour au plus séparant une teinte du centre, la moitié du chemin la pose tout juste au bord. La base atteint 89,4 degrés sur 90.
- BUG trouvé en route : le centre du secteur était écrit DEUX FOIS. Dans la fonction que la vue lit, et en dur dans le calcul des familles. Corriger la séparation ne changeait donc rien au calcul, qui continuait de tirer vers l'ancien centre pendant que le cercle en montrait un autre : les poignées se posaient à côté de leur couleur. Un contrôle interdit désormais la seconde écriture.
- 1675 contrôles au banc.
TROIS QUARTIERS POUR LES PRIMAIRES ET LES SECONDAIRES — ET UN VIOLET RETROUVÉ
- « Primaire » ne se définit pas par rapport à une couleur de départ : rouge, jaune et bleu le sont pour tout le monde, et leurs trois mélanges deux à deux tout autant. Ces deux figures ne prennent de la couleur choisie que sa vivacité et sa clarté ; ses angles, elles les ignorent. Montrer un cercle entier promettait donc un choix qui n'existe pas.
- Le cercle s'y réduit à trois quartiers — rouge, jaune, bleu, ou orangé, vert, violet —, chacun dégradé du centre au bord comme le reste du cercle, et leurs trois coutures fondues dans le neutre comme le bord d'un secteur chaud.
- La poignée est happée au quartier visé, et la base elle-même n'y change plus de teinte : sans cela elle porterait une couleur que le cercle sous elle ne montre nulle part, et le code lu ne correspondrait à rien de visible.
- BUG trouvé en route : les secondaires étaient à trente degrés au lieu de soixante. Une secondaire est le mélange de DEUX primaires, elle tombe donc à mi-chemin entre elles. Le troisième quartier rendait un bleu franc au lieu d'un violet — et le commentaire du code disait « un sixième de tour » pendant que le calcul en faisait un douzième. Les trois teintes sont maintenant orangé, vert et violet, comme leur nom l'annonce.
- Un contrôle joue les douze points depuis cinquante-deux bases et vérifie que ce que la figure rend tombe bien sur les trois quartiers que le cercle montre.
- 1671 contrôles au banc.
LE POPUP D'OUVERTURE PREND LA PLACE DU LOGO
- Il se centrait sur la fenêtre entière, donc plus bas que le logo : celui-ci est au milieu du CORPS, lequel commence sous la barre d'outils, et le texte posé sous lui décale encore le milieu de leur pile commune. Le popup paraît désormais exactement là où le logo vient de s'effacer — c'est là qu'on regarde.
- Ce qui avait fait échouer la première tentative, et qui est corrigé : le calcul passait par les coordonnées d'ÉCRAN de l'élément, puis reconvertissait en unités WPF — trois conversions dont le résultat dépendait de l'échelle d'affichage. La place de l'élément est maintenant lue dans le repère de la fenêtre propriétaire, c'est-à-dire dans les unités mêmes où Left et Top s'expriment, et l'échelle de l'interface y est déjà comprise puisqu'elle est posée en chemin.
- C'est la BOÎTE transformée qui est prise, et non la taille propre de l'élément : sous une mise à l'échelle, les deux diffèrent.
- La mesure retombe sur le milieu de la fenêtre dès qu'elle n'a plus de sens — élément absent, pas encore mesuré, ou détaché de la fenêtre propriétaire.
- Et les quatre bords de l'écran comptent : centrer sur un logo proche d'un coin peut faire dépasser en bas et à droite autant qu'en haut et à gauche, ce que les deux bornes précédentes ne voyaient pas.
- 1667 contrôles au banc.
LA COUTURE DU SECTEUR SE FOND DANS LE NEUTRE
- Un cercle est fermé, un secteur ne l'est pas. Déplié sur le tour entier, ses deux extrémités se retrouvent forcément quelque part, et comme elles sont diamétralement opposées sur la roue des peintres, elles s'y rejoignaient magenta contre vert. Aucune mise en place ne peut l'éviter : on ne fait pas tenir un arc ouvert dans une boucle fermée sans le rompre quelque part.
- On rompt donc DANS LE NEUTRE. En approchant du bord, la vivacité s'éteint : les deux extrémités arrivent toutes deux blanches et se rejoignent sans marque. La zone pâle dit d'ailleurs vrai — c'est là que la famille cesse d'en être une.
- Vingt degrés de roue, soit quarante à l'écran une fois le secteur déplié : en deçà le fondu se voit encore comme un coin blanc, au-delà il mange la place où l'on veut poser des couleurs.
- Aucune poignée ne tombe dans le fondu : elle y porterait une couleur vive que le cercle sous elle ne montre pas. L'ancre de l'éventail est bornée en conséquence, et un contrôle joue les seize points depuis cent vingt bases pour le vérifier.
- 1665 contrôles au banc.
LE SECTEUR CHAUD OU FROID EST DÉPLIÉ SUR LES TROIS CENT SOIXANTE DEGRÉS
- La 3.174.0 éteignait la moitié du cercle. C'était un demi-disque mort : la place y était perdue, et les couleurs de la famille se tassaient sur ce qui restait. Le quart de tour de part et d'autre du secteur est désormais ÉTIRÉ sur le tour entier — un cercle plein, plein de chaudes ou plein de froides, et d'elles seules.
- Le centre du secteur ne bouge pas : c'est le même point du cercle qu'avant, et passer d'un mode à l'autre ne fait pas tourner l'image. Son bord vient à l'opposé, où les deux extrémités de la famille se rejoignent — la couture y est visible, et c'est honnête : elle marque là où la famille s'arrête.
- Les poignées se placent dans le même repère que la peinture : trois passages successifs — teinte d'écran, angle de roue, angle dessiné — et leurs réciproques. Un contrôle vérifie que le dépliage est exactement réversible, sans quoi une poignée glisserait d'elle-même à chaque redessin.
- 1663 contrôles au banc.
LE BLEU N'EST PAS CHAUD, LE JAUNE N'EST PAS FROID
- En modes « chaudes » et « froides », le cercle n'est plus allumé que sur le quart de tour de part et d'autre du secteur. Montrer le cercle entier quand la moitié en est interdite, c'était inviter à viser ce qu'on ne donnerait pas.
- Le reste s'éteint sans disparaître : presque décoloré et un peu assourdi, il reste lisible. Un trou noir ferait perdre les repères — on ne saurait plus où est le rouge ni où est le bleu, ni même de quel côté se trouve la famille.
- Et la base d'une famille ne sort plus de son secteur : la traîner dans les bleus en mode « chaudes » aurait fait mentir le mode, puisque le cercle y est éteint. Elle bute au bord, comme sur une glissière.
- L'ancre de l'éventail est bornée assez à l'intérieur pour que ses branches extrêmes y tiennent aussi : une famille dont les bords débordent dans l'autre camp n'est plus une famille. Un contrôle joue les seize points depuis cent vingt bases et vérifie qu'aucune couleur ne sort.
- Le secteur est défini une seule fois, dans les harmonies ; la vue le lit au lieu d'en garder sa propre copie — deux valeurs séparées finiraient par se contredire, et l'on verrait des poignées posées dans la zone éteinte.
- 1660 contrôles au banc.
UNE POIGNÉE DÉDUITE NE QUITTE PAS SON RAYON : ELLE Y GLISSE
- La 3.171.0 avait rendu les poignées libres de leur angle. C'était trop : l'angle d'une poignée déduite EST l'harmonie. Le laisser dériver, c'est cesser de calculer des couleurs analogues pour ne plus dessiner que des points épars, et la figure ne veut plus rien dire.
- Une poignée déduite garde donc l'angle que la figure lui a donné et suit la souris SUR SON TRAIT, aussi loin que celle-ci s'en écarte — c'est ce qu'on attend d'un curseur qui coulisse. Seule sa distance au centre, c'est-à-dire sa vivacité, reste libre : elle ne doit rien à la figure, et l'on gagne à pouvoir l'accorder branche par branche.
- Ce qui a été gardé de la 3.171.0 : la base ne bouge plus quand on touche aux autres, et la déplacer, elle, fait tourner la figure sans effacer les vivacités réglées à la main.
- Le mode personnalisé reste libre de tout : c'est sa définition, et le verrou de l'angle n'y aurait aucun sens puisqu'aucune figure ne l'a posé. Un contrôle vérifie que sa garde vient bien en premier.
- 1656 contrôles au banc.
LE CERCLE S'ACCORDE À LA CLARTÉ DE LA COULEUR QU'ON TIENT
- Le cercle ne montre que DEUX des trois grandeurs : l'angle donne la teinte, la distance au centre donne la saturation. La clarté n'a nulle part où se lire — et un cercle peint à pleine clarté MENT donc sur ce qu'on obtiendra dès qu'on travaille sur des tons sourds : on vise un vert franc, on récolte un vert-de-gris.
- Il est désormais repeint à la clarté du point retenu : il devient la TRANCHE du solide des couleurs où l'on travaille, et ce qu'on voit sous la poignée est ce qu'on aura. Le blanc du centre devient alors le gris de cette clarté-là, qui est exactement ce qu'on obtiendrait en y posant une poignée.
- Le point retenu est le dernier qu'on ait touché — c'est sur lui qu'on travaille. Rebâtir la figure le remet sur la base : les points sont alors tous recalculés, celui qu'on avait retenu n'existe plus sous cette forme.
- Repeint seulement quand la clarté change d'au moins un deux cent cinquante-cinquième : soixante-cinq mille points recalculés à chaque mouvement de souris pour une image rigoureusement identique seraient payés pour rien.
- Un plancher de clarté à dix-huit centièmes : peint à clarté nulle, le cercle serait un disque noir où l'on ne pourrait plus rien viser, pas même de quoi en sortir.
- 1655 contrôles au banc.
L'ACCORDÉON DES RÉGLAGES : DE L'AIR, DU DÉCALAGE, ET LE CHEVRON DANS LE BON SENS
- La pointe du chevron montre où va le contenu : vers la DROITE quand le bloc est rangé, vers le BAS quand il se déroule dessous. C'est le sens qu'ont tous les explorateurs de fichiers, et le seul qui se devine sans l'avoir appris. Les volets n'avaient jusqu'ici aucun gabarit : ils prenaient celui d'origine de WPF, qui fait exactement l'inverse — chevron vers le bas quand c'est fermé. Un contrôle fixe désormais les deux angles, pour qu'on ne s'y reprenne pas une troisième fois.
- De l'air entre les blocs (marge portée à 6 en haut et 10 en bas) et entre les réglages d'un même bloc : une pile de cases à cocher jointives se lit comme un paragraphe, l'œil ne sait plus où s'arrêter et l'on coche la ligne d'à côté. L'espace s'AJOUTE à la marge de chaque réglage, il ne la remplace pas — chacun a déjà la sienne, et l'écraser déferait les alignements posés page par page.
- Le contenu est décalé sous le titre, à l'aplomb du texte de l'en-tête et non du chevron : on voit d'un coup d'œil ce qui appartient au bloc.
- La rotation se change en REMPLAÇANT l'objet, jamais en touchant son angle : WPF fige les Freezable posés dans un déclencheur de style. Contrôlé aussi.
- 1650 contrôles au banc.
CHAQUE POINT EST LIBRE DE SON ANGLE, LA BASE NE BOUGE PLUS SOUS LE DOIGT
- La figure dit où les points se posent AU DÉPART ; elle ne les tient plus prisonniers ensuite. Glisser une poignée qui n'est pas la base ne déplace désormais qu'elle. Un éventail analogue dont les cinq branches restent rigoureusement à quinze degrés les unes des autres ne sert qu'à regarder : on choisit une harmonie pour en partir, pas pour s'y enfermer.
- Et la base reste où elle est. C'est elle qu'on a réglée en premier et avec le plus de soin ; la voir dériver pendant qu'on ajuste une voisine, c'était perdre la précision qu'on venait justement d'obtenir. Auparavant, tenir n'importe quelle poignée revenait à remonter jusqu'à la base et à redéduire la figure entière — toutes les autres suivaient, base comprise.
- Quand c'est la BASE qu'on déplace, la figure suit — par une ROTATION, non par une reconstruction. Chaque point garde l'écart qu'on lui a donné à la main : déplacer la base n'efface pas les ajustements faits sur ses voisines. La rotation se compte sur la roue des peintres, comme tout le reste ; mesurée à l'écran, elle déformerait la figure en traversant les zones que la roue comprime. La vivacité et la clarté suivent par un RAPPORT et non par une différence — les figures posent leurs rangs en multipliant, un rapport garde donc les proportions du dessin.
- Recalculer est scindée en deux gestes qui n'ont rien à voir : « Rebâtir », pour un changement de figure, de nombre de points ou de couleur de base, et « Déplacer », pour un glisser. Les confondre était la cause : un glisser rebâtissait.
- 1645 contrôles au banc.
AUDIT DES SEIZE MODES DE LA ROUE — TROIS DÉFAUTS TROUVÉS, ET UN PLANCHER PAR FIGURE
Chaque mode a été joué à tous les comptes, de son plancher à seize, depuis sept couleurs de base réparties sur le cercle. Trois défauts en sont sortis, tous invisibles à cinq échantillons et flagrants au-delà.
- « Chaudes » à deux points rendait DEUX FOIS LA MÊME COULEUR. Chaque point était décalé de douze degrés PUIS tiré vers le secteur chaud — or le tirage ramène chaque point à quarante-cinq pour cent de sa place, et la roue comprime ensuite ce qui reste : douze degrés d'écart devenaient deux à l'écran. La base est désormais tirée UNE FOIS vers le secteur, et l'éventail s'ouvre autour de l'ancre ainsi obtenue. Séparation minimale : 1,9° → 5,2°. Même correction pour « Froides », qui tombait à 0,8°.
- Les pastels se serraient à mesure qu'on en demandait : leur ouverture était fixe à quatre-vingts degrés, donc subdivisée. À seize points, seules onze teintes se distinguaient encore. C'est la leçon déjà tirée pour l'analogue — un PAS fixe, jamais une ouverture fixe.
- Les planchers des retraits étaient PLATS, si bien qu'à partir du sixième rang deux rangs voisins rendaient exactement la même vivacité et la même clarté : une complémentaire à seize points portait deux paires rigoureusement identiques. Le plancher recule maintenant d'un demi-centième par rang.
- Le monochrome butait sur son plancher dès le quatrième ton — un pas fixe d'un quart — et seize tons n'en montraient que quatre de clartés différentes. La descente s'étale désormais sur le nombre demandé.
- Chaud, froid et pastels s'arrêtent à cinq teintes, après quoi les points prennent des rangs comme dans toutes les autres figures. Un éventail qui s'ouvrirait sans fin couvrirait la roue entière à seize points, et « chaudes » cesserait de vouloir dire quelque chose. LE CURSEUR NE DESCEND PLUS SOUS LE PLANCHER DE LA FIGURE
- Une triade à deux points n'est pas une triade : c'est une figure amputée, qui montre deux de ses trois directions et laisse croire que le mode ne tient pas ses promesses. Chaque figure a donc son minimum, et c'est le nombre de directions qui la définissent : 2 pour la complémentaire, 3 pour la complémentaire divisée, la triade, l'analogue, les primaires et les secondaires, 4 pour le carré et le composé, 2 pour les gammes, 1 pour Unique et Personnalisé.
- Il est tenu à trois endroits — le minimum du curseur, la valeur lue, et le calcul lui-même — parce qu'un compte retenu d'une session précédente peut être inférieur au plancher d'aujourd'hui.
- Le contrôle d'audit est entré au banc : aucune figure ne rend deux fois la même couleur, à aucun compte, depuis aucune des sept bases. 1642 contrôles.
LES POINTS ET LES TRAITS RETROUVENT LEUR NOIR D'ORIGINE
- En mode clair, les points et les traits des schémas gardent la couleur des SVG de Josselin. Ils prenaient l'encre du TEXTE, qui suit des contraintes de lisibilité étrangères à un dessin — et rien ne garantissait qu'elle reste noire. Ils ont leur propre clé, noire en clair, inversée en sombre où un tracé noir sur fond nuit ne se verrait pas.
- La sonde du thème est entrée dans l'arbre, et c'est la vraie raison pour laquelle les schémas restaient pâles : posée sur un élément SANS PARENT, la référence de ressource se résout bien, mais n'est pas toujours prévenue quand le dictionnaire change. Les schémas gardaient donc les encres du thème précédent après un passage au clair. Un élément de la fenêtre, lui, est toujours prévenu.
- 1613 contrôles au banc.
LE CERCLE DIT LA FIGURE CHOISIE — ET LES SCHÉMAS REPARAISSENT EN MODE CLAIR
- La figure retenue se dit par la couleur de son CERCLE, qui passe à l'accent. Le fond bleu derrière l'icône est retiré : il cernait le carré du bouton au lieu de désigner la figure, et se confondait avec les autres fonds de l'interface.
- Le mode clair : l'anneau empruntait la clé des FILETS, qui vaut dix pour cent de noir. C'est exactement ce qu'il faut pour un trait d'un point, et c'est l'invisible dès qu'on en REMPLIT une forme — d'où des schémas fantômes sur fond blanc. L'anneau a désormais sa propre encre, pleine, dans les deux thèmes, et un contrôle vérifie qu'elle l'est.
- Et les encres suivent le thème. Une couleur obtenue par recherche de ressource est FIGÉE : passer du sombre au clair la laissait telle quelle. Les calques sont donc repeints à chaque changement de thème, détecté par une sonde qui écoute une référence de ressource — rien n'annonce un changement de thème, le service échange simplement le dictionnaire fusionné.
- 1612 contrôles au banc.
LES SCHÉMAS DES FIGURES ÉTAIENT DÉFAITS — CHAQUE CALQUE S'ÉTIRAIT TOUT SEUL
- La cause, et elle n'est pas dans les tracés. Les soixante-trois géométries sont fidèles aux SVG de Josselin : mêmes calques, mêmes couleurs, mêmes formes, toutes ramenées du carré de mille au carré de vingt-quatre, toutes dans ce même carré. C'est le GABARIT qui les défaisait : chaque calque portait Stretch="Uniform", donc chacun s'étirait pour remplir la case à lui seul. Le petit point du haut d'une triade, large de cent vingt-cinq unités sur mille, était grossi six fois et demie et recouvrait l'anneau tout entier — d'où les pastilles pleines, blanches, jaunes ou violettes, à la place des figures.
- Un seul repère pour tous les calques : ils sont désormais posés tels quels (Stretch="None", calés en haut à gauche pour que leurs coordonnées soient absolues) dans une grille de vingt-quatre, et c'est cette grille-là, et elle seule, qu'une Viewbox étire.
- Deux contrôles neufs qui ferment la porte : le gabarit ne doit plus étirer un calque isolément, et les soixante-trois tracés doivent tous tenir dans le carré de vingt-quatre — un tracé qui en sortirait trahirait une conversion faite sur une autre échelle que ses voisins.
- Ce défaut est antérieur à la 3.169.0 : il date de l'arrivée des schémas en calques colorés, et les deux thèmes n'avaient pas été touchés depuis.
- 1608 contrôles au banc.
LA ROUE : SUPERPOSITION, DÉBORDEMENT, CODE VISÉ — ET LE COMPOSÉ TRANCHÉ
- BUG corrigé — une exception par schéma au démarrage. Le schéma d'une figure posait dans son Tag la géométrie « FigXxx » du thème. Ces clés nues n'existent plus depuis que chaque schéma est une PILE DE CALQUES COLORÉS : seules subsistent celles qui portent un numéro de calque. La recherche de ressource levait donc une exception à chaque figure construite, et le journal en portait deux par figure à l'ouverture. Ce Tag n'était plus lu par personne : il porte désormais la figure elle-même.
- Le code de la couleur visée, au-dessus de la palette. Il paraît au survol d'une poignée et suit tout le glisser — c'est justement pendant le geste qu'aucune infobulle ne s'affiche. Sa place est tenue en permanence, sans quoi la palette sauterait d'une ligne à chaque survol.
- Les poignées confondues se SUPERPOSENT au lieu de s'écarter. Chacune garde sa position exacte : c'est la taille qui les distingue, le rond du rang suivant se logeant à l'intérieur du précédent et passant par-dessus. La bordure passe en négatif au survol, ce qui dit lequel la souris tient quand ils se recouvrent. L'ancien comportement — l'éventail perpendiculaire au rayon — est gardé en commentaire, corps compris, et un contrôle vérifie qu'il y reste.
- Le rond peut déborder du disque. Son CENTRE est le repère du sélecteur, comme chez Adobe : à saturation pleine il tombe sur le bord même, et la moitié du rond passe au-dehors. Le rayon passe de 120 à 130 — il butait dix points trop tôt et les teintes les plus vives étaient inatteignables — et la toile gagne vingt points de marge de chaque côté, faute de quoi elle rognerait le rond, ce qui revient exactement à le bloquer avant le bord. LE COMPOSÉ RENDAIT DEUX COULEURS QUASI IDENTIQUES — trois causes, trois remèdes
- Ce n'était pas le calibrage. L'arc du rouge au jaune occupe cent degrés sur la roue des peintres pour quarante-cinq à l'écran : c'est la convention même de cette roue. Depuis un cyan, les deux voisines du composé se retrouvaient donc séparées de trente-cinq degrés sur la roue et de douze seulement à l'écran. Redresser la table d'ensemble aurait déplacé les teintes de quatorze degrés dans les six modes qui s'en servent pour un ou deux degrés de gain : mesuré, refusé. Symétriser les écarts les aurait éloignés de huit degrés des deux nuanciers qui les ont donnés — lesquels s'accordent sur l'asymétrie — et n'aurait réglé le pire cas qu'à moitié : refusé aussi.
- Remède retenu : garder les écarts mesurés, et ne les élargir QUE là où la roue les comprime, par dichotomie, jusqu'à dix-huit degrés de séparation vue. Pire cas : neuf degrés → dix-huit. Et les deux bases des nuanciers de référence ne bougent pas d'un dixième de degré, leur composé étant déjà bien séparé.
- L'aller-retour n'était pas non plus un défaut de calibrage : c'était un trou dans la LECTURE de la table. Sa colonne des teintes s'arrête à 716,61 quand son origine plus un tour vaut 718,17 ; les teintes d'écran comprises entre 356,61° et 358,17° tombaient dans ce trou d'un degré et demi, l'interpolation ne trouvait aucun segment et rendait la valeur INCHANGÉE — une teinte d'écran servie comme si elle était un angle de roue. Bornée aux deux bouts : écart maximal 6,79° → 1,47°, et 0,00° dans l'autre sens. Aucune valeur touchée.
- SIX VALEURS DE LA TABLE ONT ÉTÉ REDRESSÉES, et six seulement. Elle portait trois SEGMENTS PLATS — onze degrés d'angle de roue pour deux centièmes de degré d'écran, deux fois. Un plat n'est pas une mesure, c'est une contradiction entre deux relevés que la courbe résolvait en s'arrêtant. En traînant la poignée de base à travers l'une de ces teintes, l'angle de roue franchissait onze degrés d'un coup et toutes les autres poignées sautaient d'une trentaine de degrés, quelle que soit la figure. Le bond mesuré passe de 29,5° à 4,2°, qui n'est plus un saut mais une pente. Le redressement est le plus petit qui suffise — une pente minimale de 0,15 imposée aux seuls plats, l'écart emprunté à leurs deux voisins — et la teinte rendue ne se déplace nulle part de plus de 0,84°, moins que les deux degrés d'accord que les nuanciers s'autorisent entre eux. Chaque ligne modifiée porte sa valeur d'origine en bout de ligne.
- 1606 contrôles au banc, dont la séparation du composé mesurée sur les 360 bases, l'intégrité des deux nuanciers de référence, la continuité de la figure, et l'absence de tout plat dans la table.
LES BORDURES DES RONDS À UN POINT
- Un filet épais mange le disque qu'il entoure : sur un rond de treize points, deux et demi de bordure ne laissaient que huit points de couleur. Or c'est la couleur qu'on vient lire, pas l'anneau.
- L'ancien calcul — l'épaisseur liée au diamètre — est gardé en commentaire juste dessous : il se défendait tant que les ronds étaient gros.
- 1592 contrôles au banc.
LES FIGURES SONT ENFIN CELLES DE JOSSELIN, TELLES QUELLES
- J'avais regroupé les tracés par couleur, et cela détruisait leur ordre de superposition. Dans « chaud », un tracé noir vient APRÈS le jaune et le recouvre en partie : regroupé, le jaune passait par-dessus et remplissait tout le cercle. D'où les disques pleins jaune et violet à l'écran.
- L'ordre EST le dessin. Chaque calque garde désormais son rang — soixante- trois au total sur les quinze figures —, et l'on ne fait que remplacer sa couleur.
- Aucune forme n'est redessinée. Les tracés viennent des SVG, ramenés d'un carré de mille à un carré de vingt-quatre, et rien d'autre.
- Seules deux couleurs suivent le thème : le gris de la roue et le noir de la figure. Toutes les autres viennent du dessin et n'en bougent pas — un rouge primaire doit rester rouge sur fond clair comme sur fond sombre.
- La sélection et le survol portent sur le cadre du bouton, plus sur un calque particulier : il n'y a plus d'anneau séparé à teinter.
- Un contrôle vérifie que les rangs de chaque figure se suivent sans trou — un calque manquant décalerait toutes les couleurs qui viennent après, en silence.
- 1592 contrôles au banc.
LA TAILLE SE CORRIGE SUR LES TROIS PROPOSITIONS
- J'avais posé le crayon sur le résumé de droite, pas là où la taille se lit en premier. « 1200 × 400 » convient à la plupart, pas à tout le monde : celui dont le bandeau fait 1600 devait choisir la carte, la subir, puis chercher où la changer.
- Le crayon ouvre le réglage sur place et n'enchaîne pas : on vient corriger, pas avancer. Le clic est arrêté sur le bouton, sans quoi il traverserait la carte — qui l'entendrait comme un choix et passerait à l'étape suivante. ET LE LIBELLÉ NE MENT PLUS
- Il était écrit en dur. Après avoir réglé 1600, la carte aurait continué d'annoncer 1200 × 400 — et l'on aurait découvert l'écart à la toute fin.
- Les trois propositions annoncent désormais la taille réellement retenue.
- 1608 contrôles au banc.
LA COLONNE SE REPLIE SUR SES ICÔNES
- Sept libellés sur toute la hauteur, c'est beaucoup pour des outils qu'on ouvre une fois par séance. Repliée, la colonne rend sa largeur au formulaire, là où l'on travaille vraiment.
- Le libellé passe dans l'infobulle, il n'est pas jeté. On n'apprend pas sept icônes du jour au lendemain, et une icône muette dont on a oublié le sens vaut moins qu'un bouton absent.
- Dépliée par défaut, pour la même raison. LA TAILLE DES ÉCHANTILLONS SUIT LEUR NOMBRE
- Cinq pastilles de dix-sept points tiennent debout ; douze font une colonne plus haute que le formulaire, et l'on ne voit plus ni les couleurs ni les outils qui les suivent. En mode avancé, où la palette n'a pas de plafond, elles se resserrent à mesure qu'elles se multiplient.
- Onze points au plus petit : en deçà, deux teintes voisines ne se distinguent plus — et une palette qu'on ne peut pas lire ne sert à rien. UN PIÈGE ÉVITÉ
- J'ai d'abord rangé le libellé dans le « Tag » du bouton. Or c'est là que le gabarit lit le tracé de l'icône : le repliage aurait effacé le dessin, c'est-à-dire exactement le contraire du but. Les libellés vivent désormais à part.
- 1605 contrôles au banc.
LES TROIS FIGURES QUI MANQUAIENT
- Pastels, primaires et secondaires reprennent les dessins de Josselin. Les quinze harmonies ont désormais leur icône. AUTANT DE PASTILLES QU'IL EN FAUT
- Le mécanisme n'en portait qu'une, héritée des tons chauds et froids. « Primaires » en compte six et « Secondaires » trois : ce sont des figures qui montrent des TEINTES, pas des positions — leur retirer les couleurs reviendrait à les vider de ce qu'elles disent.
- Les pastilles se superposent au dessin dans une grille, et non dans une pile qui les rangerait les unes sous les autres.
- Elles viennent du dessin, pas du thème, et c'est tout leur intérêt : un rouge primaire reste rouge sur fond clair comme sur fond sombre. Le teinter au goût du thème le rendrait faux.
- Seuls l'anneau et le trait de la figure suivent l'encre du texte, comme demandé.
- Une liste vide ne dessine rien : les dix figures de position n'ont aucune pastille, et il n'y a rien à masquer.
- 1602 contrôles au banc.
LES FIGURES ÉTAIENT DÉFIGURÉES : LA RÈGLE DE REMPLISSAGE
- WPF remplit en pair-impair, les SVG en non-nul. C'est la seule différence entre les deux mondes, et elle suffit à tout gâcher : là où deux sous-chemins se chevauchent, le pair-impair creuse un trou que le dessin d'origine n'a pas.
- L'anneau perdait son ouverture, les liens de la figure s'effaçaient par endroits. Les tracés étaient justes — c'est la lecture qui était fausse.
- Chaque tracé porte désormais le préfixe « F1 », qui impose la règle du dessin.
- Un contrôle le vérifie sur les vingt-neuf tracés : c'est exactement le genre de détail qu'on oublie en reprenant un dessin de plus, et rien dans le résultat ne dit d'où vient le défaut.
- 1592 contrôles au banc.
LA FENÊTRE DE CRÉATION PERDAIT UNE COLONNE EN MARGES
- Les marges s'additionnent, et personne ne les compte. Douze points de coque, seize de grille, quatorze entre les rangées : quarante-deux points de vide entre le bord de la fenêtre et le premier mot, sur les quatre côtés.
- Sur un écran qui ignore la mise à l'échelle de Windows, ce sont des points réels — et l'on perdait une colonne de tags pour du vide.
- Ramenées à vingt-six : trente-deux points regagnés en largeur comme en hauteur.
- Les panneaux internes suivent : resserrer le cadre sans y toucher n'aurait déplacé le vide que d'un cran vers l'intérieur. Colonne de gauche, explorateur, tutoriel et panneau des choix sont resserrés dans la même proportion.
- 1591 contrôles au banc.
LE FIL D'ÉTAPES EST CLIQUABLE
- On revient en arrière d'un clic, jamais en avant. Sauter à une étape qu'on n'a pas atteinte laisserait derrière soi des questions sans réponse, et la consigne serait composée sur du vide.
- Revenir corriger ce qu'on a déjà rempli est au contraire le geste le plus fréquent — et il demandait autant de clics sur « Précédent » qu'il y a d'étapes en arrière.
- Le curseur ne promet que ce qu'on peut faire : une main sur une étape qui ne répond pas au clic est un mensonge de plus, et l'on clique deux fois avant de comprendre. LES BOUTONS DE PARCOURS PORTENT LA COULEUR
- Ils étaient noyés parmi des libellés gris de même graisse, alors que ce sont eux qu'on cherche à chaque étape.
- Deux teintes différentes, et c'est voulu : « Suivant » porte l'accent parce qu'il engage la dépense ; « Précédent » une teinte plus calme, parce que revenir ne coûte rien. LE FORMAT SE CORRIGE SUR PLACE
- Un crayon à côté du format, dans le résumé. On le lit à chaque étape, on y voit qu'on s'est trompé de taille — et il fallait remonter cinq écrans pour y revenir. TOUS LES MODÈLES NE MONTENT PAS AU MÊME PLAFOND
- Le modèle rapide s'arrête à 2K. Lui demander du 4K produit soit une erreur, soit — pire — une image de 2K agrandie qu'on croira native et qu'on enverra à l'imprimeur.
- Proposer ce qui ne marchera pas est pire que de ne rien proposer : on choisit, on paie, et l'on découvre le refus après coup.
- Un modèle inconnu est supposé capable : le plafond change à chaque version, et refuser par prudence empêcherait d'employer un modèle plus récent que la table.
- 1589 contrôles au banc.
« DIX MOTS AJOUTÉS » — ET RIEN À L'ÉCRAN
- Les mots rapportés par le service entraient bien en mémoire, et le message le disait. Mais la liste affichée était bâtie une fois pour toutes, avant le redessin : l'écran relisait une liste constituée avant leur arrivée.
- C'est le genre de défaut qui use la confiance plus qu'une panne franche : le logiciel affirme avoir fait quelque chose, et l'on ne voit rien.
- Elle se recalcule désormais à chaque passage. LES TAGS PRENAIENT LA PLACE DE DEUX FOIS LEUR TEXTE
- Neuf points de marge intérieure de chaque côté, cinq d'écart, onze et demi de corps : sur trois étages de tags, la moitié de l'écran était du vide.
- Un tag doit se lire et se cliquer, pas s'étaler. Pastilles resserrées, titres d'étage réduits, et l'espace entre les rangées ramené de douze points à sept — à quoi bon condenser les pastilles si les rangées restent écartées ?
- 1582 contrôles au banc.
LE POPUP EST ENFIN AU MILIEU
- On mesurait un élément et l'on plaçait une fenêtre. Le calcul prenait les coordonnées d'écran du contenu, puis les reconvertissait en unités WPF : trois conversions dont le résultat dépendait de l'échelle d'affichage, de la marge d'ombre de la coque et du moment de la mesure. Le popup arrivait en bas à droite quoi qu'on fasse — deux tentatives de correction n'y ont rien changé.
- La fenêtre propriétaire porte déjà tout ce qu'il faut, dans les mêmes unités que nous : sa position et sa taille. Deux soustractions suffisent, et il n'y a plus rien à convertir.
- Le centrage se rejoue une fois la hauteur réelle connue, et la fenêtre ne se pose jamais hors de l'écran. LES BLOCS DE RÉGLAGES SE REPLIENT
- Vingt-sept blocs déroulés sur sept onglets, c'est une notice, pas un écran. On y cherche un réglage en faisant défiler, on passe devant sans le voir, et l'on finit par croire qu'il n'existe pas.
- Chaque titre devient l'en-tête d'un volet ; tout ce qui le suit, jusqu'au titre suivant, en devient le contenu.
- Le repliage se fait par code, pas dans le XAML. Envelopper vingt-sept blocs à la main demanderait de découper chaque page à la bonne ligne — et le premier réglage ajouté ensuite atterrirait dans le mauvais volet sans que rien ne le signale. La règle est mécanique : un titre ouvre un bloc, le titre suivant le ferme.
- Ce qui reste déplié est décidé, pas deviné : la clé d'API, le modèle, le thème, la conduite d'ouverture et la bibliothèque — ceux qu'on vient régler, pas ceux qu'on règle une fois pour toutes.
- Ce qui précède le premier titre reste à découvert : c'est le texte d'introduction de la page, et le replier laisserait un onglet qui s'ouvre sur rien.
- 1581 contrôles au banc.
LES FIGURES D'HARMONIE SONT CELLES DE JOSSELIN
- Douze dessins repris de ses SVG, ramenés d'un carré de mille à un carré de vingt-quatre.
- Chaque figure porte désormais trois tracés au lieu d'un : l'anneau — la roue chromatique sur laquelle la figure se lit —, la figure elle-même, et pour les tons chauds et froids une pastille de couleur.
- Un seul tracé les aurait rendus de la même couleur, et l'anneau aurait mangé la figure qu'il est censé porter.
- Le jaune des chauds et le bleu des froids sont fixes, pris au dessin d'origine et non au thème : c'est même tout leur intérêt, ils ne changent pas quand le fond change.
- Ce sont des formes pleines et non des traits : le contour est nul, seul le remplissage compte — un trait les aurait épaissies et aurait brouillé le dessin.
- La pastille est nulle pour les dix autres figures, donc invisible : rien à masquer. LES CONTRÔLES ONT CHANGÉ DE NATURE
- Les anciens mesuraient un cercle de 7,6 et des points de 1,05 — les valeurs de mes propres tracés. Les appliquer à des dessins faits à la main revenait à imposer ma géométrie sous couvert de vérification.
- L'un d'eux cherchait mes arcs de cercle : sur des courbes il ne comptait plus rien, et serait passé sur un fichier vide.
- Reste ce qui compte : chaque figure a un tracé, chacune a son anneau, aucune ne déborde de son carré, et seuls chaud et froid portent une couleur.
- 1579 contrôles au banc.
LES OUTILS PASSENT EN COLONNE, SOUS LA PALETTE
- Onze boutons alignés en bas de fenêtre ne se lisent pas : la barre horizontale les met tous au même rang, et l'œil doit relire chaque mot pour retrouver celui qu'il cherchait. En colonne, ils se parcourent d'un regard.
- Joindre, enregistrer, charger, depuis une image, conseiller, bibliothèque et canevas rejoignent la palette — qui est la source du travail, et voisine naturellement des outils qui s'en servent.
- Ce qui fait avancer reste en bas. « Précédent », « Voir la consigne » et « Suivant » n'ouvrent rien : ils font passer à la suite, et leur place est auprès du bouton qui dépense.
- Les échantillons de la colonne passent de vingt-quatre à dix-sept points : ce bloc rappelle la palette, il ne la présente pas. LE TEXTE DES ONGLETS NE SE PERD PLUS DANS SES MARGES
- Huit et dix points autour d'un mot de six lettres font plus d'espace perdu que de texte lisible. Cinq suffisent à ne pas coller au filet, et la rangée gagne près d'un quart de sa largeur — de quoi montrer un onglet de plus avant de déborder.
- L'écart ENTRE onglets ne bouge pas. J'avais commencé par le réduire aussi : un contrôle m'a rappelé qu'un chevauchement rendait le bandeau illisible en fenêtre étroite. C'est une autre distance que celle qu'on voulait réduire.
- 1550 contrôles au banc.
LA PALETTE NE SE CHARGEAIT PLUS (régression de 3.155.0)
- En posant « reprendre l'état de la fermeture » comme conduite par défaut, j'avais fait sortir la méthode avant tout. Un premier lancement n'a rien à reprendre, et une séance close sur un bloc vide non plus : le logiciel ouvrait sur le gris qu'on voulait justement éviter.
- « Reprise » ne veut pas dire « ne rien faire » : on ne s'abstient que s'il y a réellement quelque chose à retrouver. LE POPUP N'ÉTAIT TOUJOURS PAS CENTRÉ
- Avant le rendu, la fenêtre ne connaît pas encore le texte qu'on vient d'y poser. On centrait sur une hauteur estimée de trois cent vingt points pour une fenêtre qui en faisait quatre cents — d'où un popup posé trop bas et trop à droite. Le centrage se rejoue une fois la hauteur réelle connue. LE PARCOURS DEMANDAIT CE QU'IL SAVAIT DÉJÀ
- Quand on modifie une image, elle vient avant tout le reste. Choisir un fond pour une image qu'on n'a pas encore fournie, c'est décider dans le vide — et l'on ne peut même pas proposer d'en tirer une consigne. Le parcours la réclame désormais en tête, et rappelle qu'on peut composer la consigne à partir d'elle.
- L'étape d'image rappelle celle qu'on a fournie au lieu de la redemander : redemander « voulez-vous une image ? » à quelqu'un qui a choisi d'en modifier une donne le sentiment de ne pas avoir été écouté.
- Composer un fond coche d'office « aucun texte ». La consigne l'interdisait déjà, mais le formulaire posait quand même ses trois champs — et trois champs vides sont une invitation à en remplir un. On obtenait un titre dont on n'avait pas besoin, sur une image qu'on voulait nue.
- La case l'emporte sur les champs déjà remplis : sans quoi l'on ne pourrait revenir en arrière qu'en les vidant un à un. PLUS DE TROIS LIGNES DE TEXTE
- Un menu porte dix lignes, une carte de visite six. Tout entasser dans « mention discrète » les faisait composer en petit et sur une seule ligne. Un bouton ajoute autant de lignes qu'il en faut. LA CONSIGNE SE LIT AVANT DE PARTIR
- La dernière étape la montre, repliée. Déplié d'office, le texte noierait le réglage de format sous quarante lignes d'anglais ; absent, on partirait sans savoir ce qu'on demande.
- C'est le dernier moment où l'on peut corriger : le bouton suivant dépense.
- 1538 contrôles au banc.
AVEC QUOI LE LOGICIEL S'OUVRE : TROIS CONDUITES
- Reprendre l'état de la fermeture — ce que le logiciel faisait, et le défaut : écraser le travail d'hier serait le contraire du service rendu, et changer la conduite de quelqu'un sans le lui demander est le meilleur moyen de lui faire croire à une panne.
- Tirer au hasard — un point de départ neuf chaque matin, qui fait redécouvrir des harmonies oubliées.
- Toujours la même — la palette de la maison, pour qui travaille dans les mêmes tons.
- Réglable séparément pour la palette et pour la couleur de l'échantillon : on peut vouloir retrouver ses couleurs de travail et changer de teinte courante chaque matin, ou l'inverse. LA TYPOGRAPHIE REÇOIT LA MÊME PALETTE
- Ouvrir sur des couleurs que le bloc de texte ignore donnerait deux logiciels dans la même fenêtre : on composerait un visuel avec une palette et sa typographie avec une autre. CE QUI PROTÈGE
- On tire dans la palette, pas dans tout le spectre. Une couleur au hasard parmi seize millions n'aurait rien à voir avec ce qu'on vient d'ouvrir ; prise dans la palette, elle sert de point de départ.
- Une palette imposée qui a disparu ne fait pas ouvrir sur rien : renommée ou supprimée depuis, on retombe sur la première plutôt que de laisser un bloc vide.
- Un champ sans effet est pire qu'un champ absent : le choix de palette et la pastille de couleur ne s'affichent qu'en mode « toujours la même ».
- La fenêtre principale est déjà un choisisseur de couleur. En ouvrir un second dans les réglages serait une pâle copie de ce qui est à deux mètres : la pastille reprend la couleur qu'on vient de composer.
- Une saisie incomplète — « #C » — est ignorée sans être refusée : l'interdire empêcherait d'écrire la suite.
- Rien de tout cela ne fait échouer le démarrage : une ouverture personnalisée impossible laisse le logiciel s'ouvrir sur ce qui était là.
- 1530 contrôles au banc.
LES PASTILLES DE CRÉATION RESTAIENT CACHÉES APRÈS UNE VÉRIFICATION RÉUSSIE
- La clé était refusée au démarrage faute de réseau — un pare-feu qui n'avait pas encore autorisé le logiciel. On la vérifiait ensuite depuis les réglages, elle passait, et rien ne changeait à l'écran.
- Le drapeau de refus restait levé. C'est le pire des états : le problème est corrigé, et l'on ne peut pas le savoir.
- Comparer les clés n'aurait pas suffi — celle du pare-feu autorisé entre-temps n'a pas bougé. La vérification transmet donc son verdict, et il tranche. LA VÉRIFICATION LAISSE LE TEMPS DE RÉPONDRE AU PARE-FEU
- Windows affiche « autoriser cette application ? » et attend une réponse humaine. Vingt secondes n'y suffisent pas : la vérification échouait pendant que la boîte était encore à l'écran.
- Quatre-vingt-dix secondes désormais, le temps de lire, de comprendre et de cliquer. Le lien partagé n'impose plus son propre délai, qui l'aurait emporté sur celui-ci.
- Et on le dit : « si votre pare-feu demande l'autorisation, répondez-lui, l'attente reprend toute seule, inutile de recliquer ». Sans ce mot, on croit à un blocage, on reclique — et le bouton est déjà éteint, d'où le sentiment que rien ne marche. LES DOSSIERS ÉPINGLÉS
- Sans style, une liste garde les couleurs de Windows : un gris pâle sur gris sombre où l'on ne lit plus rien, et où l'on prend son propre contenu pour un texte de substitution. Les lignes sont lisibles, et la sélection se voit — sans quoi l'on retire des dossiers sans savoir lesquels sont pris.
- Une liste vide le dit : un cadre creux se confond avec une liste qui n'a pas fini de charger, et l'on attend quelque chose qui ne viendra pas.
- L'enregistrement se fait tout de suite. Les dossiers épinglés servent à l'explorateur, qui vit dans une autre fenêtre : différer jusqu'à la fermeture des réglages faisait épingler un dossier qui n'apparaissait nulle part.
- 1526 contrôles au banc.
LE MESSAGE D'ERREUR ÉTAIT TRONQUÉ
- « Corrigez-la là, o… » — la dernière ligne se coupait au milieu d'un mot. Sur un message qui annonce une panne, c'est le pire endroit pour perdre du texte.
- Une pile horizontale ne contraint pas la largeur de ses enfants : le texte prenait la place qu'il voulait et débordait du cadre. Une grille à deux colonnes — l'icône au plus juste, le texte sur le reste — force le retour à la ligne au bon endroit.
- La liste occupe désormais toute la largeur : centrée, elle se réduisait au contenu et le texte reprenait sa liberté.
- Texte réduit d'un cinquième, titre compris.
- Le popup se centre sur la fenêtre entière, en hauteur comme en largeur. On visait jusqu'ici le logo d'où il semblait naître, ce qui le posait haut et à gauche — or un message de panne se lit au milieu, là où l'œil est déjà. PLUS UN SEUL AVERTISSEMENT DE COMPILATION
- Un avertissement qu'on laisse passer en appelle dix autres. Au bout d'un mois, la compilation en affiche quinze, on ne les lit plus, et le seizième — celui qui comptait — passe avec les autres.
- Le presse-papiers peut se vider entre deux appels : il vient d'annoncer une image, un autre logiciel a pu la reprendre depuis. C'est une ressource partagée, et rien ne la tient pour nous — le type le dit maintenant.
- Les réglages peuvent manquer quand la colonne d'images se dessine : une liste absente n'est pas une liste vide pour le compilateur.
- Refermer la boîte de choix d'image sans rien prendre était déjà prévu par le test, mais pas par le type.
- Le garde-fou du journal d'API reste en place, silencieux : le retirer ferait écrire ce journal en production le jour où l'on bascule la constante, c'est-à-dire au pire moment.
- Quatre contrôles neufs empêchent ces formes de revenir par recopie.
- 1518 contrôles au banc.
LE MODE APPRENTISSAGE DU THÉSAURUS
- Ce qu'un service rend une fois, on le retrouve pour rien la fois suivante. Un mot juste obtenu du modèle coûte un appel ; le même mot, gardé, ne coûte plus rien et arrive avant qu'on ait cliqué.
- Le mode s'active dans les réglages. Une icône apparaît alors sur chaque mot venu du service : elle le garde, et il rejoindra les propositions dès la séance suivante.
- L'icône ne s'ajoute qu'à ce qui peut être appris. La poser sur un mot du thésaurus du logiciel proposerait de garder ce qui est déjà gardé — et l'on cliquerait sans comprendre pourquoi rien ne change. LE MOT EST GARDÉ AVEC SON CONTEXTE, JAMAIS SEUL
- « Colonnes » n'a pas le même sens sous « Monument » que sous « Composition ». Rangé sans son étape et sans le tag dont il descend, il ressortirait au mauvais endroit — et l'on ne comprendrait pas d'où il vient.
- Le même mot peut donc s'apprendre plusieurs fois, une par contexte. Deux fois au même endroit reste un doublon, et l'on garde le premier.
- Vingt mots par contexte au plus. Au-delà, ce n'est plus un thésaurus mais un vidage : une étape qui propose quarante mots redonne exactement le mur qu'on passe son temps à démonter. Les plus anciens partent — appris dans un autre projet, ils ne valent souvent plus rien.
- Le plus récent revient en premier : l'enterrer sous les mots d'il y a six mois obligerait à dérouler pour retrouver son propre travail. CE QUI PROTÈGE
- Rien ne s'enregistre tout seul. Un thésaurus qui avale ce qui passe se remplit de scories en une semaine, et l'on ne démêle plus ce qu'on a validé de ce qui a glissé dedans. C'est un geste, pas un réflexe du logiciel — et le mode est désactivé par défaut.
- Garder un mot ne le coche pas au passage : sans quoi l'on ferait deux choses d'un seul clic.
- Les réglages disent combien de mots sur combien de contextes : « quarante mots » peut vouloir dire quarante propositions pour une seule étape — un mur — ou deux par étape sur vingt, ce qui est le but.
- « Tout oublier » demande confirmation, à la différence de la suppression d'une fiche : il n'y a pas de fichier de secours derrière, et l'on efface d'un coup un travail accumulé sur des semaines.
- Un fichier absent ou illisible rend un thésaurus vide, jamais une exception.
- 1511 contrôles au banc.
LE CHOIX DU FOURNISSEUR DE MOTS
- Trois options dans les réglages : le modèle de langue déjà configuré, le réseau lexical jeuxdemots, ou aucun.
- Chacun dit ce qu'il vaut ET ce qu'il ne sait pas faire. Le modèle comprend le contexte de la question et propose des mots utiles à CETTE image, au coût d'un appel de texte. Jeuxdemots est gratuit et sans clé, mais il ignore le contexte : il rend des mots proches, pas nécessairement des mots utiles à votre visuel. Trois noms sans explication ne se départagent pas, et l'on choisirait au hasard.
- Le réseau lexical reste offert même sans clé d'API. Exiger la clé du modèle pour un service gratuit priverait de mots ceux qui n'ont pas encore configuré l'API.
- Choisir « aucun » retire le bouton au lieu de le laisser sans effet : le garder pour qu'il annonce ensuite qu'il ne fera rien serait une promesse non tenue. CE QUI RESTE VRAI QUEL QUE SOIT LE CHOIX
- Un seul fournisseur est interrogé, celui qu'on a choisi. Interroger les deux « au cas où » doublerait l'attente pour un résultat qu'on ne saurait pas départager — et ferait payer un appel qu'on n'a pas demandé.
- Les mots des deux sources passent par le même tamis. Jeuxdemots a le sien, mais il ignore ce que l'écran propose déjà, et le doublon passerait pour un défaut d'affichage.
- Un fournisseur inconnu — un fichier de réglages écrit par une version future — retombe sur le premier de la liste, jamais sur rien : une liste vide laisserait sans savoir quoi choisir.
- Le thésaurus du logiciel répond toujours et sans réseau. C'est le rapport entre les deux, et il ne s'inverse jamais.
- 1499 contrôles au banc.
LE MODE AVANCÉ PROLONGE LE SIMPLE, IL NE LE REDIT PAS
- Cinq étapes au lieu de deux. Les trois qui s'ajoutent — de quoi l'image a l'air d'être faite, comment les choses se placent, quelles finitions — n'existent nulle part ailleurs dans le formulaire.
- Reprendre les mêmes questions en plus long serait exactement le défaut qu'on a mis des mois à corriger.
- Vingt-quatre factures — argentique, sérigraphie, papier découpé, vitrail —, vingt compositions et seize finitions.
- Basculer ne déplace pas ce qu'on regardait : les étapes du simple sont reprises telles quelles, dans le même ordre, et les trois autres viennent après. LE DOSAGE SUIT LE MODE
- Trois vagues d'emblée en avancé, une seule en simple. Celui qui sait ce qu'il cherche préfère parcourir trente propositions que cliquer trois fois « en montrer plus » — et c'est bien pour cela qu'il a basculé.
- Dix choix par étape en avancé, trois en simple.
- Le retrait passe avant le plafond, et ce n'est pas un hasard. Dix tags retenus en avancé dépassent celui du simple : en testant le plafond d'abord, on ne pourrait plus les décocher après avoir rebasculé — enfermé dans un choix qu'on ne peut ni garder ni défaire. Le plafond ne régit que les ajouts.
- Le mode avancé ne prolonge que des étapes existantes : il ne comble pas un vide, il approfondit ce qui est déjà là.
- 1492 contrôles au banc.
LES CENT VINGT-SIX SUPPORTS POSENT LEURS PROPRES QUESTIONS
- Les sept familles qui retombaient encore sur le formulaire ordinaire ont désormais les leurs. Plus un seul support ne pose une question hors sujet.
- La restauration demande le genre de maison : bistrot, gastronomique, salon de thé, bar à vins. Un menu ne se décrit pas par une activité mais par une maison — le bistrot de quartier et la table gastronomique servent tous deux à manger, et n'ont pas une carte qui se ressemble.
- L'éditorial demande le genre de l'ouvrage : une couverture annonce un genre avant d'annoncer un titre, et c'est ce qui fait qu'on prend un livre en main ou qu'on passe devant.
- Le textile et les objets demandent ce que l'objet doit porter : logo seul, slogan, mascotte, motif répété. Sur un tee-shirt, le motif EST le sujet — demander le métier de celui qui le commande ne dit rien de ce qu'il faut dessiner.
- Le commerce demande l'argument : prix barré, édition limitée, livraison offerte. Une PLV existe pour faire acheter maintenant, et l'argument est ce qu'on lit à trois mètres.
- Les documents professionnels demandent leur tenue — sobre, aéré, technique — et une seule question suffit : un CV, un devis, un organigramme n'ont pas de décor. Ce sont des documents qu'on lit, pas des images qu'on regarde.
- La photo demande où se passe la scène, et reprend le thésaurus des fonds. CE QUE LE BANC VÉRIFIE MAINTENANT
- Tous les supports, sans exception — le seuil de quatre-vingts n'avait plus de sens et aurait laissé passer une régression de quarante.
- Que les familles posent des questions réellement différentes : deux familles au même intitulé signeraient un aiguillage qui retombe sur la première branche venue.
- Que les clés citées dans les contrôles existent au catalogue. C'est la quatrième fois que ce piège se referme sur moi ; il ne le fera plus en silence.
- Le repli sur le formulaire ordinaire reste éprouvé, bien qu'il ne serve plus aujourd'hui : il servira au premier support d'une famille neuve, et le retirer reviendrait à découvrir qu'il ne marche plus le jour où l'on en a besoin.
- 1485 contrôles au banc.
LE THÉSAURUS COUVRE LES FAMILLES COURANTES
- Chaque famille pose la question qui la concerne. Une affiche annonce quelque chose, un logo évoque un caractère, une carte porte des lignes — trois questions différentes pour trois objets différents.
- Affiches, flyers, bandeaux, signalétique, événements demandent désormais « Qu'annoncez-vous ? » : dix occasions — concert, vente, ouverture, fête, sport, culture, recrutement, information, restauration, promotion — dont presque toutes descendent d'un second étage. « Concert » sans « rock » ni « jazz » ne guiderait pas plus qu'un champ vide.
- Les logos demandent ce que la marque doit évoquer : artisanal, précis, chaleureux, robuste… Un logo ne se décrit pas par une scène mais par un caractère — lui demander où placer le sujet n'aurait aucun sens, il n'y a pas de décor.
- Les produits demandent où on les met en scène, et reprennent le thésaurus des fonds : c'est le décor qui change tout.
- Quatre-vingt-six supports sur cent vingt-six posent maintenant leurs propres questions. Les autres retombent sur le formulaire ordinaire, ce qui reste correct — mais le chiffre est mesuré par le banc, pour qu'on sache où l'on en est plutôt que de le supposer.
- Aucune étape n'est vide : un titre qui n'ouvrirait aucun tag laisserait un écran blanc sous une question.
- 1482 contrôles au banc.
« CHERCHER D'AUTRES MOTS » EST BRANCHÉ
- Un bouton par étage demande au modèle des mots proches du dernier tag retenu, et les ajoute aux propositions.
- Il n'apparaît qu'une fois un tag coché. « Des mots proches de quoi ? » — sans choix, la question n'a pas de sujet, et l'on rendrait des généralités.
- Les mots trouvés s'ajoutent, ils ne remplacent rien. Remplacer ferait disparaître ce que l'on regardait à l'instant même où l'on demande à en voir davantage.
- Le tamis s'applique aussi ici : un modèle rend parfois des phrases malgré la consigne, ou répète ce qu'on propose déjà — et deux pastilles pour un seul mot passeraient pour un défaut d'affichage. CE QUI SE PASSE QUAND ÇA NE MARCHE PAS
- Le thésaurus local reste affiché quoi qu'il arrive. Un service qui ne répond pas ne doit rien retirer de l'écran : on le dit dans la barre d'état, et les tags déjà là suffisent à continuer.
- Une réponse sans mot neuf le dit aussi, plutôt que de laisser croire à une panne : « aucun mot neuf à proposer » est une information, pas un échec.
- Vingt secondes d'attente au plus. Chercher des mots est un agrément ; faire patienter une minute punirait celui qui l'a demandé.
- La consigne de recherche vit à un seul endroit : deux consignes pour la même demande finiraient par diverger.
- 1476 contrôles au banc.
L'ENRICHISSEMENT DU THÉSAURUS (fondations)
- Le thésaurus local répond toujours ; un service répond parfois mieux. C'est tout le rapport entre les deux, et il ne doit jamais s'inverser : un écran qui attend le réseau pour se remplir est un écran vide dans un train.
- Plusieurs fournisseurs, parce qu'aucun n'est sûr. Un service gratuit ferme, un modèle change de nom, une clé expire. Le logiciel demande « des mots proches de plage » et se moque de qui répond — c'est la seule façon d'en changer sans toucher à l'écran. Deux sont prévus : le réseau lexical jeuxdemots, et le modèle de langue déjà configuré. CE QUI REVIENT N'EST JAMAIS CRU SUR PAROLE
- Un service interrogé sur « plage » peut rendre « plagiat » : la proximité de forme n'est pas celle du sens. Tout passe par un tamis avant d'atteindre l'écran.
- Un mot trop court ou trop long n'est pas un tag : « la » ne dit rien, et « personne assise sur un banc en bois » n'est plus un mot mais une phrase — elle déborderait de sa pastille sans se lire.
- Les identifiants, scores et nœuds techniques du réseau lexical sont écartés.
- On écarte ce qu'on propose déjà : le doublon ferait deux pastilles pour un seul mot, et l'on croirait à un défaut d'affichage.
- La casse est harmonisée avec les tags locaux : deux casses côte à côte se voient.
- Une vague, pas plus. Un service lexical rend volontiers deux cents associations ; les verser toutes ferait exactement le mur qu'on passe son temps à éviter. LES DÉTAILS QUI COMPTENT
- Dix secondes d'attente au plus : un enrichissement est un agrément, et faire patienter une minute pour des mots facultatifs punirait celui qui a un mauvais réseau.
- La consigne donnée au modèle demande des mots, pas des phrases, et des choses qu'on voit — un modèle laissé libre rend « une plage de sable fin au coucher du soleil », joli et inutilisable sur une pastille.
- Numéros, tirets et puces sont retirés de ses réponses : les interdire ne suffit pas, il faut les nettoyer.
- Un vidage vide ou illisible ne rend rien, jamais une exception.
- 1470 contrôles au banc.
LES ÉTAPES SUIVENT ENFIN L'INTENTION
- Cliquer « un fond pour mon image » ouvre désormais « Où placez-vous votre sujet ? » et « Quelle atmosphère ? », avec leurs tags — plus jamais « ce que le visiteur doit faire ».
- Cette question-là n'était pas seulement hors sujet : c'est une question à laquelle on répond n'importe quoi, et le modèle composait d'après cette réponse.
- Une carte de visite demande ce qui doit y figurer : nom, téléphone, code QR, zone d'intervention. Une liste qu'on a déjà en tête, pas une réflexion à mener.
- Sans étapes propres, le formulaire ordinaire reprend la main — mieux vaut trois questions générales qu'une liste de tags qui ne va nulle part. COMMENT LES TAGS SE COMPORTENT
- Dix par vague, les suivants sur demande. Le bouton « en montrer plus » ne s'affiche que s'il ouvre réellement quelque chose : offert alors que tout est montré, il ferait cliquer dans le vide.
- Seuls les tags retenus ouvrent l'étage suivant. Afficher les détails de tous les fonds ferait deux cents boutons pour une question qui en demande trois. Trois étages au plus.
- Trois choix par étage en mode simple, dix en avancé. Le plafond se fait sentir, il ne se subit pas : refuser en silence donnerait le sentiment d'un clic perdu, alors on le dit — et l'on rappelle que le mode avancé en permet davantage.
- On peut toujours écrire. Les tags couvrent le courant, jamais le particulier : celui qui veut « devant la boutique de mon père » doit pouvoir le dire, sinon on l'a enfermé dans nos catégories.
- Les tags alimentent le champ que la consigne lit déjà. Un champ propre aux tags aurait fait deux chemins pour la même information, et l'un des deux aurait fini par ne plus être lu.
- Un contrôle éprouve que ce qu'ils disent part réellement dans la consigne — sur le texte produit, pas sur le code.
- 1461 contrôles au banc.
LE THÉSAURUS : PROPOSER PLUTÔT QUE FAIRE TAPER (fondations)
- Le but est de limiter la frappe au clavier. Celui qui doit décrire son fond en toutes lettres écrit trois mots et s'arrête ; celui à qui l'on propose « plage », puis « palmiers », puis « transat », en choisit trois en trois clics et obtient une consigne plus riche que ce qu'il aurait tapé.
- Dix familles de fonds, douze atmosphères, douze lignes de carte de visite. L'ordre est celui de la fréquence, pas de l'alphabet : celui qui cherche un fond de produit veut « studio » en premier, pas entre « savane » et « ville ».
- Trois étages, et pas un de plus : le général, le détail, l'accessoire. Un quatrième n'ajoute que de la fatigue — à ce niveau de finesse, on tape plus vite qu'on ne cherche.
- Le mot affiché et ce qui part dans la consigne sont deux choses : « Plage » se lit bien sur un bouton, « une plage de sable » se lit bien dans une consigne. Les tags retenus forment une phrase, jamais une suite de mots — une suite de mots ressemble à une recherche, et le modèle la traite comme telle. LE DOSAGE
- Dix tags par vague, les suivants à la demande. Trente alignés reconstitueraient le mur qu'on veut éviter : on ne les lit pas, on en prend un au hasard.
- Trois tags retenus en mode simple, dix en avancé.
- On sait s'il en reste à découvrir, sans quoi le bouton « en montrer plus » resterait offert alors qu'il n'ouvre rien. CHAQUE INTENTION N'OUVRE QUE CE QUI LA CONCERNE
- « Composer un fond » ouvre où placer le sujet et quelle atmosphère — plus jamais « ce que le visiteur doit faire ». Cette question-là n'est pas seulement inutile : c'est une question à laquelle on répond n'importe quoi, et le modèle compose d'après cette réponse.
- Une carte de visite demande ce qui doit y figurer, pas une activité : la première question appelle une liste qu'on a déjà en tête, la seconde une réflexion.
- Un support sans étapes propres laisse la main au formulaire ordinaire : mieux vaut cela qu'une liste de tags hors sujet.
- Le thésaurus est local, et c'est un choix. Une API tierce enrichira quand le réseau répond, mais ne doit jamais conditionner un écran qui se remplit : un logiciel portable qu'on emporte sur une clé doit marcher dans un train.
- 1454 contrôles au banc.
LA PALETTE PASSE À GAUCHE, EN COLONNE
- C'est la source du visuel, et le travail se lit de gauche à droite : la placer à l'arrivée, une fois tout décidé, ne disait plus d'où venait la couleur.
- En colonne plutôt qu'en ruban : elle borde le formulaire sans lui voler de largeur, et l'on garde les couleurs sous les yeux pendant qu'on remplit. Passé sa hauteur, une seconde colonne s'ouvre à côté plutôt que d'allonger la première au-delà de l'écran.
- Cinq couleurs en mode simple, toutes en mode avancé. Au-delà de cinq, on ne compose plus, on pioche — et le visuel perd l'unité qui fait qu'on le reconnaît. Le mode avancé lève la limite pour qui sait ce qu'il fait.
- Ce qui est mis de côté est annoncé : une palette tronquée en silence ferait croire que les couleurs ont été perdues, alors qu'elles sont là.
- Changer de mode redessine la palette aussitôt. Sans cela, il aurait fallu rouvrir la fenêtre pour voir les couleurs cachées — c'est-à-dire ne jamais les voir, puisqu'on bascule justement pour cela.
- 1443 contrôles au banc.
LE BOUTON « DEPUIS UNE IMAGE… » PLANTAIT À CHAQUE CLIC
- J'avais inventé un nom de ressource. « FondBrush » n'existe dans aucun thème — la vraie clé d'un fond de fenêtre est « CoqueUnieBrush », employée partout ailleurs.
- Rien ne le signalait à la compilation : une ressource se cherche au moment où la fenêtre s'ouvre. L'exception tombait donc au clic, et le « cast invalide » qui suivait n'en était que la conséquence — on tentait de convertir en pinceau ce que la recherche n'avait pas trouvé.
- Un contrôle balaie désormais tout le code et confronte chaque nom de ressource aux 188 clés des thèmes. Le balayage n'en a trouvé qu'une fautive ; il en trouvera la prochaine avant vous. LA BARRE DU BAS
- Onze libellés alignés dans la même graisse ne se lisent pas. Rien n'y distinguait ce qui fait avancer de ce qui ouvre un outil ; l'œil devait relire chaque mot pour retrouver ce qu'il cherchait la seconde d'avant.
- Trois choses y remédient : une icône qui donne une prise avant la lecture, un fond au survol qui montre la cible, et une couleur réservée à ce qui engage.
- Seul « Suivant » porte l'accent — c'est le seul qui dépense. Si tout est accentué, plus rien ne l'est : une barre entièrement colorée se lit aussi mal qu'une barre entièrement grise.
- Un bouton sans icône ne réserve pas sa place : sans cela, vingt et un points de vide se glisseraient devant son libellé.
- 1438 contrôles au banc.
PARCOURIR, LÀ OÙ ON LE CHERCHE
- « Parcourir un autre dossier… » figure désormais dans la liste « Aller à… », juste après son intitulé.
- C'est là qu'on l'attend : « Aller à… » annonce un choix de destination. Ouvrir la liste pour n'y trouver que des dossiers déjà connus, et devoir la refermer pour chercher ailleurs, est un aller-retour qu'on ne comprend pas.
- Le bouton du bas reste : il sert quand la liste est déjà refermée.
- La liste revient sur son intitulé avant d'ouvrir la boîte, sans quoi « Parcourir… » resterait affiché comme si c'était le dossier courant — et un second clic dessus ne déclencherait rien. LES DOSSIERS ÉPINGLÉS SE GÈRENT DEPUIS LES RÉGLAGES
- On les posait jusqu'ici depuis l'explorateur, une étoile à la fois, et l'on ne pouvait les retirer que de la même façon — en retournant dans chacun. Une liste les montre tous.
- La boîte se rouvre tant qu'on ajoute. Celui qui vient épingler ses dossiers en épingle rarement un seul ; rouvrir les réglages entre chaque serait trois clics pour rien, et l'on renoncerait au deuxième.
- Ajouter un dossier déjà épinglé ne le décroche pas. La bascule qui sert à l'étoile retire ce qui est déjà là : appliquée telle quelle, elle aurait supprimé le dossier qu'on venait de choisir pour l'ajouter.
- Le retrait accepte plusieurs sélections d'un coup ; la sélection est copiée avant d'être traitée, faute de quoi parcourir la liste en la vidant ferait sauter un élément sur deux.
- Un dossier disparu depuis la dernière séance est écarté à l'affichage : un chemin mort donnerait une erreur au clic, là où l'absence ne coûte rien.
- 1437 contrôles au banc.
LES FIGURES D'HARMONIE, ENFIN LISIBLES
- Les points faisaient 1,9 de rayon dans un dessin de 24 : ils se touchaient et formaient un pâté où la figure disparaissait. Ils sont ramenés à 1,05, et les polygones portés de 4,4 à 7,6 de rayon.
- C'est le contraste entre les deux qui rend la forme lisible : un triangle ou un carré doit se reconnaître d'un coup d'œil, avant même qu'on ait lu l'infobulle.
- Tout est calculé sur le cercle trigonométrique, zéro degré en haut et sens horaire — comme on lit une roue chromatique.
- « Analogue » passe de ±32° à ±55° avec ses rayons tracés depuis le centre : à 32°, les trois points se tassaient en haut et l'éventail ne se lisait plus. « Complémentaire divisée » s'ouvre de 150/210 à 140/220 : si pointue, elle se confondait avec un simple « V » au lieu de dire ce qu'elle est.
- Les figures ont été rendues et regardées, pas seulement calculées. L'ONGLET ACTIF NE PORTE PLUS DE FILET SOUS LUI
- Le trait du dessous le séparait du contenu, alors qu'ils forment une seule pièce — c'est même tout ce qui distingue un onglet actif d'un bouton.
- Il descend d'un point pour recouvrir le filet du corps : son fond opaque efface le segment, le bandeau étant déjà au-dessus. Les inactifs, eux, gardent leur bordure : c'est la ligne du bandeau qui court sous eux.
- Corrigé dans les deux gabarits — celui de la fenêtre et celui, local, des sélecteurs. LA POIGNÉE DE DÉPLACEMENT DEVIENT UNE LANGUETTE
- Isolée à gauche du bandeau, elle flottait sans appartenir à rien : un dessin posé dans le vide à côté d'une rangée bien tenue. Elle prend la silhouette d'un onglet et se rattache à la barre.
- Elle garde son filet du dessous, à la différence de l'onglet actif : elle n'ouvre aucun contenu, elle ne fait donc pas corps avec le bloc. C'est exactement ce que ce trait raconte. UN CONTRÔLE QUI PROTÉGEAIT LA MAUVAISE CHOSE
- Le rayon de 4,4 était imposé par un contrôle dont le commentaire disait la vraie raison : à 6, les pastilles débordaient du cadre. C'était vrai avec des points de 1,9 ; les points ayant maigri, la contrainte tombe.
- La propriété réelle — rien ne déborde du carré de 24 — est désormais éprouvée pour elle-même, épaisseur de trait comprise, plutôt que devinée à travers un rayon. Il reste 2,5 points de marge.
- 1430 contrôles au banc.
UNE PALETTE D'OUVERTURE, TIRÉE AU HASARD
- Un bloc de gris au démarrage ne donne envie de rien. Une palette déjà posée, différente chaque matin, propose un point de départ au lieu d'une page blanche — et fait redécouvrir des harmonies enregistrées qu'on avait oubliées. TROIS PRÉCAUTIONS
- La palette de la dernière séance prime. Les réglages la restaurent au chargement : écraser au hasard le travail d'hier serait exactement le contraire du service rendu — on rouvre le logiciel pour retrouver ce qu'on avait, pas pour le perdre. Le tirage ne remplace donc qu'un bloc resté vide.
- Aucun journal, aucune annonce : ce n'est pas une action de l'utilisateur. L'inscrire dans les actions annulables ferait qu'un premier « annuler » défasse quelque chose qu'on n'a pas fait, et l'annoncer dans la barre d'état écraserait un message de démarrage qui, lui, compte.
- La bibliothèque est semée si elle est vide, sans quoi un premier lancement n'aurait rien à tirer et l'on ouvrirait sur le gris qu'on voulait éviter. Un tirage impossible n'empêche jamais le logiciel de s'ouvrir : une palette d'ouverture n'est qu'un agrément.
- 1422 contrôles au banc.
RIEN NE SORT DU DOSSIER DU LOGICIEL
- Trois écritures partaient encore dans le dossier temporaire du système : les aperçus et fichiers de séance du canevas, les images collées depuis le presse-papiers, et les images extraites d'une séance rouverte. Deux de ces trois venaient d'être ajoutées dans la journée — c'est le genre de dette qui s'installe vite.
- Un fichier écrit dans le TEMP est un fichier qu'on ne retrouve pas en emportant la clé — et pire, qu'un nettoyeur de disque efface sans prévenir, un soir où l'on croyait ranger. Une séance de travail disparue entre deux ouvertures est difficile à comprendre et impossible à récupérer.
- C'est aussi ce qui rend le logiciel effaçable d'un geste : on supprime le dossier, il ne reste rien ailleurs. OÙ TOUT VIT DÉSORMAIS
- cache-api — les réponses déjà obtenues, rejouées sans frais.
- Bibliotek/Prompts — les consignes et leurs images.
- Bibliotek/perso/images — vos images déposées et collées, ou le dossier que vous avez choisi.
- Bibliotek/seances — les canevas et leurs aperçus.
- polices — les polices téléchargées.
- La racine se calcule à un seul endroit. Deux calculs finiraient par désigner deux dossiers, et l'on chercherait ses séances dans celui où elles ne sont pas. DEUX EXCEPTIONS, ET ELLES SONT JUSTIFIÉES
- Le journal peut atterrir dans le dossier temporaire, mais en dernier recours seulement : quand le dossier du logiciel est inaccessible. Un journal difficile à trouver reste infiniment préférable à pas de journal du tout.
- L'installation d'une police écrit là où Windows va les chercher. Ce n'est pas une donnée de travail, c'est une action système délibérée — et l'écrire ailleurs reviendrait à ne pas installer la police.
- Un contrôle interdit désormais toute nouvelle écriture hors du dossier, pour que cette dette ne se réinstalle pas.
- 1417 contrôles au banc.
UNE JUSTIFICATION FAUSSE, CORRIGÉE
- Le réglage du dossier d'images invoquait « un logiciel installé dans Program Files n'a pas le droit d'y écrire ». C'est faux : Caméléonardo est portable, il ne s'installe pas. Un commentaire qui invoque un problème inexistant est pire qu'un commentaire absent — il fait raisonner de travers celui qui le lit ensuite, et défendre une contrainte qui n'existe pas.
- La vraie raison du réglage tient en une phrase : ranger ses images là où elles sont déjà. Celui qui a une photothèque sur un disque de travail ne veut pas en faire une seconde copie à côté du logiciel. ET LA CONSÉQUENCE QUI ALLAIT AVEC
- Puisque le logiciel est portable, un chemin absolu casse cette portabilité : il s'emporte sur une clé, le dossier saisi reste sur la machine où on l'a choisi.
- Un avertissement s'affiche dès qu'un dossier est renseigné. Le repli existait déjà — les images repartent à côté du logiciel si le dossier est introuvable — mais le découvrir en cherchant ses fichiers vaut moins que le lire dans les réglages.
- 1414 contrôles au banc.
LA BIBLIOTHÈQUE SE DÉPLOIE À LA PUBLICATION
- Les deux scripts décompressent Bibliotek.zip à la racine du binaire publié. L'archive est cherchée à côté de la clé, puis auprès du script : ce sont les deux endroits où elle se trouve en pratique, et chercher plus loin prendrait le risque de déterrer une archive périmée.
- PowerShell plutôt qu'un outil tiers : il est présent sur toute installation de Windows depuis dix ans, là où 7-Zip demanderait une installation que le script ne peut pas garantir.
- Son absence n'est pas une erreur : le logiciel fonctionne sans elle, seule la fenêtre Bibliothèque reste vide. On le dit et l'on continue — faire échouer une publication dont le binaire est bon serait disproportionné.
- Le filet du script automatique ne s'arme que si le dossier manque : redécompresser deux cents mébioctets à chaque publication ajouterait plusieurs secondes à un script dont toute la raison d'être est d'aller vite.
- Le dossier personnel est créé dès la publication, ce qui évite qu'il ait à l'être au premier dépôt, quand les droits d'écriture peuvent manquer. LE DOSSIER DE VOS IMAGES EST PARAMÉTRABLE
- Nouveau réglage : où atterrissent les images qu'on dépose dans l'explorateur.
- Vide signifie « à côté du logiciel », dans Bibliotek/perso/images. C'est le bon défaut : tout reste ensemble, et l'on peut déplacer le dossier entier sans rien casser. Mais un logiciel installé dans Program Files n'a pas le droit d'y écrire, et celui qui range ses images sur un disque de travail veut les y garder.
- Un chemin relatif est ignoré. Saisi par mégarde, il produirait un dossier au hasard, relatif au répertoire courant du processus — lequel change selon la façon dont le logiciel a été lancé.
- Un dossier choisi qu'on ne peut pas créer — disque absent, droits refusés — ne fait pas échouer le dépôt : on retombe sur le dossier d'à côté.
- Un bouton « Par défaut » vide le champ : vider EST le réglage par défaut, ce qui n'a rien d'évident, et un bouton le dit mieux qu'une phrase d'aide.
- 1412 contrôles au banc.
LES PARAMÈTRES DISENT L'ÉTAT DE LA BIBLIOTHÈQUE
- Un dossier vide ou absent ne se devine pas. Sans ce bloc, on ouvrait la bibliothèque, on la trouvait vide, et l'on cherchait ce qu'on avait mal fait — alors qu'il manquait simplement un fichier, et qu'il fallait savoir où le poser.
- Le nombre de consignes chargées, ou le motif de l'absence, et le geste à faire : un message qui constate sans indiquer la suite laisse aussi démuni.
- Le chemin complet est affiché, pas le chemin relatif : « déposez dans Bibliotek/Prompts » n'aide pas celui qui ne sait pas d'où part ce chemin. Deux boutons : ouvrir le dossier — qui le crée s'il manque, car proposer de l'ouvrir puis échouer serait la pire des réponses — et relire après y avoir déposé. ÉDITER LA BIBLIOTHÈQUE, EN MODE DÉVELOPPEMENT
- Un formulaire d'ajout et de modification, et un bouton de suppression en haut à droite de la fiche dépliée, à l'opposé de « créer à partir de » qui est en bas : les deux gestes n'ont rien à voir, et les voisiner ferait cliquer l'un pour l'autre. Pas de confirmation, comme demandé.
- Réservé au mode développement : en usage normal, la bibliothèque est une ressource qu'on lit. Un formulaire ouvert à tous ferait modifier par accident une collection qu'on a mis des nuits à constituer.
- Le fichier précédent est gardé avant chaque écriture, sous .precedent. Cinq cents fiches écrasées par une écriture ratée ne sont pas une perte qu'on répare : c'est plusieurs nuits. C'est aussi ce qui rend la confirmation superflue. LE NUAGE DE RUBRIQUES
- Les plus employées en tête et en plus gros. Vingt-sept rubriques dans une liste déroulante se parcourent une par une ; en nuage, on voit d'un coup où sa fiche a sa place — et l'on évite d'inventer une vingt-huitième rubrique qui doublonne avec une existante.
- La taille reste bornée entre 10 et 15 points : au-delà, les rares deviennent illisibles et le nuage ne se lit plus d'un coup.
- L'identifiant d'une fiche neuve suit le plus grand connu, jamais le nombre de fiches : une suppression laisserait un trou, et l'on réattribuerait son identifiant à une autre — ce qui casserait les renvois entre fiches.
- Une fiche sans consigne ni titre est refusée : une entrée vide encombrerait la collection sans jamais servir.
- 1403 contrôles au banc.
LE TUTORIEL, EN ACCORDÉONS IMBRIQUÉS
- Une icône « ? » à droite déplie une colonne symétrique de l'explorateur. On peut garder les deux ouverts : suivre une explication en travaillant est précisément ce qu'une fenêtre modale rend impossible — on la ferme pour agir, et l'on a déjà oublié ce qu'on venait de lire.
- Ouvrir un bloc referme ses frères, jamais ses parents. La règle paraît évidente et ne l'est pas : c'est la seconde moitié qui fait tout le travail. Un accordéon qui refermerait son parent en ouvrant un enfant se replierait sur lui-même au premier clic, et l'on ne pourrait jamais descendre d'un niveau.
- Refermer un bloc referme sa descendance : rouvrir un parent pour retrouver trois sous-blocs ouverts qu'on avait oubliés surprend plus qu'autre chose.
- On peut viser un sous-bloc directement : le chemin s'ouvre tout seul.
- La logique vit dans un module éprouvé, séparée de l'affichage. Un arbre de panneaux qui s'ouvrent et se ferment est exactement le genre de chose qui marche à l'essai et se casse au troisième niveau.
- Les sous-blocs sont bâtis par le même code, récursivement : une seconde implémentation aurait divergé au premier changement. Le clic est arrêté au bloc visé, sans quoi il remonterait au parent qui se refermerait aussitôt. DES SCHÉMAS, PAS UN MUR DE TEXTE
- Un tutoriel qui n'est qu'un mur de texte se lit comme une notice, c'est-à-dire jamais. Cinq schémas dessinés : le flux de la consigne, les trois chemins d'entrée, les rôles de la palette, les trois lignes d'un imprimé, et la filiation du canevas.
- Ils sont tracés au même vocabulaire que les icônes — traits fins, angles arrondis, une seule couleur d'accent : un dessin qui jure avec le reste se lit comme une pièce rapportée.
- Un schéma inconnu ne dessine rien plutôt que de faire tomber la vue.
- 1393 contrôles au banc.
UN MÉCANISME D'AIDE UNIQUE
- Une pastille discrète accroche l'aide, qui se déplie sous l'élément qu'elle explique. Repliée par défaut, elle ne coûte aucune place à ceux qui savent déjà.
- Les textes vivent à une seule place, séparés du code qui les affiche : une explication écrite au milieu d'une méthode d'interface n'est jamais relue, jamais corrigée, et finit par mentir sur ce que le logiciel fait. Quatorze aides rassemblées se comparent d'un coup, et l'on voit tout de suite laquelle manque.
- Le ton se voit avant d'être lu : « ? » pour ce qui explique, « ! » pour ce qui coûte ou se perd. Un avertissement qui ressemble à une explication ne sera pas ouvert par qui en aurait le plus besoin.
- Sans texte connu, aucune pastille : une pastille qui déplie du blanc donnerait le sentiment que l'aide est cassée.
- Les sections du mode avancé la reçoivent par leur en-tête — un seul endroit à modifier plutôt que quinze pastilles posées à la main, qui auraient fini par en oublier une. Les boutons de la barre du bas l'ouvrent au clic droit : l'infobulle dit l'essentiel, le reste attend d'être demandé. LES TROIS MANQUES RELEVÉS PAR L'AUDIT
- La séance survit à la fermeture. Un canevas qui meurt en fermant ne sert qu'une séance ; or c'est en revenant sur un travail d'hier qu'on cherche « d'où sortait cette image » — sur le moment, on s'en souvient encore. Le fichier est écrit après chaque image, jamais à la fermeture : un logiciel fermé de travers ne sauverait rien, et c'est justement cette séance-là qu'on veut retrouver. Un fichier illisible rend un canevas vide, jamais une exception.
- Chaque nœud porte ce qu'il a coûté, et sa lignée le total. Une dépense globale ne dit pas ce qui l'a creusée : on sait qu'on a dépensé trois euros, pas que deux sont partis dans une piste abandonnée au troisième essai. « Cette piste a coûté 0,40 € » se lit au survol, là où l'on décide de relancer.
- Le journal enregistre les reprises, plus seulement la production, avec leur heure. Une image reprise trois fois raconte enfin son histoire.
- 1376 contrôles au banc.
AUDIT : DEUX DÉFAUTS TROUVÉS ET CORRIGÉS
- Le dossier des aperçus du canevas grossissait sans fin. Chaque image produite y laissait un à deux mébioctets, sans que rien ne les efface jamais : sur quelques semaines de travail, des giga-octets dans un dossier dont personne ne connaît l'existence. Le ménage se fait désormais à l'ouverture — pas à la fermeture, car un logiciel fermé de travers ne ferait jamais le ménage, et c'est précisément quand il se ferme mal qu'il laisse le plus de traces.
- Une réponse d'erreur inattendue s'affichait en clair, cent soixante caractères bruts. C'est exactement le défaut relevé chez le service concurrent : des balises HTML qui ne disent rien de ce qu'il faut faire et donnent le sentiment que le logiciel est cassé. On extrait maintenant le message que le service met dans son JSON ; à défaut, on le journalise et l'on dit qu'on ne sait pas — ce qui est vrai, et plus utile qu'un vidage.
- Le dossier des aperçus est calculé à un seul endroit : deux chemins auraient fini par diverger, et le ménage aurait porté sur un dossier que personne ne remplit. AUDIT : CE QUI S'EST RÉVÉLÉ SAIN
- La palette atteint bien l'API, rôle par rôle, avec sa contrainte d'exclusivité, et rien n'est envoyé quand elle est vide.
- La bibliothèque absente, vide ou illisible ne lève aucune exception : les quatre cas rendent une collection vide et un message qui dit quoi faire.
- Le cache est symétrique : lu avant l'appel, écrit après, et seulement sur une image réellement obtenue. L'empreinte couvre modèle, consigne, rapport, résolution, images jointes et graine.
- 1364 contrôles au banc.
UNE DEMANDE, PLUSIEURS SUPPORTS (D53, close)
- Le mode avancé propose de décliner la même demande sur d'autres supports : bannière, publication carrée, story, affiche, flyer, couverture de profil.
- Une campagne n'est jamais une image, c'est une famille. On veut le carré pour les réseaux, le bandeau pour le site, l'affiche pour la vitrine — et refaire le formulaire trois fois pour la même idée est précisément ce qui fait qu'on ne le fait pas, et qu'on se contente d'une image recadrée à la main.
- La consigne est réassemblée pour chaque support, jamais recopiée. Un bandeau de 1200 sur 400 ne se compose pas comme une affiche : envoyer la même consigne aux deux donnerait un sujet centré dans un cadre où il n'a rien à faire, et l'on aurait payé pour un recadrage qu'on aurait fait soi-même en moins de temps. CE QUI A ÉTÉ PESÉ
- Les déclinaisons viennent après la série principale : on voit d'abord ce que donne le support qu'on visait, et si c'est raté, on interrompt sans avoir payé les trois autres.
- Une consigne écrite à la main ne se décline pas. Faite pour un support précis, la renvoyer telle quelle aux autres reviendrait à demander une affiche en réclamant un bandeau. On le dit plutôt que de produire trois images fausses.
- Le support d'origine est toujours rétabli, y compris en cas d'interruption : le laisser sur la dernière déclinaison ferait repartir la demande suivante sur un support qu'on n'a pas choisi.
- Le coût annoncé sur le bouton compte les déclinaisons. Sans cela, il dirait le prix d'une image là où l'on va en payer quatre.
- Chaque déclinaison entre au canevas avec sa propre filiation, comme le reste.
- Deux contrôles existants sont tombés en cours de route, et tous deux avaient raison : un chemin de production de plus à compter, et un site de facturation de plus. Ils comptaient juste, c'est le logiciel qui avait changé.
- 1359 contrôles au banc.
LA CONSIGNE PEUT PARTIR EN ANGLAIS (D52, close)
- Nouvelle case dans les réglages : « Traduire la consigne en anglais avant de l'envoyer ». On écrit en français, le modèle reçoit de l'anglais.
- Les modèles d'image y sont nettement plus fidèles. Ce n'est pas une impression : sur les huit cent quarante-neuf consignes relevées dans une bibliothèque publique, l'anglais domine largement, et les versions traduites par le site lui-même donnent des résultats plus approximatifs que leur original. Traduire soi-même est donc le bon geste — mais c'est un geste de plus, et personne ne l'accomplit à chaque essai.
- La difficulté n'est pas la langue, c'est le registre. Une consigne d'image n'est pas de la prose : c'est un vocabulaire de studio. Une traduction littérale rendrait un anglais correct et une consigne molle.
- Ce qui ne se traduit pas est énuméré : les textes à faire figurer sur l'image, les noms propres, les raisons sociales, les codes couleur, les dimensions et les marqueurs. Sans cette liste, le nom d'un client ou le titre d'une affiche reviendrait en anglais sur l'image.
- La traduction se fait avant tout le reste : plus tard, deux consignes circuleraient dans le logiciel — celle qu'on croit avoir envoyée et celle qui est partie. Elle est annulable comme le reste.
- En cas d'échec, la consigne d'origine part telle quelle et l'on dit pourquoi : une traduction ratée ne doit pas envoyer une consigne vide, qui rendrait n'importe quoi sans qu'on comprenne.
- Désactivé par défaut : c'est un appel de plus, et l'annoncer vaut mieux que de le facturer en douce à qui ne l'a pas demandé. LE COÛT S'ANNONCE SUR LE BOUTON
- Le bouton « Créer » porte désormais ce que le clic va coûter, traduction comprise. Une dépense qu'on découvre après coup est une dépense qu'on regrette ; l'annoncer avant ne coûte rien et permet de réduire le nombre de variantes en connaissance de cause.
- Sans grille tarifaire connue pour le modèle, aucun chiffre n'est avancé : une estimation inventée serait pire que pas d'estimation, parce qu'on s'y fierait.
- 1351 contrôles au banc.
UN RÉGLAGE SANS EFFET EST PIRE QU'UN RÉGLAGE ABSENT (D04, close)
- Le formulaire proposait la lumière et la prise de vue quel que soit le rendu, alors qu'elles ne partent dans la consigne que pour un rendu photographique — ce qu'on avait établi en 3.116, après qu'une carte de visite est revenue portant « 50MM LENS » en gros caractères.
- On croyait donc avoir réglé quelque chose, et l'on aurait cherché longtemps pourquoi rien ne changeait. C'est le pire des défauts d'interface : il ne se voit pas, il s'attribue au modèle.
- Ces sections disparaissent désormais pour un graphisme plat, une aquarelle ou un papier découpé, dans les deux modes. Changer de rendu les fait apparaître ou disparaître aussitôt.
- Leur absence est expliquée, jamais silencieuse : celui qui cherche la lumière lit qu'un graphisme plat n'a ni source lumineuse ni objectif. LE CAHIER DES CHARGES EST INTÉGRALEMENT LIVRÉ
- D54 composer la consigne à partir d'une image, D55 la consigne affichée et enregistrée, D56 le conseiller, D57 l'explorateur, D58 la bibliothèque et son accordéon, D59 le canevas de liens, D60 les trois usages, D61 le mode avancé.
- Les deux demandes anciennes sont closes également : D07 les bonnes questions selon le support, D04 le mode avancé qui ne redit plus le mode simple.
- 1344 contrôles au banc.
LES BONNES QUESTIONS SELON LE SUPPORT (D07, enfin traitée)
- « Votre activité » n'a aucun sens sur un faire-part de mariage. Le formulaire posait pourtant les mêmes trois questions à tout le monde.
- Deux effets, tous deux mauvais : ceux qui n'y reconnaissaient pas leur situation laissaient vide — et le visuel perdait ce qui l'aurait ancré —, ou bien ils forçaient une réponse hors sujet, et le modèle composait d'après elle.
- Un faire-part demande désormais l'occasion, ce qui compte pour vous, et qui vous invitez. Une bannière web demande ce que vous proposez, le message principal, et ce que le visiteur doit faire — un écran a une action attendue, c'est ce qui le distingue d'un imprimé qu'on regarde sans rien avoir à faire. Un menu demande le style de la maison et votre clientèle.
- Les champs restent les mêmes en coulisses ; ce sont les questions qui changent. Ajouter des champs par famille aurait multiplié le formulaire par quinze pour la même information. LE MODE AVANCÉ PARLE ENFIN COMME LE SIMPLE (D04, en partie)
- Il posait « votre activité, votre métier » là où le mode simple disait « votre activité ». Deux vocabulaires pour une seule chose obligent à retraduire mentalement d'un mode à l'autre.
- Et changer de support en mode avancé repose les bonnes questions : sans cela, on choisissait « faire-part » et l'on restait devant « votre activité », c'est-à-dire devant le défaut qu'on venait de corriger, revenu par une autre porte. LE PIÈGE QUI M'A REPRIS
- J'ai écrit une clé de support qui n'existe pas. TrouverSupport rendant le premier support du catalogue en cas d'échec, le menu de restaurant aurait reçu les questions d'un logo sans que rien ne le signale.
- Un contrôle vérifie désormais que toute clé citée dans les questions existe vraiment. C'est la troisième fois que ce piège se referme sur moi.
- 1340 contrôles au banc.
LE CANEVAS DE LIENS EST À L'ÉCRAN (D59, achevée)
- Nouveau bouton « Canevas… » : le graphe de la séance, où chaque pièce est reliée à ce qui l'a produite. Palette, consigne, images, calques.
- Un historique dit « voici ce que vous avez fait » ; le canevas dit « voici ce qui a produit CECI ». La nuance décide de tout quand on veut reprendre une piste écartée trois essais plus tôt.
- La disposition suit la filiation, pas le temps. Chaque nœud se place selon sa distance à l'origine, toujours après le plus lointain de ses parents : c'est ce qui garantit qu'un trait va toujours de la gauche vers la droite. Un trait qui remonterait rendrait le graphe illisible dès le troisième essai. CE QUI SE PASSE AU SURVOL
- Toute la lignée s'éclaire. C'est là que le canevas rend ce qu'un historique ne rendra jamais : d'un regard, on voit quelle palette et quelle consigne ont donné cette image.
- Les outils apparaissent — modifier, relancer, dupliquer, exporter — et ils dépendent de l'espèce du nœud. Affichés en permanence, quarante nœuds porteraient cent soixante boutons, et l'on ne verrait plus le graphe sous ses commandes.
- Relancer une image remonte à la consigne qui l'a produite : l'utilisateur n'a pas à la chercher lui-même.
- L'infobulle porte le journal du nœud, et lui seul : c'est la question qu'on se pose en survolant une image, pas ce qui est arrivé aux quarante autres. LES DÉTAILS QUI COMPTENT
- Les traits sont dessinés sous les nœuds, en courbes plutôt qu'en lignes brisées : par-dessus ils barreraient les vignettes, et sur un graphe dense les angles droits se confondent.
- Une palette se montre, elle ne se décrit pas — le principe des ronds de couleur du bloc d'analyse, pour la même raison : on reconnaît une palette d'un coup d'œil, jamais à son nom.
- Une consigne modifiée est une autre consigne. Sans cette comparaison, quatre variantes et quatre reprises formeraient le même amas indistinct.
- La filiation se note quand les choses arrivent, jamais après coup : reconstituée plus tard, elle serait devinée.
- Le canevas garde un chemin d'aperçu, pas les octets : quarante images en mémoire vive pour des vignettes de quarante points seraient un gâchis.
- 1333 contrôles au banc.
LE CANEVAS DE LIENS : LES FONDATIONS (D59, première moitié)
- Nouveau module CanevasCommon : un graphe de la séance où chaque pièce sait d'où elle vient. Palette, référence, consigne, images, calques, polices et textes y sont des nœuds reliés à ce qui les a produits.
- Ce qui manque à une séance de création, ce n'est pas la mémoire : c'est la filiation. L'historique garde ce qu'on a fait, dans l'ordre où on l'a fait ; il ne dit pas de quelle image descend telle variante, ni quelle palette a donné quel fond. Or c'est précisément ce qu'on cherche pour reprendre une piste écartée trois essais plus tôt.
- L'affichage viendra ensuite. La mécanique est posée et éprouvée d'abord — la méthode qui a servi pour l'explorateur, et qui a payé. CE QUI A ÉTÉ DÉCIDÉ
- Un journal par nœud, jamais un journal global. Le second oblige à retrouver, parmi cinquante lignes, les trois qui concernent l'image qu'on regarde ; le premier répond à la seule question qu'on se pose vraiment : qu'est-il arrivé à celle-ci ?
- Les parents sont donnés à la création du nœud, jamais après coup : une pièce posée sans sa filiation est une pièce dont on ne saura jamais d'où elle vient, parce que personne ne revient la renseigner.
- Les sœurs d'une image — ses variantes nées de la même consigne — se retrouvent directement. On compare des variantes bien plus souvent qu'on ne remonte une filiation, et passer par le parent aurait été deux gestes là où l'on en veut zéro.
- Les outils dépendent de l'espèce du nœud. Proposer partout les mêmes serait pire que n'en proposer aucun : « relancer » n'a pas de sens sur une palette, ni « dupliquer » sur une consigne dont on vient justement de tirer plusieurs images. LES PIÈGES DÉSAMORCÉS
- Un nœud ne peut pas être son propre parent : chercher ses ancêtres tournerait sans fin.
- Le parcours survit à un cycle. Un graphe bâti à la main finit toujours par en porter un, et une boucle infinie dans l'affichage est plus difficile à diagnostiquer qu'à empêcher.
- On ne relie qu'à un nœud qui existe : un identifiant fantôme ferait dessiner un trait vers nulle part.
- Dix contrôles neufs sur une séance complète — palette, référence, consigne, deux variantes, un calque. 1321 contrôles au banc.
COPIE OU RECETTE : LE CHOIX EST ENFIN POSÉ (D54, achevée)
- En lisant une image, on choisit désormais entre refaire cette image et en tirer une recette — le sujet devient alors une variable, et la consigne vaut pour n'importe quel autre sujet en gardant la lumière et la facture.
- Une consigne qui refait CETTE image ne sert qu'une fois ; la même avec son sujet en variable en fait cent autres. C'est la différence entre reproduire une photographie de flacon et disposer du traitement qui met en valeur n'importe quel flacon.
- La question se pose une fois l'image en main, jamais avant : la poser plus tôt reviendrait à faire trancher une question qu'on ne se pose pas encore. On peut se rétracter.
- Le conseiller le rappelle aussi quand on lui joint une image. LA VIGNETTE SE DÉPLIE EN POUSSANT SES VOISINES (D58, achevée)
- Un clic agrandit la vignette sur place, et découvre sous elle ses rubriques, sa consigne, ses variables à remplir et le bouton qui l'emploie.
- C'est ce qui distingue une mosaïque d'une liste. Un panneau de détail fixe oblige à faire l'aller-retour du regard entre l'image et son texte ; la vignette qui s'agrandit là où elle est garde les deux ensemble, et les autres s'écartent d'elles-mêmes.
- Une seule à la fois : deux vignettes dépliées se disputeraient la largeur et l'on perdrait la vue d'ensemble, qui est la raison d'être de la mosaïque.
- Un second clic referme : c'est le geste qu'on essaie d'instinct, et ne rien faire donnerait le sentiment d'être coincé dans la fiche.
- Le détail s'ajoute sous l'image sans la remplacer : l'image est ce qui a fait cliquer, la masquer serait la retirer au moment où l'on compare.
- Le panneau fixe de droite a disparu : deux endroits pour la même chose auraient été un choix à faire à chaque clic.
- Une nouvelle recherche oublie la vignette dépliée, faute de quoi l'on replierait un cadre qui n'est plus à l'écran.
- 1311 contrôles au banc.
LE MODE AVANCÉ DONNE ENFIN PRISE SUR LE DÉTAIL (D61)
- Six champs neufs, tirés de l'observation et non de l'intuition : matières et surfaces, composition, atmosphère, profondeur de champ, finition, et ce qu'il faut éviter.
- Sur 849 consignes relevées dans une bibliothèque publique, 63 seulement sont structurées, et elles emploient 636 clés distinctes : aucun format standard n'existe. Structurer n'aide donc pas le modèle — cela aide l'humain à ne rien oublier, ce qui est la raison d'être de ce mode. Le noyau qui revient dicte les rubriques retenues.
- Chaque rubrique est nommée avant sa valeur — « Matières : lin brut » plutôt qu'un adjectif isolé qui, sur une consigne longue, se rattache au premier nom venu. Une rubrique laissée vide ne laisse aucune trace : l'annoncer puis la taire dirait au modèle qu'on n'en veut pas. DEUX FAMILLES QU'IL NE FAUT PAS MÉLANGER
- Les rubriques ci-dessus partent dans la consigne, que le modèle lit. La graine, elle, voyage dans la configuration de la requête, et le formulaire les sépare en deux sections. Les mélanger ferait croire qu'on règle l'appel en écrivant de la prose — or écrire « graine 1234 » dans le texte ne fait rien, sinon risquer que le modèle l'inscrive sur l'image comme il l'a fait avec les codes couleur en 3.115.
- La graine entre dans l'empreinte du cache. L'oublier aurait été un piège vicieux : changer de graine pour obtenir un autre tirage aurait rendu l'ancien, et l'on aurait cru le réglage inutile. Zéro ne compte pas, pour que le cache existant reste valable. UNE COLLISION ÉVITÉE DE JUSTESSE
- Le catalogue portait déjà une « Composition » par support. Ajouter la mienne aurait mis dans la même consigne deux rubriques homonymes qui se contredisent — la faute de 3.116, revenue simplement parce qu'on ajoute un champ sans regarder ce qui existe déjà.
- La composition saisie remplace désormais celle du support au lieu de s'y ajouter ; sans saisie, celle du support est conservée.
- C'est un banc d'essai sur la consigne réelle qui l'a montrée, pas une relecture. Le code paraissait juste des deux côtés.
- 1301 contrôles au banc.
LES TROIS USAGES PRINCIPAUX, MIS EN AVANT (D60)
- Trois chemins ouvrent désormais la première étape : une bannière web, transformer une photo, un fond pour mon image. Un catalogue de cent vingt-six supports ne dit pas par où commencer, et ces trois-là couvrent la quasi-totalité du travail réel.
- Ils précèdent le catalogue sans le remplacer : celui qui sait ce qu'il veut descend directement à la recherche. Choisir un chemin pose le support ET l'intention, puis mène à l'étape suivante. COMPOSER UN FOND : UNE INTENTION QUI MANQUAIT
- Ce n'est ni une création ni une retouche, et les confondre donnait de mauvais résultats : en création, le modèle refaisait le sujet ; en retouche, il ne touchait pas au fond. Ici le sujet est intouchable et tout le reste est à inventer.
- La consigne l'énonce sans détour : mêmes contours, mêmes couleurs, mêmes matières, mêmes marquages, même position. Sans cette insistance, le modèle « améliore » le produit au passage — il en redresse une arête, en ravive une couleur — et l'on obtient une belle image d'un objet qui n'existe pas.
- La lumière et les ombres portées du décor doivent s'accorder à celles du sujet, faute de quoi il paraît collé dessus. UNE FAUTE REVENUE PAR UNE AUTRE PORTE
- La liste blanche des textes ignorait l'intention : le modèle recevait l'ordre de ne pas toucher au premier plan et la permission d'y écrire le titre. Deux ordres contradictoires — exactement la faute corrigée en 3.116, revenue par un autre chemin.
- C'est un banc d'essai monté sur la consigne réelle qui l'a révélée, pas une relecture : le titre apparaissait dans le texte envoyé alors que le code semblait juste.
- Composer un fond n'autorise donc plus aucun texte, même si la demande en porte. Le titre appartient au visuel fini, pas au décor qu'on compose derrière lui.
- 1293 contrôles au banc.
LA COLONNE DE L'EXPLORATEUR (D57, achevée)
- Une icône déplie une colonne d'images à gauche de la fenêtre de création : arborescence, sous-dossiers, aperçus, dossiers récents et favoris.
- Parcourir et la zone de dépôt restent en bas, hors du défilement. Ce sont les deux gestes qu'on refait sans cesse ; les chercher chaque fois annulerait le gain de la colonne.
- Un clic sur une image la joint à la demande en cours. Une image lâchée est copiée dans Bibliotek/perso/images ; un dossier lâché est ouvert, jamais copié en entier — c'est ce qu'on attend de lui, et le copier serait une surprise coûteuse.
- Le survol signale la zone de dépôt : sans retour visuel, on ne sait pas si l'on peut lâcher, et l'on lâche à côté. CE QUI A ÉTÉ PESÉ
- La colonne est repliée à l'ouverture. Déployée en permanence sur une fenêtre déjà dense, elle volerait de la largeur à l'aperçu, qui en a bien plus besoin.
- Le disque n'est parcouru qu'à la première ouverture : le faire au démarrage ferait attendre tous ceux qui ne s'en servent pas.
- Les dossiers disparus depuis la dernière séance sont écartés au branchement : une clé débranchée donnerait une erreur au premier clic.
- Les favoris passent avant les récents dans les raccourcis : ils sont un choix délibéré, là où les récents ne sont qu'une trace.
- Un favori épinglé est enregistré aussitôt — un logiciel fermé de travers ne doit pas faire perdre ce qu'on vient de poser.
- Les aperçus sont décodés à leur taille d'affichage, et une image illisible reste listée : la masquer priverait d'un fichier pour un défaut d'aperçu, et l'on chercherait longtemps pourquoi il a disparu du dossier.
- 1286 contrôles au banc.
LES FONDATIONS DE L'EXPLORATEUR D'IMAGES (D57, première moitié)
- Nouveau module ExplorateurImagesCommon : parcours de dossiers, dépôt dans le dossier personnel, dossiers récents et favoris. La colonne d'affichage viendra ensuite — la mécanique est posée et éprouvée d'abord.
- Les images déposées atterrissent dans Bibliotek/perso/images.
- Récents et favoris survivent à la fermeture : sans cela, l'explorateur redemanderait chaque matin où l'on range ses images, et l'on finirait par ne plus l'ouvrir. CE QUI A ÉTÉ DÉCIDÉ, ET POURQUOI
- Le dépôt copie, il ne déplace pas. Celui qui lâche une photographie prise dans son dossier de travail ne s'attend pas à ce qu'elle en disparaisse.
- Un homonyme au contenu différent est renommé, jamais écrasé : écraser ferait perdre un travail sans le dire. La comparaison se fait octet par octet, car deux images différentes pèsent régulièrement le même nombre d'octets.
- Redéposer la même image ne la duplique pas, mais rend quand même son chemin : l'utilisateur la voulait dans sa collection, elle y est.
- Les dossiers avant les images dans l'arborescence : on descend plus souvent qu'on ne choisit, et les voir en tête épargne de faire défiler deux cents vignettes pour trouver le sous-dossier visé.
- Un dossier interdit n'interrompt pas le parcours ; les dossiers cachés et système restent cachés.
- Huit récents, pas plus : au-delà, la liste devient elle-même quelque chose qu'il faut parcourir. Les favoris, eux, n'ont pas de plafond — chacun est un choix délibéré.
- Les dossiers disparus sont retirés des listes : une clé débranchée donnerait une erreur au clic, là où l'absence ne coûte rien. UNE SÉPARATION UTILE
- La reconnaissance d'une image est de la logique de fichier, pas d'affichage : elle vit désormais dans l'explorateur, qui ne dépend de rien, plutôt que dans le module qui lit le presse-papiers et réclame l'interface. Cela permet de l'éprouver au banc — cinq des dix contrôles neufs travaillent sur de vrais fichiers.
- 1277 contrôles au banc.
LA BIBLIOTHÈQUE DE CONSIGNES (D58)
- Nouveau bouton « Bibliothèque… » : cinq cent treize consignes éprouvées, avec leur image sous les yeux, cherchables par mots et par rubrique.
- Ce qui manque quand on génère des images, ce n'est pas l'outil : c'est l'imagination. On tourne vite en rond sur trois formulations qu'on connaît, et l'on ne découvre qu'un traitement existe qu'en le voyant appliqué ailleurs.
- La vignette passe avant le texte : on choisit une consigne en regardant ce qu'elle donne, pas en lisant sa prose.
- Le fichier est attendu dans Bibliotek/Prompts, les images dans Bibliotek/Prompts/Images. N'importe quel .json du dossier fait l'affaire : celui qui range sa collection sous un autre intitulé n'a pas à deviner lequel nous attendions. LES VARIABLES SE REMPLISSENT AVANT DE PARTIR
- Une consigne figée ne sert qu'une fois ; la même avec ses marqueurs remplis se réemploie cent fois. C'est toute la différence entre une image et une recette.
- Le texte fait foi, pas la table : les variables sont relevées sur la consigne elle-même. Se fier à la table exposerait à demander une valeur pour un marqueur absent, ou à en oublier un qu'elle ignore.
- Un marqueur répété n'est demandé qu'une fois et remplacé partout.
- Une variable laissée vide prend son intitulé, jamais du vide : « une affiche pour » avec un trou ne produit rien de bon, alors qu'« une affiche pour la marque » reste une phrase.
- C'est la consigne d'origine qui part au modèle, pas sa traduction : les modèles d'image sont nettement plus fidèles en anglais. Le français sert à comprendre et à choisir. LES PRÉCAUTIONS
- L'absence de bibliothèque n'est pas une panne : c'est un complément, pas un organe vital. On rend une collection vide et un message qui dit où la déposer.
- L'avertissement d'une fiche passe avant tout le reste. Certaines consignes de la collection visent des personnes réelles ou notent leur apparence : les laisser lisibles est juste, les proposer sans un mot ne le serait pas.
- Les vignettes sont décodées à leur taille d'affichage — charger une image de quatre mille points pour l'afficher en cent soixante-dix consommerait des centaines de mébioctets sur cent vignettes.
- Une vignette illisible n'empêche pas d'employer sa fiche.
- La recherche exige tous les mots : en rendre l'un OU l'autre ne filtrerait rien.
- 1267 contrôles au banc.
LE CONSEILLER DE CONSIGNE (D56)
- Nouveau bouton « Conseiller… » : une fenêtre de conversation où l'on décrit ce qu'on veut avec ses mots, où l'on lit ce que cela donne, et où l'on corrige. Une consigne se négocie ; elle ne se trouve pas du premier coup, et ce va-et-vient est exactement ce qui manquait quand on n'avait qu'un champ de saisie et un bouton d'envoi.
- Il part de ce qu'on a déjà — consigne écrite à la main, ou celle que le formulaire a composée : arriver devant un conseiller à qui il faut tout réexpliquer alors que le formulaire est rempli aurait été un recul. LA CONSIGNE EST DÉTACHÉE DU BAVARDAGE
- C'est ce qui fait l'utilité de toute la fenêtre. Un assistant de rédaction noie volontiers la consigne dans trois paragraphes d'explications — il faut alors la recopier à la main, et le service rendu est annulé.
- Le conseiller reçoit donc l'ordre d'encadrer chaque proposition de marqueurs. Elle s'affiche dans son propre cadre, modifiable sur place, avec le bouton qui la reprend d'un clic. Sans bloc, rien n'est proposé : mieux vaut cela que de poser un commentaire dans le formulaire, qu'on enverrait sans le relire.
- Il propose d'emblée plutôt que de questionner : une proposition qu'on corrige vaut mieux que trois questions auxquelles on ne sait pas répondre. LES DÉTAILS QUI COMPTENT
- Une image peut être jointe à la conversation — fichier, presse-papiers ou adresse en ligne — et « rédige-moi la consigne qui permettrait de refaire cette image » est proposé d'office, puisque c'est la demande la plus fréquente.
- Une image ne part qu'une fois, au tour où elle est déposée : la renvoyer à chaque échange multiplierait le coût par le nombre de tours sans rien apprendre de neuf au modèle, qui l'a déjà vue.
- Tout l'historique repart à chaque tour, parce que l'API ne garde rien entre deux appels : n'envoyer que le dernier message donnerait un interlocuteur amnésique.
- Jamais la réponse brute à l'écran en cas d'échec — le service concurrent affichait sa page d'erreur HTML en clair dans la conversation (cf. D52).
- Entrée envoie, Maj+Entrée va à la ligne.
- Les jetons sont comptés même si l'on repart les mains vides : la conversation a coûté, qu'on en garde le résultat ou non.
- 1257 contrôles au banc.
PARTIR D'UNE IMAGE PLUTÔT QUE D'UNE IDÉE (D54)
- Nouveau bouton « Depuis une image… » : on fournit une image, le logiciel en rend la consigne, prête à être modifiée puis relancée.
- C'est le sens que réclame l'usage réel. On obtient rarement une belle image du premier coup, mais on en croise sans cesse qu'on voudrait savoir refaire : l'image porte déjà les décisions — lumière, cadrage, matières — qu'il aurait fallu vingt essais pour retrouver à tâtons.
- Trois portes d'entrée : un fichier, le presse-papiers, ou l'adresse d'une image en ligne. Une seule aurait laissé les deux autres usages sur le carreau. LES PRÉCAUTIONS QUI FONT LA DIFFÉRENCE
- Une adresse d'image mène souvent à une page HTML — page de partage, mur de connexion, erreur déguisée. On vérifie le type de ce qui est reçu, faute de quoi le modèle décrirait une page web et l'on chercherait longtemps pourquoi.
- Une extension ment ; les premiers octets, non. Le type est lu dans la signature du fichier, l'extension ne servant qu'en dernier recours : un JPEG renommé en .png ferait sinon échouer l'appel sans rien dire de la cause.
- Le presse-papiers est lu sous ses deux formes : image copiée d'un navigateur, ou fichier copié dans l'explorateur.
- La taille est vérifiée sur ce qui arrive, pas seulement sur ce que le serveur annonce.
- Une consigne écrite à la main n'est jamais remplacée sans demander : effacer le travail de quelqu'un sans le lui demander est la meilleure façon de lui faire perdre confiance dans un bouton.
- La consigne obtenue s'affiche aussitôt, dans la continuité de 3.118.0. LA CONSIGNE DE LECTURE
- Elle énumère ce qu'il faut relever — sujet, cadrage, lumière, matières, palette, composition, registre, rendu — et interdit trois choses : le commentaire d'œuvre au lieu d'une consigne exécutable, les noms propres de marques et d'auteurs, et l'invention de ce qui n'est pas visible.
- Un mode réemploi remplace le sujet par {your_choice} : c'est ce qui distingue une consigne qui refait CETTE image d'une recette qui en fait cent.
- 1246 contrôles au banc.
LA CONSIGNE EST MONTRÉE, PLUS CACHÉE
- La dissimuler était contre-productif : qui obtient une belle image veut savoir ce qui l'a produite, et qui en obtient une ratée veut voir où la consigne a dévié. Le bouton s'appelle désormais « Voir la consigne » et l'ouvre telle qu'elle partira, toujours modifiable.
- Elle est conservée avec la demande : DemandeCreation.PromptRetenu est renseigné à l'instant où la consigne est arrêtée, juste avant l'envoi. La renseigner plus tard, ou ailleurs, aurait exposé à enregistrer une consigne qui n'est pas celle qui est partie — et une trace fausse est pire que pas de trace du tout. Rouvrir une demande enregistrée, c'est retrouver sa consigne exacte.
- Le bouton affiche « Consigne modifiée » dès qu'elle a été reprise à la main, sans quoi rien ne signalerait qu'elle ne vient plus du formulaire.
- Un contrôle éprouve l'aller-retour complet — écriture puis relecture — plutôt que de supposer que la sérialisation prend le champ.
- 1234 contrôles au banc.
LES MARGES D'IMPRESSION SONT MESURÉES, PLUS SUPPOSÉES
- Trois gabarits d'imprimeur ont été passés au crible : une carte de 85 × 55 mm livrée en 89 × 59, un flyer A5 de 148 × 210 en 150 × 212, une affiche A3 de 297 × 420 en 301 × 424. Les traits de construction ont été relevés au pixel sur le rendu des gabarits.
- Verdict : deux millimètres de débord par côté, et trois millimètres entre la coupe et le premier texte. J'avais posé trois et cinq au jugé — plus prudent, mais faux.
- La zone tranquille ne grandit pas avec le format : la même distance sur une carte que sur une affiche, parce qu'elle compense la précision du massicot et non la taille du papier.
- Les deux valeurs sont réglables dans les paramètres, onglet API : les imprimeurs ne s'accordent pas, beaucoup demandent trois millimètres de débord et certains cinq sur les grands formats. Une saisie illisible garde la valeur en place plutôt que de tomber à zéro — un champ vidé le temps de retaper un chiffre supprimerait sinon le fond perdu, et l'on ne s'en apercevrait qu'au massicot.
- Un contrôle du banc confronte les proportions annoncées aux gabarits mesurés, à un dixième de point près. C'est la seule façon de savoir que la consigne dit au modèle ce qu'un imprimeur attend vraiment.
- 1230 contrôles au banc.
LE JOURNAL DE L'API A MONTRÉ TROIS CONTRADICTIONS DANS LA CONSIGNE
- Deux ordres opposés. On disait « n'inscris aucun texte ; laisse la zone de titre libre », puis plus loin « rédige toi-même les textes qui n'ont pas été fournis ». Le modèle tranchait comme il pouvait, et il inventait des mentions — dont certaines reprises du vocabulaire de la consigne elle-même. Confier la rédaction veut dire « écris ce qu'il faut », jamais « n'écris rien ».
- La lumière et l'objectif n'ont de sens que devant un appareil. On envoyait « graphisme plat, aucune ombre », puis « éclairage de studio en trois points », puis « objectif de cinquante millimètres » : trois directions qui se contredisent, d'où le « 50MM LENS » composé en gros sur une carte de visite. Un rendu graphique n'a ni lumière ni focale — on les tait désormais. LES TROIS ZONES D'UN IMPRIMÉ
- « Ménage une marge de sécurité d'un vingtième » ne disait rien de ce qu'un imprimeur attend : ni que le fond doit courir jusqu'au bord, ni qu'il existe deux limites différentes, ni laquelle concerne quoi.
- La consigne décrit maintenant les trois lignes concentriques de tout gabarit professionnel : le fond couvre cent pour cent de l'image ; la bande extérieure sera coupée et ne porte que de la matière ; textes et logos tiennent dans le rectangle central.
- Les proportions sont calculées, pas choisies. Trois millimètres de débord et cinq de zone tranquille donnent 3,3 % et 8,8 % sur une carte de 8,5 cm, et bien moins sur une affiche de 42 : un chiffre fixe aurait été faux dans les deux cas.
- Tout est formulé positivement, en disant ce que la surface contient plutôt que ce qu'elle doit éviter — un modèle d'image dessine ce qu'on nomme, et « aucun trait de coupe » a toutes les chances d'en faire apparaître.
- Sans fonds perdus, la bande de coupe n'est pas décrite : la mentionner quand elle n'existe pas ferait rétrécir le visuel pour rien.
- 1228 contrôles au banc.
LE MODÈLE ÉCRIVAIT LA CONSIGNE SUR L'IMAGE
- « 50MM LENS » et « #CC397B » composés en gros sur une carte de visite : une consigne d'image est faite de vocabulaire de studio — objectif, ouverture, codes hexadécimaux — et le modèle ne distingue pas ce qu'on lui demande de ce qu'on lui décrit.
- Deux causes, deux correctifs. Les codes couleur étaient donnés entre guillemets, ce qu'un modèle lit comme « voici un texte à écrire » ; ils sont désormais nus, précédés du mot « couleur ».
- Et la consigne porte maintenant une liste blanche : les seuls textes autorisés sont énumérés un par un, tout le reste est déclaré indication de style. Une interdiction générale ne suffisait pas — elle ne dit pas ce qu'est « autre chose ». Un visuel sans texte l'annonce franchement. UNE COULEUR N'EST PAS UNE PALETTE
- Le ruban est souvent vide : on travaille dans la bibliothèque, ou sur une image, sans avoir rien épinglé. On n'envoyait alors que la couleur courante, et le modèle rendait un visuel monochrome.
- Les échantillons d'une image analysée sont repris s'il y en a. À défaut, une harmonie de cinq tons est composée autour de la couleur courante : deux voisines, une complémentaire, un ton très clair et un très sombre. Une couleur désaturée reçoit de quoi se distinguer — un gris décliné sur la roue resterait cinq gris. LA FENÊTRE DE CRÉATION
- Elle ne se déplaçait pas parce qu'on ne pouvait pas l'attraper. Centrée sur son propriétaire alors qu'elle est presque aussi haute que l'écran, elle débordait par le haut — et sa barre de titre, seule zone qui permet de la saisir, se trouvait hors écran. Le code de déplacement était juste. Elle est désormais ramenée dans la zone de travail à l'ouverture.
- Choisir un support mène directement à l'étape suivante : le clic vaut réponse, et rester sur une liste de cent vingt-six cases obligeait à chercher « Suivant » pour dire ce qu'on venait de dire.
- Le rouet tourne enfin sur lui-même. « RenderTransformOrigin » décale déjà le repère au milieu du contrôle ; y ajouter « CenterX » et « CenterY » décalait une seconde fois, le pivot tombait dans le coin, et le rouet décrivait une orbite.
- 1223 contrôles au banc.
LE LOGICIEL NE DÉMARRAIT PLUS : une clé de ressource définie deux fois
- « IcoContraste » et « IcoDegrade » avaient chacune deux définitions dans le dictionnaire des icônes, glissées là en ajoutant des dessins : le nom paraissait libre, il ne l'était pas.
- C'est une faute fatale que rien ne signalait avant l'exécution. Le compilateur l'accepte, le banc passait, et le logiciel mourait au lancement sur un message qui ne dit ni le fichier ni la ligne — seulement le nom de la clé.
- La première définition de chaque clé est gardée, les suivantes retirées : les deux variantes disaient la même chose, un cercle mi-plein pour le contraste et un rectangle rayé pour le dégradé.
- Un contrôle du banc interdit désormais toute clé définie deux fois dans un même dictionnaire, et nomme le fichier et la clé. Éprouvé en réintroduisant la faute : il la trouve.
- 1215 contrôles au banc.
LE DOSSIER DE CACHE EXISTE AVANT QU'ON EN AIT BESOIN
- Il n'était créé qu'à la première écriture. Or un dossier qui n'existe pas encore est un dossier qu'on ne peut pas ouvrir, et le premier réflexe devant un cache est d'aller y voir — surtout en travaillant depuis le dossier de publication.
- La recherche ne s'en plaint plus non plus : un dossier absent est un cache vide, pas une erreur. Le journal notait une fausse alerte à chaque recherche tant qu'aucune image n'avait été gardée. COLLER ET REMETTRE À ZÉRO, DANS LE BLOC D'ANALYSE
- Une icône colle l'image du presse-papiers : une capture d'écran, une image copiée depuis un navigateur. Passer par un fichier pour l'analyser était un détour que rien ne justifiait.
- Le bouton clignote quand il y a quelque chose à coller. Un bouton toujours identique n'apprend rien — il faudrait cliquer pour savoir. Windows ne prévenant pas qu'on vient de copier, le presse-papiers est regardé toutes les secondes et demie ; l'appel se contente de demander quels formats sont disponibles, sans lire le contenu.
- Le clignotement s'arrête de lui-même, au bout de six battements : une pulsation sans fin devient une nuisance qu'on apprend à ignorer, et le bloc en deviendrait fatigant à regarder. L'infobulle prend le relais.
- Un presse-papiers occupé par un autre logiciel n'interrompt rien : c'est une ressource partagée, l'appel peut échouer, et l'on repassera dans une seconde et demie.
- L'image collée emprunte le même chemin qu'une image ouverte, via un fichier temporaire. Dupliquer ce chemin aurait fait deux codes à tenir d'accord, dont l'un n'aurait été éprouvé que rarement.
- Une seconde icône rend le bloc à son état neuf — image, aperçu, échantillons, grossissement, pipette relevée. Une analyse qui reste affichée après qu'on en a fini avec elle induit en erreur : on croit lire les couleurs de l'image qu'on regarde alors qu'elles viennent de la précédente. Elle ne paraît que lorsqu'il y a quelque chose à effacer.
- 1214 contrôles au banc.
CHERCHER UN SUPPORT AVEC SES PROPRES MOTS (D36-D37)
- Personne ne cherche « faire-part de condoléances ». On tape « mort », « décès », « enterrement » — le mot qui vient à l'esprit dans le moment où l'on est. Cent vingt-six supports rangés par famille se parcourent mal : il faut connaître la famille avant de trouver l'objet, ce qui suppose de savoir ce qu'on cherche.
- Un champ de recherche renverse la charge : on décrit, le logiciel propose. 561 mots pour 99 supports — les familiers, les anglicismes, les abréviations : sticker, resto, roll-up, CV, vinyle, youtube, soldes, bébé.
- L'extrapolation par occasion : « mariage » sort le faire-part, mais aussi le menu, le plan de table, le marque-place et le programme. Un moteur qui ne rendrait que l'objet nommé laisserait passer tout ce à quoi l'on n'a pas encore pensé.
- L'occasion devinée est dite en clair — « pour un mariage, on prépare souvent » — plutôt qu'une liste de sept supports tombés du ciel : on comprend pourquoi ils sont là, et l'on peut dire non.
- Douze occasions sont proposées d'emblée : un champ vide n'inspire personne.
- Accents, casse et ponctuation ignorés : on tape vite, on tape mal. LA FENÊTRE SE DÉPLACE ENFIN (D38)
- Deux tentatives avec DragMove ont échoué. Cette fenêtre cumule « WindowStyle=None », « AllowsTransparency=True », un WindowChrome et « AllowDrop=True » pour le dépôt de documents : dans cet empilement, l'appel se perd sans rien dire.
- Le déplacement est fait à la main — capture de la souris, position d'origine, écart appliqué. Les points d'écran sont convertis en unités WPF, sans quoi la fenêtre courrait une fois et demie plus vite que la souris sur un affichage à cent cinquante pour cent. LE RESTE DU LOT
- Case « Laissez l'IA générer les textes pour moi » (D39). Ce qu'on a écrit reste intouchable : le modèle ne comble que les champs vides. Voir changer un titre qu'on a choisi serait la meilleure façon de ne plus jamais cocher.
- La dernière étape en vignettes illustrées (D40). Une colonne de boutons radio gaspillait les trois quarts de la largeur et obligeait à faire défiler, alors que les trois questions se répondent ensemble. Dix-neuf dessins neufs : un mot comme « contrastée » ou « papier découpé » se comprend mieux vu que lu.
- Un rouet pendant l'attente (D41). Une image demande de quinze à soixante secondes : sans rien qui bouge, on croit le logiciel figé et l'on relance, ce qui coûte une seconde demande.
- Un journal de mise au point, « api.log » (D42). Tout y passe : chaque geste du formulaire, chaque requête avec son corps entier, chaque réponse. La clé d'API est le seul secret retenu — une clé écrite en toutes lettres dans un fichier qu'on envoie pour se faire aider est une clé qu'il faut révoquer. Les images en base64 sont abrégées à leur poids.
- Un contrôle interdit désormais la double marque d'ordre d'octets en tête de fichier : elle rend un XAML illisible, avec un message qui parle d'une erreur « ligne 1, position 1 » sans dire laquelle. Six fichiers en portaient une, laissée par une normalisation de fins de ligne.
- 1207 contrôles au banc.
- La banane du popup passe à la version fournie en PNG, autrement plus nette que le JPEG détouré à la main de la version précédente : les circuits imprimés du fruit et le dégradé du bord se lisent, là où la reprise laissait des bords mangés par la compression.
- Elle est resserrée sur le dessin — le fichier portait une vingtaine de points de marge transparente, qui l'auraient fait paraître plus petite qu'elle n'est dans la hauteur qu'on lui donne.
- C'est la HAUTEUR qui est contrainte, pas la largeur : le dessin est plus large que haut, et fixer la largeur l'aurait écrasé ou fait déborder selon le recadrage du fichier.
- 1189 contrôles au banc.
LE POPUP PREND LA PLACE DU LOGO
- Seul le logo s'efface ; le voile reste derrière. Tout effacer d'un coup rendait la fenêtre à l'utilisateur au moment même où on lui demandait de lire quelque chose — son œil partait ailleurs. Le voile ne s'en va qu'une fois le popup refermé.
- Le popup se centre sur l'emplacement exact du logo, et non sur la fenêtre. Les points d'écran ne sont pas les unités de WPF : sur un affichage à cent cinquante pour cent, placer sans convertir aurait décalé la fenêtre d'un tiers de sa position.
- Texte ramené de dix-huit à treize points, tout centré, et la banane en haut — détourée de son damier, recadrée sur le fruit : le mot « NANO » était en noir et disparaissait sur le fond sombre, quand le titre dit déjà de quoi il s'agit.
- Le nom complet du modèle est cité sous son surnom : « Rapide » est le nom qu'on lui donne ici, l'identifiant est ce qui part au service et ce qu'on retrouvera sur une facture.
- Le compte d'images est annoncé comme une estimation. Il repose sur le compteur tenu ici : une demande refusée par les filtres, une image rejouée depuis le cache, une session interrompue écartent chacune un peu le compte de la réalité du service, qui ne publie rien qu'on puisse confronter. LA DESCRIPTION DES MODÈLES
- Chaque modèle porte désormais sa description sous la liste, dans les réglages. Un nom ne dit rien de son emploi : « rapide » et « soigné » laissent croire à un simple curseur de qualité, alors que le rapport de prix est de un à quatre et que les deux ne servent pas au même moment du travail.
- Un modèle venu du compte et que le logiciel ne connaît pas le dit aussi, en prévenant que sa dépense sera estimée d'après une grille qui n'est pas la sienne, ce qui peut la sous-évaluer.
- 1189 contrôles au banc.
LE TRIANGLE D'ALERTE (D20)
- Le calcul existait depuis la 3.99 — le drapeau se levait — mais rien n'était dessiné. Un triangle paraît désormais à droite de chaque bloc concerné.
- Il ne dit pas que le texte est illisible : le blanc ou le noir de secours l'en empêchent, et le banc l'avait démontré — au pire fond possible, le meilleur des deux atteint encore 4,61 pour 1. Il dit qu'il a fallu SORTIR DE LA PALETTE pour y arriver, et son infobulle donne le meilleur contraste que la palette pouvait offrir.
- À droite du texte, jamais dessus : le texte est ce qu'on juge, et une pastille posée par-dessus empêcherait justement de le juger.
- Il suit la couleur qu'on pose : il se lève ou se baisse selon que la teinte retenue vient de la palette ou d'ailleurs. LE FORMAT SE RÈGLE EN CENTIMÈTRES (D06)
- Le support propose un format, et l'on peut en saisir un autre : une affiche est carrée pour une vitrine aussi souvent qu'elle est en A2, et le catalogue ne peut pas prévoir tous les cas.
- Deux champs, en centimètres pour ce qui s'imprime et en points pour ce qui s'affiche — mélanger les deux dans un même couple n'aurait aucun sens. Un bouton reprend le format du support.
- Le rapport se recalcule à chaque frappe et s'affiche : c'est lui qui part au modèle, et le voir change ce qu'on saisit.
- On dit quand il est approché. Le modèle n'accepte qu'une poignée de rapports : dix sur quinze et dix sur seize tombent sur le même, et l'image reviendra dans celui-là. Le taire ferait passer un recadrage pour un défaut.
- 1184 contrôles au banc.
UN VRAI POPUP, ET UNE TENTATIVE PAR SECONDE
- Le message d'ouverture paraît dans une vraie fenêtre, au-dessus de l'overlay. Il est passé par trois places avant de trouver la bonne : la barre d'état, écrasée dans la seconde ; un bandeau posé sur la fenêtre mais DERRIÈRE le voile de lancement, où il se devinait à peine ; puis sous le logo, en petit. Une vraie fenêtre règle la question sans qu'on ait à s'occuper des plans de superposition.
- Une tentative par seconde, pendant quinze secondes. Des essais espacés de deux, cinq puis douze secondes laissaient passer de longs moments où le réseau était déjà rendu — on attendait pour rien. Dès que l'autorisation du pare-feu tombe, la tentative suivante passe.
- Chaque tentative est bornée à deux secondes et demie : le client attend vingt secondes par défaut, si bien que la première aurait mangé tout le budget et qu'il n'y aurait jamais eu de seconde.
- Passé quinze secondes sans réponse, on ouvre le logiciel de toute façon, avec un message d'alerte.
- Rien ne paraît pendant les cinq premières secondes : le logo seul, le temps que la vérification se fasse. Annoncer l'état de l'API à la seconde où le logiciel paraît reviendrait à le dire à quelqu'un qui regarde encore ailleurs.
- Le logo s'efface, PUIS le popup paraît. Superposer les deux donnerait une fenêtre sur un voile sur une fenêtre, et l'on ne saurait plus quoi regarder.
- Le texte y est à dix-huit points — la moitié plus gros — et chaque ligne porte son icône : une phrase unique de trois propositions séparées par des tirets se lit mal, on y cherche l'information qui nous intéresse.
- 1178 contrôles au banc.
- Les boutons de choix du support étaient illisibles : texte pâle sur fond gris clair.
- La cause tenait à un trou dans le thème. « Button » et « RadioButton » y avaient un style implicite ; « ToggleButton », non. Une bascule créée sans style prenait donc le gabarit d'origine de Windows — fond clair — sur lequel la couleur de texte du thème sombre, claire elle aussi, ne se lit pas.
- Le style implicite manquant est posé : toute bascule à venir héritera d'un rendu lisible sans que personne ait à y penser. C'est la correction de fond, pas le rattrapage d'un écran.
- Un contrôle du banc interdit désormais de créer une bascule sans style et vérifie que le thème en pose un par défaut.
- 1175 contrôles au banc.
LA FENÊTRE DE CRÉATION ÉTAIT FIGÉE
- « WindowStyle=None » retire la barre de titre du système : avec elle partent le déplacement ET les bords de redimensionnement. La fenêtre restait donc clouée à sa taille d'ouverture, et sur un écran réglé à cent cinquante pour cent elle débordait par le bas sans qu'on puisse rien y faire.
- Les bords sont rendus, le glisser prend toute la barre d'en-tête — le titre et le logo n'ont pas de fond et laissaient le clic filer sans le transmettre — et les boutons « Avancé » et la croix gardent leur clic.
- La fenêtre est ramenée à la taille de l'écran disponible. Neuf cents sur six cent quarante sont des unités d'affichage, pas des pixels : à cent cinquante pour cent, cela fait treize cent cinquante sur neuf cent soixante, et cela dépasse un écran de mille quatre-vingts. UN REGISTRE DES DEMANDES
- Nouveau fichier DEMANDES.md : toutes les demandes, numérotées, dans l'ordre où elles ont été formulées, avec leur état et la version qui les a livrées.
- Une demande à moitié faite y reste ouverte, et ce qui manque est écrit noir sur blanc : cocher une demande partielle est le plus sûr moyen de ne jamais finir le reste.
- Trois demandes en ressortent, jamais traitées ou traitées à moitié : le mode avancé qui n'apporte rien de plus que le mode simple, le sélecteur de format en centimètres, l'approche par l'usage final — et le triangle d'alerte, dont le calcul existe mais qui n'est dessiné nulle part.
- Les consignes permanentes y figurent à part : elles ne se cochent pas, elles s'appliquent à chaque livraison.
- 1174 contrôles au banc.
LE VOILE ATTEND LA VÉRIFICATION, ET NON L'INVERSE
- La vérification attendait que le logo s'efface, pour que son message ne soit pas écrit derrière un voile opaque. C'était traiter le voile comme un obstacle alors qu'il est la meilleure place pour cette information : on le regarde.
- L'état d'ouverture s'écrit désormais SOUS LE LOGO, et c'est le voile qui attend la réponse. Un état de clé qui disparaît avant d'être connu ne sert à rien — et la vérification passe par le réseau, qu'un pare-feu peut retenir une demi-minute.
- Pendant les réessais, le logo reste et dit quoi faire : « si Windows demande une autorisation de pare-feu, acceptez-la ». C'est précisément le moment où la boîte s'affiche.
- Le logo reste au moins deux secondes et demie, même quand tout va vite : un logo qui apparaît et disparaît dans la même seconde donne l'impression d'un défaut d'affichage plutôt que d'une page de lancement.
- Et jamais plus de vingt secondes, quoi qu'il arrive. Un logiciel qu'on ne peut pas employer parce qu'un service ne répond pas serait un mauvais échange : passé ce délai on rend la main, et le bandeau prend le relais quand la réponse arrive enfin.
- Le bandeau épouse la coque. Posé sur la grille avec une marge fixe, il flottait au-dessus de la fenêtre, dans la zone transparente réservée à l'ombre — un rectangle suspendu sur le bureau. Cette marge change en cours de route (bordure animée, plein écran) : la lier à celle de la coque est le seul moyen de le garder dedans dans tous les cas.
- 1168 contrôles au banc.
LE MESSAGE D'OUVERTURE PARAÎT ENFIN — un bandeau, pas la barre d'état
- Le journal a livré la réponse : la vérification avait bien lieu, le pare-feu bloquait le premier appel, le réessai réussissait deux secondes plus tard, et le taux de change se relevait dans la foulée — ce qui ne se produit qu'après un succès. Le message était donc bien émis.
- Mais la barre d'état ne convient pas pour ce qui compte : elle est écrasée par le message suivant, souvent dans la seconde — un mouvement de souris sur une couleur suffit. L'état d'ouverture y passait sans être lu, et l'on croyait que rien ne s'était affiché.
- Un bandeau paraît désormais en haut du corps du logiciel : clé acceptée, modèle disponible, réserve restante. Il reste quatorze secondes, se ferme au clic, et ne dépend d'aucun réglage d'affichage — contrairement à la barre d'état, qui se masque.
- Une alerte y reste deux fois plus longtemps : on lit une bonne nouvelle en diagonale, on relit deux fois ce qui annonce un problème.
- Ce qui passe par le bandeau passe aussi au journal en niveau « info » : les traces ordinaires sont filtrées selon le réglage de journalisation, et un message qu'on a jugé digne d'un bandeau mérite de se relire après coup.
- 1166 contrôles au banc.
Rien ne s'affichait au démarrage — trois causes possibles, les trois traitées
- Le fichier déposé commande, plus le réglage. La case « vérifier au démarrage » est un confort : elle évite un appel réseau à qui n'emploie pas la création assistée. Mais un fichier « .key » posé à côté du logiciel n'est pas un confort, c'est une demande explicite — et la laisser échouer en silence parce qu'une case est décochée est exactement le contraire de ce qu'on veut. La vérification a désormais lieu dès qu'un fichier est là ; la case ne gouverne plus que le cas sans fichier.
- L'animation n'est pas une promesse. La vérification attendait la fin du fondu du logo : si l'animation ne se termine pas — fenêtre réduite dès l'ouverture, rendu suspendu, animations désactivées sur le poste —, elle n'avait jamais lieu et l'on ne voyait rien, ni message ni alerte. Un minuteur de secours la déclenche au bout de six secondes, et l'appel est idempotent.
- Le dossier du logiciel était calculé à trois endroits. Trois copies du même calcul finissent par diverger, et l'une cherchait la clé ailleurs que là où l'autre l'avait trouvée. Un seul calcul désormais.
- Le journal dit maintenant, à chaque démarrage, l'état du réglage, le fichier trouvé et le dossier fouillé — de quoi trancher en une ligne si quelque chose cloche encore.
- 1163 contrôles au banc.
- Une clé déposée que le service refuse est désormais SIGNALÉE au démarrage. Un fichier posé là dit une intention : celui qui l'a mis s'attend à ce qu'il serve. Se contenter d'une ligne dans la barre d'état — qui s'efface au message suivant — revenait à laisser découvrir la panne au moment de créer un visuel, c'est-à-dire après avoir composé sa palette et rempli cinq écrans.
- Le message dit quel fichier a été trouvé, ce que le service répond, et où corriger.
- Un fichier dont aucune clé n'a pu être tirée est signalé au même titre, avec le format attendu : dans les deux cas, on a fait quelque chose qui ne produit pas l'effet escompté et l'on n'en saurait rien autrement.
- En l'absence de tout fichier, rien ne s'affiche. Qui n'a jamais renseigné de clé n'attend rien du service : l'avertir serait du bruit, et une alerte au démarrage qu'on n'a pas provoquée est une alerte qu'on apprend à fermer sans lire.
- Le champ de la clé, dans les réglages, ne s'étire plus sur toute la largeur : une clé fait une quarantaine de caractères, et le champ étiré laissait une traînée vide qui donnait à croire qu'il manquait quelque chose.
- 1160 contrôles au banc.
- Les intitulés du bloc déviations portent une capitale initiale, plus dix. Tout en capitales, ils criaient et se lisaient mal : les capitales ont toutes la même hauteur, et l'œil perd les repères du mot.
- Les sigles restent intacts : « Gammes TSV » serait devenu « Gammes Tsv », ce qui n'est plus le nom de rien. Un mot déjà tout en capitales est un sigle, et un sigle ne se met pas en bas de casse.
- La colonne des noms descend de soixante-douze à cinquante-six points — les capitales initiales tiennent dans moins de largeur, et c'est autant de rendu aux échantillons, qui sont ce qu'on vient regarder.
- 1157 contrôles au banc.
- La vérification de la clé au démarrage réessaie, à cause du pare-feu. Au premier lancement, Windows demande l'autorisation de sortir : la boîte s'affiche, la requête part dans le vide, et l'on autorise trois, dix ou trente secondes plus tard selon qu'on regardait l'écran. Une tentative unique annonçait alors un service injoignable alors que tout allait bien.
- Quatre nouvelles tentatives, à deux, cinq, douze puis trente secondes. Les délais s'allongent : deux secondes suffisent quand on a cliqué tout de suite, une demi-minute couvre le cas où l'on est allé chercher un café.
- Seuls les échecs réparables par l'attente sont réessayés. Un serveur injoignable, un délai dépassé, un quota momentané : tout cela se répare en patientant. Une clé refusée, non — la réessayer donnerait le même refus, et ferait croire à un problème de réseau là où il faut corriger la clé.
- L'attente ne bloque rien : le logiciel reste entièrement utilisable pendant la minute que durent les tentatives, et la barre d'état dit ce qui se passe.
- 1156 contrôles au banc.
LA MISE EN CACHE DU CONTEXTE — les gros documents ne repartent plus
- À ne pas confondre avec le cache des réponses, qui vit sur le disque et rejoue une image déjà obtenue. Celui-ci dépose une fois pour toutes un GROS CONTENU chez le service — un menu en PDF, une plaquette de dix pages — et les demandes suivantes s'y réfèrent au lieu de le renvoyer. Le service facture alors ces jetons à environ un quart de leur prix.
- Trois conditions, et les trois comptent : il faut des documents, ils doivent peser assez pour que le service accepte le dépôt, et il faut plusieurs demandes en vue. Un document envoyé une seule fois ne gagne rien — le dépôt coûte le même prix que l'envoi, et l'économie ne commence qu'à la deuxième demande.
- Le dépôt se fait AVANT la série de variantes, pas pendant : c'est la répétition qui le rentabilise.
- Un document déposé ne repart pas avec la demande. Le renvoyer en plus le ferait payer deux fois — une fois au plein tarif, une fois au quart — pour un contenu que le modèle verrait en double.
- Un refus n'est pas une panne. Rien ne garantit qu'un modèle donné accepte les dépôts : les modèles d'aperçu en sont souvent exclus, et la liste change. On retombe alors sur l'envoi en clair, exactement comme avant que ce mécanisme existe, et rien n'est dit à l'utilisateur — il n'a rien demandé, rien n'est cassé.
- Toucher aux pièces jointes périme le dépôt : le garder ferait travailler le modèle sur une matière qu'on croit avoir changée, ce qui est le pire des deux mondes.
- 1153 contrôles au banc.
DÉPOSER UN DOCUMENT — la carte, la plaquette, la liste de prix
- Recopier à la main la carte d'un restaurant dans un formulaire est un travail de copiste : quarante lignes, des prix, des accents, et une faute de frappe quelque part. Le document existe déjà.
- Un bouton « Joindre », et surtout le glisser-déposer sur toute la fenêtre : restreindre la zone obligerait à viser, et l'on lâche un fichier sur une fenêtre, pas sur un rectangle de cent points de côté.
- Trois chemins selon le format, et le choix n'est pas arbitraire. Le PDF part TEL QUEL — le service sait le lire nativement, mieux que nous ne saurions le faire : extraire du texte d'un PDF demande de décompresser ses flux, de suivre ses opérateurs et de démêler ses encodages, et le résultat reste du charabia dès que la police est encodée par identifiants. Le Word est ouvert ici — c'est une archive contenant un document XML, trente lignes de code et aucune dépendance. Le texte brut se lit.
- Un mot coupé en trois par un passage en gras est recollé, les entités résolues, les paragraphes gardés : sans quoi une carte deviendrait une seule phrase de quarante plats.
- Les images et les documents ne se confondent pas : une photo dit « fais quelque chose qui ressemble à ça », un menu dit « voici ce qu'il faut écrire ». Les confondre donnerait une affiche illustrée par une liste de prix.
- Le contenu déposé est démarqué dans la consigne, avec ordre de n'y rien ajouter : sans annonce, quarante lignes de plats se mêleraient aux consignes de style et le modèle ne saurait plus ce qu'il doit composer de ce qu'il doit suivre.
- Le poids en jetons est annoncé avant l'envoi — un document de dix pages coûte à chaque demande, et l'on préfère le savoir avant la facture.
- Les documents entrent dans l'empreinte du cache : la même consigne avec deux menus différents est bien deux demandes différentes, et les confondre rendrait la première réponse pour la seconde.
- Dix mégaoctets au plus : au-delà, c'est un catalogue entier, que le modèle ne lira pas mieux et qui coûterait cher en jetons.
- 1145 contrôles au banc.
L'ÉDITEUR DU CALQUE — retoucher le texte sans rien redemander
- Le calque est du vectoriel : sa police, sa taille, sa couleur et sa place se changent instantanément et sans frais. Redemander une image pour déplacer un titre de trois millimètres coûterait quatre centimes et trois minutes, pour un résultat qui ne serait de toute façon pas le même.
- Les gestes : molette sur un bloc pour la taille, majuscule et molette pour faire défiler les polices, clic droit pour faire défiler les couleurs, glisser pour déplacer. Le clic droit est le geste le plus rapide pour juger — on ne choisit pas une couleur dans l'absolu, on la compare à la précédente sur le fond réel.
- Un panneau montre le bloc survolé : son texte, sa police, sa taille, les couleurs de la palette avec leur contraste sur le fond réel sous CE bloc. La même couleur se lit très bien sur un bandeau et pas du tout trois centimètres plus loin.
- Le contraste est recalculé après chaque déplacement : c'est justement en bougeant un bloc qu'on lui fait passer un fond clair pour un fond sombre.
- « Trouver la police la plus proche » substitue une famille du catalogue à celle que le modèle a nommée — il en invente volontiers une qui n'est installée nulle part, et le fichier s'ouvre alors dans une police de repli.
- On revient à la proposition d'origine bloc par bloc. Tout remettre à zéro pour un titre qu'on regrette effacerait les quatre autres qui allaient bien.
- Le fond se masque d'une case, pour juger le calque seul.
- Le SVG n'est réécrit qu'à la fermeture : tant qu'on retouche, on travaille sur la liste des blocs. Et chaque balise est alors reconstruite d'un seul tenant — une balise retouchée dix fois porterait des attributs contradictoires entre son style et ses attributs, et l'on ne saurait plus lequel gagne.
- Les caractères interdits en XML sont échappés, l'esperluette en premier : un nom d'entreprise contenant « & » romprait le document.
- 1134 contrôles au banc.
LE CALQUE DE TEXTE EST BRANCHÉ — le moteur de la 3.99 sert enfin
- Un bouton « Composer le texte en vectoriel » paraît une fois l'image obtenue. L'image repart au modèle, qui rend un calque SVG contenant UNIQUEMENT du texte, en une seule couleur.
- C'est un appel de TEXTE, pas d'image : quelques centaines de jetons contre quatre centimes de génération. On peut donc le refaire sans y regarder, ce qui n'est pas le cas d'un tirage.
- L'image n'est jointe que pour l'inspiration et le placement — elle dit où sont les zones calmes, pas quelles couleurs employer. Les couleurs sont décidées ici, d'après votre palette.
- Chaque bloc est échantillonné sur le fond RÉEL qui se trouve derrière lui, ligne de base comprise : en SVG, l'ordonnée d'un texte est sa ligne de base et non son sommet — les lettres montent au-dessus, et prendre le rectangle sous le point d'ancrage échantillonnerait ce qui est sous le texte, pas derrière.
- La police du bloc Typographie est imposée au calque AVANT la coloration : la coloration réécrit les balises, et l'imposer après annulerait une partie du travail.
- Le compte rendu dit combien de blocs ont été composés, et combien ont dû sortir de la palette pour rester lisibles. Quatre fichiers à l'export
- Le fond seul, le calque monochrome, le calque colorié, et le visuel composé — ce dernier autonome, l'image y étant encodée, si bien qu'il s'ouvre n'importe où sans traîner ses voisins.
- Le monochrome n'est pas un brouillon : une seule encre se sépare sans travail, et c'est la base d'une dorure à chaud ou d'un vernis sélectif. Un imprimeur le demandera tel quel.
- 1121 contrôles au banc.
DEUX CENT DOUZE ASTUCES pendant qu'on compose
- Remplir cinq écrans laisse des temps morts : on hésite sur un mot, on cherche un ton, on relit. Autant que ce temps apprenne quelque chose.
- Neuf domaines : typographie, couleur, mise en page, impression, rédaction, écran, symbolique, métier, histoire. De la règle utile — soixante-cinq signes par ligne, 4,5 pour 1 de contraste minimum, trois millimètres de fond perdu — à l'anecdote : Futura est allée sur la Lune, le mauve fut découvert par un chimiste de dix-huit ans qui cherchait un remède contre la malaria, le premier produit passé au code-barres fut un paquet de chewing-gums.
- Elles ne se répètent pas tant que le tour n'est pas fait. Tirer au hasard à chaque fois ferait revenir la même trois fois de suite — et rien ne lasse plus vite qu'un conseil qu'on vient de lire. Le catalogue est mélangé une fois, parcouru en entier, puis remélangé.
- Une astuce neuve à chaque étape, et le cadre se clique pour passer à la suivante : on lit rarement une astuce sans vouloir la suivante.
- Le cadre disparaît entièrement quand les astuces sont décochées ou que le catalogue est vide — un cadre vide poserait la question de ce qui manque.
- Débrayable depuis les réglages, onglet API.
- 1114 contrôles au banc.
Garder et recharger une demande
- Composer une demande prend cinq écrans et dix minutes de réflexion. La refaire de mémoire pour changer un seul mot était décourageant, et l'on finissait par ne plus essayer — c'est ainsi qu'on s'arrête à la première version au lieu d'aller chercher la bonne.
- Deux boutons dans la barre du bas : Enregistrer propose un nom tiré de ce qu'on fabrique et vérifie qu'il n'en double aucun autre ; Charger ouvre la liste des demandes gardées, la plus récente en tête.
- Un fichier par demande, dans un dossier voisin du logiciel, et dans un format lisible : une demande se copie, se renomme, s'envoie à quelqu'un, se range dans le dossier d'un client, s'ouvre pour corriger un mot.
- Recharger REMPLACE la demande en cours et revient à la première étape : les écrans se construisent à partir du support, et rester sur celui des textes après avoir chargé une demande d'un autre support montrerait des champs qui ne correspondent plus à rien. Le garde-fou du cache
- Le modèle ne rend jamais deux fois la même chose. Relancer une demande identique en espérant une autre proposition ne donnerait que la copie gardée — et l'on chercherait longtemps pourquoi.
- Le dernier écran annonce donc, AVANT l'envoi, que la demande a déjà été faite et qu'elle sera rejouée sans frais ni attente. Une case permet de forcer un nouveau tirage, en disant qu'il sera facturé.
- L'empreinte annoncée est calculée sur la consigne qui partira réellement, y compris quand on a écrit la sienne : la calculer autrement ferait annoncer un rejeu qui n'aurait pas lieu, ou l'inverse.
- Le message tient compte du réglage : cache éteint, il prévient que la demande sera facturée à nouveau. Les fonds perdus
- Proposés cochés sur tout support destiné à l'impression : trois millimètres de chaque côté, ajoutés aux dimensions demandées. Un imprimé se coupe après impression et la lame ne tombe jamais au dixième de millimètre près — l'oubli coûte un retirage, la case coûte trois millimètres.
- 1108 contrôles au banc.
LE CACHE DES RÉPONSES — mettre au point ne coûte plus rien
- Régler une interface demande de relancer vingt fois la même demande pour regarder un alignement, une couleur, un survol. Chacune coûtait de l'argent et trois minutes d'attente, pour un résultat qu'on connaissait déjà par cœur.
- Les réponses sont désormais gardées sur le disque. La clé est l'empreinte de tout ce qui détermine la réponse — modèle, consigne, proportions, résolution, images jointes — et rien d'autre : y glisser l'heure rendrait le cache inutile, puisqu'aucune demande ne retomberait sur la même clé.
- Les images jointes comptent par leur CONTENU et non par leur nom : deux fichiers identiques nommés différemment sont la même demande.
- Une réponse rejouée n'est pas facturée, et le compteur ne bouge pas. C'est le point qui compte : un cache qui décompterait quand même n'aurait aucun intérêt. D'où deux compteurs — les images obtenues, et celles payées.
- Le cache est un DOSSIER de fichiers posé à côté du logiciel, pas une base : on l'ouvre, on regarde les images qu'on a payées, on en supprime une pour forcer un nouveau tirage. Un mécanisme de mise au point doit rester inspectable.
- Une panne de cache n'est jamais une panne du logiciel : disque plein, dossier en lecture seule, fichier abîmé — on part comme s'il était vide et l'on paie la demande. L'inverse serait absurde.
- Réglage, état et vidage dans l'onglet API. Décocher agit sur-le-champ. Corrigé
- La dépense doublait. Deux lignes de comptage consécutives s'étaient glissées au même endroit lors de la reprise de 3.96.0 : chaque appel était compté deux fois, sans que rien ne le signale. Un contrôle du banc l'interdit désormais.
- 1102 contrôles au banc.
LE CALQUE DE TEXTE EN VECTORIEL — le moteur
- Un modèle d'image dessine le texte comme il dessine le reste : approximatif. Les lettres se déforment, des mots s'inventent, et c'est le défaut le plus visible d'un visuel produit ainsi. La parade tient en deux temps — le FOND par le modèle d'image, le TEXTE en vectoriel par-dessus.
- Le calque arrive en une seule couleur, et c'est voulu. Laisser le modèle choisir ses teintes reviendrait à sortir de la palette dans un logiciel qui ne sert qu'à la tenir. Le noir n'est qu'un marqueur : chaque bloc reçoit ensuite la couleur de la palette qui contraste le mieux avec ce qui se trouve VRAIMENT sous lui.
- C'est là tout l'intérêt du procédé : un nom posé sur un bandeau sombre et des coordonnées posées sur du blanc ne peuvent pas porter la même encre, et une couleur unique disparaîtra toujours quelque part.
- La palette passe avant tout. Le blanc et le noir purs battent presque toujours une couleur teintée au jeu du contraste : les mettre en concurrence directe reviendrait à ne jamais employer la palette. La meilleure couleur de la palette est retenue dès qu'elle atteint le seuil, même si un extrême ferait mieux ; les extrêmes ne viennent qu'en dernier recours.
- Le triangle d'alerte signale la sortie de palette, non l'illisibilité. Le banc a démontré qu'un texte n'est jamais illisible dès lors que le blanc et le noir restent en secours : au pire fond possible — un gris à 0x75 — le meilleur des deux atteint encore 4,61. Une alerte d'illisibilité serait un drapeau qui ne se lèverait jamais.
- La police est imposée après coup, jamais espérée. Demander la police dans la consigne ne suffit pas : le modèle en choisit une autre quand la sienne lui semble mieux venue, et l'on ne s'en aperçoit qu'à l'ouverture du fichier.
- L'espace de noms du SVG est rétabli d'office — le modèle l'oublie ou l'écrit de travers, et un fichier au mauvais espace de noms ne s'affiche pas du tout.
- Le fond est encodé DANS le fichier et inséré comme premier enfant : en SVG l'ordre d'écriture est l'ordre d'empilement, et un fichier qui pointe vers une image voisine cesse de s'afficher dès qu'on l'envoie.
- Fonds perdus : trois millimètres de chaque côté, ajoutés aux dimensions demandées. Un imprimé se coupe après impression et la lame ne tombe jamais au dixième de millimètre près.
- 1096 contrôles au banc.
- Vingt-deux supports d'écran ajoutés — le web était le parent pauvre. Il n'y avait qu'une « bannière web » générique là où les régies imposent des formats précis : leaderboard, pavé, gratte-ciel, bannière mobile, bannière large, habillage de page.
- Et tout ce qui va avec un site : bandeau d'accueil, bandeau de page intérieure, vignette de partage d'article, visuel de fiche produit, bandeau de boutique, fenêtre modale, icône de site, icône d'application, écran de lancement.
- Côté réseaux et vidéo : publication verticale, planche de carrousel, bandeau de chaîne, arrière-plan de visioconférence, signature de courriel, fonds d'écran d'ordinateur et de téléphone.
- Ce qui vit sur un écran porte ses POINTS, pas des centimètres. Une bannière se commande en « 728 × 90 », une story en « 1080 × 1920 » : ce sont les tailles que les régies imposent et que tout le monde emploie. Les convertir en centimètres n'aurait aucun sens, et les réduire à un rapport ferait perdre la seule information utile. Les douze supports d'écran existants ont reçu les leurs.
- Le catalogue compte 126 supports.
- 1085 contrôles au banc.
Le catalogue des supports : de trente-quatre à cent quatre
- Il ne contenait ni menu de restaurant, ni faire-part de mariage — deux des demandes les plus ordinaires qui soient. Un catalogue qui ne couvre pas le cas courant envoie chercher ailleurs.
- Sept familles nouvelles : événements et faire-part (mariage, save the date, plan de table, marque-place, naissance, baptême, condoléances, billets, badges), restauration (carte, menu du jour, carte des vins, ardoise, set de table, chevalet, emballage à emporter), commerce et promotion (étiquette de prix, affiche promotionnelle, PLV, vitrophanie, bon de réduction, sac), signalétique et grand format (enseigne, panneau de chantier, totem, adhésif de véhicule, banderole, plaque), documents professionnels (CV, facture, devis, présentation, organigramme, infographie), textile (t-shirt, tote bag, casquette, tablier, sweat) et objets publicitaires (mug, gourde, calendrier, magnet, porte-clés).
- La papeterie s'étoffe : dépliants deux et trois volets, brochure, enveloppe, bloc-notes, chemise à rabat, marque-page, cartes postale et de correspondance. Les formats se disent en centimètres
- C'est en centimètres qu'on pense un imprimé : « dix par quinze » se voit, « 2:3 » demande un calcul que personne ne fait. Chaque support destiné à l'impression porte désormais ses dimensions réelles, et le rapport d'image en découle — il n'a de toute façon qu'une poignée de valeurs possibles, celles que le modèle accepte.
- Le rapport le plus proche est choisi sur le LOGARITHME de la proportion et non sur l'écart brut : entre 2:3 et 3:2, l'écart brut vaut 0,83 d'un côté et 0,17 de l'autre alors que ce sont deux fois la même proportion, couchée et debout. Un écart brut favoriserait systématiquement les formats étroits. La dépense
- Une estimation par demande apparaît dès qu'il y a de quoi la fonder — trois demandes au moins. En dessous, rien n'est avancé : une prévision fondée sur un ou deux appels donne un chiffre qui a l'air d'en être un, et l'on s'y fie. Quand une réserve est créditée, elle annonce combien de demandes elle tient encore.
- Le modèle rapide et la résolution 1K sont les valeurs par défaut. On cherche et l'on itère bien plus souvent qu'on ne produit une version finale : commencer en 2K faisait payer à chaque essai le prix d'un rendu qu'on jette.
- 1083 contrôles au banc.
- Le taux dollar-euro est relevé auprès de la Banque centrale européenne, et mis en cache une semaine. Le chercher à chaque demande serait absurde : un appel réseau de plus pour une valeur qui ne bouge pas d'un jour à l'autre au point de changer un centime d'estimation. Et le service fige son PROPRE taux au premier jour du mois — une semaine est déjà plus fin que ce qu'il applique.
- Un bouton relève le taux sur-le-champ ; le relevé automatique se décoche pour qui préfère une valeur figée ou travaille hors ligne.
- Un échec n'est jamais une panne : le dernier taux connu reste en place. Une date de relevé illisible force un nouveau relevé — mieux vaut un appel de trop qu'une estimation calculée sur un taux d'il y a six mois. Un taux absent, nul ou invraisemblable n'est jamais retenu : il ferait passer toutes les dépenses pour gratuites.
- Le détail des demandes s'ouvre depuis les réglages : date, modèle, images, jetons et coût de chacune. Un total ne dit pas où l'argent est parti — le détail, lui, montre qu'une série de quatre variantes en modèle soigné pèse autant que trente demandes en modèle rapide.
- Les jetons BRUTS y figurent à côté du coût : le jour où une grille tarifaire change, les comptes se refont à partir d'eux. Et quand la dépense totale dépasse ce que le tableau détaille — les plus anciennes lignes sortent au-delà de deux cents — il le dit, pour qu'on n'y voie pas une erreur de calcul.
- 1075 contrôles au banc.
Le bug de la clé
- La pastille AI restait allumée sur une clé inutilisable, et la fenêtre s'ouvrait pour rien. Seule la PRÉSENCE de la clé était testée : un secret chiffré pour une autre session — présent, illisible — passait pour valide, et une clé que le service venait de refuser aussi. On composait sa demande sur cinq étapes, et l'échec n'arrivait qu'au bout.
- La clé doit désormais être là, LISIBLE, et non refusée. Le refus constaté au démarrage éteint la pastille et ferme la porte tout de suite, en disant pourquoi.
- L'icône qui disparaissait après un passage par les réglages venait de la copie incomplète corrigée en 3.95.0 : la clé n'était pas recopiée, et la fermeture des réglages l'effaçait. La fenêtre de création
- Elle se déplace enfin, par son en-tête. Sans barre de titre du système, rien ne permettait de la pousser : elle restait clouée au centre, par-dessus la palette et les blocs qu'on veut justement regarder en composant sa demande. Le suivi de la dépense
- Le service ne publie ni solde ni quota consultable : aucun point d'accès ne dit « il vous reste tant ». Ce qu'il renvoie, à chaque réponse, c'est le décompte exact des jetons consommés — le coût se calcule donc ici.
- On crédite une RÉSERVE en euros de ce qu'on a payé ; chaque demande est décomptée d'après les jetons déclarés et la grille du modèle employé. Une réserve épuisée empêche d'ouvrir la création.
- C'est une estimation, et le logiciel le dit : les grilles sont en dollars, converties au taux du premier jour du mois, et la facture réelle inclut la taxe. Le taux se règle à la main — un taux de marché rafraîchi à la seconde n'apporterait qu'une fausse précision.
- Les jetons de RÉFLEXION comptent au tarif de sortie, où ils sont facturés : les oublier sous-estimerait lourdement les tâches longues. Les deux écritures du service — camel et souligné — sont lues, un décompte manqué étant une dépense invisible.
- Le journal garde les jetons BRUTS en plus du coût : le jour où une grille change, les comptes se refont. Deux cents lignes au plus — le fichier de réglages n'est pas une base de données — sans que le cumul dépensé bouge.
- Un modèle inconnu hérite d'une grille plutôt que d'être compté gratuit : rendre zéro serait pire que de se tromper, la réserve ne bougerait plus et l'on croirait ne rien dépenser.
- 1069 contrôles au banc.
Une seule barre pour le bloc palettes
- Les commandes étaient éparpillées à CINQ endroits : deux icônes de fichier en colonne à droite des damiers, trois autres coincées autour du champ de recherche — dont elles n'ont rien à voir. Et les deux disquettes, l'une pour un fichier et l'autre pour la base, se confondaient.
- Une bande unique en haut du bloc, dans l'ordre où l'on s'en sert : création assistée, enregistrer dans un fichier, charger un fichier, ranger dans la base, tirage aléatoire.
- Nouvelle icône pour « ranger dans la base ». Celle de « charger » porte une flèche MONTANTE : l'employer pour le geste inverse aurait fait deux boutons identiques qui font le contraire l'un de l'autre. Création assistée
- La pastille AI paraît aussi dans les blocs harmonie et analyse d'image. Une harmonie qu'on vient de composer, ou les dominantes qu'on vient de relever sur une image, sont les meilleurs points de départ pour un visuel — il fallait les verser dans la palette avant de pouvoir les confier au modèle.
- La palette envoyée est écourtée au nombre réglé (douze par défaut, zéro pour « toutes »). Elle monte à deux cent quarante-six cases : les envoyer toutes noierait la consigne sous une liste d'hexadécimaux, et un modèle qui reçoit quatre-vingts couleurs n'en respecte aucune. Vérification au démarrage
- La clé est vérifiée une fois la page de lancement effacée, sans rien bloquer. Un message éphémère annonce la clé, la disponibilité du modèle réglé et les images restantes avant le plafond. Une clé révoquée ou un modèle retiré du catalogue ne se découvraient qu'au moment de créer un visuel, c'est-à-dire trop tard.
- Le « crédit restant » n'est pas inventé : le service ne publie ni solde ni quota consultable. Ce qui est annoncé est le compteur tenu ici, face au plafond que vous vous êtes fixé.
- Dans les réglages, une pastille verte marque les modèles que votre clé atteint vraiment. Tant qu'aucune vérification n'a eu lieu, aucune pastille : une liste vide ne veut pas dire « aucun modèle », elle veut dire « on ne sait pas encore ».
- La vérification se désactive d'une case dans l'onglet API. Corrigé
- La copie des réglages oubliait TOUT LE BLOC API — clé, modèle, résolution, plafond, compteur. Cette copie sert de photographie « avant » à l'historique : annuler un changement quelconque rendait un jeu de réglages sans clé d'API. Un contrôle du banc parcourt désormais les propriétés une à une et vérifie qu'elles traversent la copie — une propriété neuve est couverte le jour où elle est écrite, sans que personne y pense.
- 1060 contrôles au banc.
Bloc harmonie
- Le trait entre les cases vaut trois points, puis deux, puis UN à partir de quatre-vingt-dix échantillons.
- BUG : les infobulles annonçaient « seize satellites » quel que soit le réglage. Un chiffre écrit en dur dans un texte vieillit dès que le curseur bouge, et il dit alors le contraire de ce que l'écran montre. Elles sont réécrites à chaque recomposition de la grille. Bloc palettes
- Les deux icônes de chaque ligne ne se laissent plus écraser. Elles avaient la taille des échantillons pour se fondre dans la palette ; à quatorze points, un dessin de flèche ou de corbeille n'est plus qu'un pâté. Ce qui compte n'est pas qu'elles se distinguent peu, c'est qu'elles se RECONNAISSENT.
- Le clic droit sur le nom ouvre son menu, et le menu ouvre un éditeur : renommer, retirer une couleur, la dupliquer. Il fallait auparavant charger la palette — ce qui écrase la palette courante au passage —, modifier, réenregistrer sous le même nom, puis supprimer l'ancienne.
- L'éditeur travaille sur une COPIE : tant qu'on n'a pas validé, la base n'a rien vu. Un renommage écrit la nouvelle entrée AVANT de retirer l'ancienne, et le tout s'annule d'un Ctrl+Z. Bloc déviations
- Le nom porte l'explication, et le point d'interrogation disparaît. Cinq rangées, cinq pastilles « ? » en file : elles prenaient une colonne entière pour ne rien montrer, et il fallait deviner que l'explication était derrière l'une d'elles.
- La colonne des noms passe de quatre-vingt-seize à soixante-douze points — c'était de la place prise aux échantillons, qui sont ce qu'on vient regarder.
- La rangée des harmonies monte aussi haut que les autres. Dix écarts seulement : le curseur poussé au bout la laissait deux fois plus courte que ses voisines, un trou dans une grille par ailleurs régulière. Bloc sélecteurs
- Le tiroir du compte est centré sous l'icône qu'il règle. « Bottom » colle le bord GAUCHE du panneau sur celui de la cible : un tiroir plus large que l'icône partait tout entier vers la droite.
- Et il suit TOUS les défilements. Le bloc a son propre défileur ET vit dans celui de la pile : ne s'accrocher qu'au plus proche le laissait suspendu dès qu'on faisait défiler la fenêtre entière.
- L'onglet actif garde la taille des autres. Le gras élargissait son texte sans que sa languette suive : les lettres venaient toucher le bord. Il porte désormais un filet #3A3C52 — posé sur TOUS les onglets, transparent par défaut, sans quoi l'actif s'élargirait de deux points au moment même où il se distingue.
- Triangle et carré resserrés, rond du choix unique réduit : leurs sommets touchaient presque le bord et les pastilles se faisaient rogner par le bouton.
- 1051 contrôles au banc.
- LA BIBLIOTHÈQUE N'A PLUS QU'UN CHAMP, ET IL ANNONCE QU'IL CHERCHE. Il y en avait deux, que rien ne distinguait à l'œil : l'un pour écrire le nom sous lequel enregistrer, l'autre — replié — pour chercher. Le premier laissait croire qu'il fallait nommer AVANT d'enregistrer. Le champ restant porte son invite en clair : « Rechercher ». Une infobulle ne se lit qu'en s'y attardant, une invite se lit sans rien faire.
- Le texte d'invite est désormais disponible pour TOUS les champs du logiciel, d'un seul attribut : le gabarit des champs est unique, l'invite l'est aussi.
- Le nom se demande dans l'invite d'enregistrement, et il est proposé LIBRE. La base range par nom : enregistrer sous un nom déjà pris écrasait silencieusement la palette précédente. Le nom proposé n'en double donc aucun autre, et le verdict se lit PENDANT qu'on écrit — la validation est refusée sur un doublon plutôt que simplement signalée, car un avertissement qu'on peut ignorer d'un clic ne protège de rien.
- Les étiquettes que les couleurs dictent arrivent déjà cochées. Une palette de rouges est chaude, une palette de bleus est froide, une palette sans saturation est neutre : ces trois constats se lisent sur les teintes, sans rien demander. Un choix qu'on rectifie coûte moins cher qu'un choix qu'on doit faire. Rien n'est deviné au-delà des nombres — « fêtes », « luxe » et « voyage » relèvent de l'intention et restent à l'utilisateur.
- LA CLÉ D'API « QUI NE FONCTIONNE PAS » : elle était présente mais ILLISIBLE. Un secret est chiffré POUR UNE SESSION Windows. Un fichier de réglages recopié d'un autre poste, d'un autre compte, ou simplement d'un dossier de publication à l'autre contient bien quelque chose — la présence était donc constatée et le fichier déposé ignoré — mais ce quelque chose ne se déchiffre plus.
- Le logiciel vérifie maintenant que la clé se LIT, pas seulement qu'elle est là ; une clé illisible cède la place au fichier déposé, et ce qui vient d'être écrit est relu pour confirmer. Le journal dit chaque étape.
- 1039 contrôles au banc.
- LE JOURNAL A DONNÉ LES DEUX CAUSES. « Palettes=160×220 » y figurait noir sur blanc alors que la vue en réclamait trois cents : une TABLE DE DIMENSIONS ÉCRITE EN DUR subsistait dans le modèle de réglages, et elle primait sur la mesure. Palettes y passe à 300, Déviations à 240.
- Et « Largeur remise à celle de l'ouverture : 783 → 661 » disait le reste : c'était notre propre verrou qui empêchait la fenêtre d'atteindre sa taille. Ce verrou existe pour qu'une géométrie enregistrée n'écrase pas la taille calculée à l'ouverture ; il refusait aussi, du même geste, la taille que la MISE EN PAGE réclame. La fenêtre était donc ramenée sous ce que son contenu demandait, et les blocs des bords se retrouvaient tronqués.
- Un agrandissement n'est désormais jamais refusé ni annulé, ni par le poseur, ni par la retenue de propriété : la valeur plus grande est adoptée et devient la nouvelle taille d'ouverture.
- Et c'est l'ouverture qui suit le plancher, non l'inverse. Raboter le plancher à la taille d'ouverture revenait à décréter que les blocs tiendraient dans une fenêtre trop étroite — ils n'y tenaient pas, ils débordaient.
- DEUX DIAGNOSTICS AJOUTÉS, en clair et une seule fois par état : le partage des largeurs écrit la place dont il dispose, ce que chaque rangée réclame et combien de blocs elle porte ; et une taille venue d'un « chemin qui ne passe par aucun de nos réglages » NOMME enfin son appelant par la pile d'appels.
- 1034 contrôles au banc.
- LA FENÊTRE NE S'ÉLARGISSAIT TOUJOURS PAS : les dimensions étaient APPLIQUÉES AVANT D'ÊTRE RELEVÉES. Les largeurs et hauteurs réclamées se lisent dans une table que SEUL le relevé remplit à partir des réglages. Appliquer avant de relever revenait à travailler sur les valeurs de la session précédente : le partage des largeurs ne voyait aucun changement, et rien ne bougeait. C'est ce qui a rendu le correctif de la 3.90.0 sans effet — il était juste, mais il lisait de vieilles valeurs.
- L'ordre est inversé partout, et un contrôle du banc interdit désormais l'inverse.
- Un passage par les réglages entre dans l'historique. Régler une largeur de bloc ou un zoom est un geste comme un autre : le défaire ne demande plus de rouvrir la fenêtre et de retrouver la valeur d'avant de mémoire.
- Deux copies FIGÉES sont confiées au journal, l'avant et l'après : lui remettre les objets vivants reviendrait à lui donner deux références vers ce que la suite va modifier, et les deux états finiraient identiques. L'enregistrement a lieu APRÈS l'application, car changer de style d'interface vide le journal.
- 1032 contrôles au banc.
- La bibliothèque de palettes réclame 300 points de large, les déviations 240. La bibliothèque montre un nom de palette et ses pastilles sur la même ligne : à cent quarante points, le nom mangeait tout et les couleurs se réduisaient à des traits. Les déviations alignent six rangées de sept échantillons, qui ne se distinguent plus en dessous de deux cent quarante.
- Ces minimums sont déclarés sur les VUES et relevés par la mesure : ils deviennent ainsi les valeurs par défaut de la page « Dimensions » sans qu'aucune taille soit écrite en dur dans la fenêtre. Une valeur déjà réglée à la main continue de primer — le bouton « Revenir aux dimensions mesurées » reprend les nouvelles.
- 1030 contrôles au banc.
- JAMAIS UN BLOC N'EST TRONQUÉ : régler une largeur élargit la fenêtre si besoin. La table qui dit ce que chaque bloc réclame en largeur — celle qui décide des retours à la ligne et de l'élargissement — n'était remplie qu'au MONTAGE du bloc dans la pile. Régler une largeur dans la page « Dimensions » posait donc un plancher sur le bloc sans que le rangement en sache rien : la somme des largeurs dépassait la fenêtre, aucun débordement n'était constaté, et les blocs des bords sortaient de l'écran.
- Le réglage relit désormais les largeurs réclamées, relance le partage — qui seul mesure la place consommée et élargit la fenêtre du manque — puis réaccorde les hauteurs. Les partages tirés à la poignée sont oubliés au passage : ils décrivaient une répartition qui ne tient plus.
- Et aucune largeur posée ne dépasse la place elle-même. Le panneau enveloppant ne peut pas renvoyer à la ligne un bloc qui, seul, ne tient pas : il le laisse déborder et le bord le tronque. Quand l'écran est plein et qu'on ne peut plus élargir, mieux vaut un bloc un peu serré qu'un bloc coupé.
- 1029 contrôles au banc.
- BOUCLE SANS FIN APRÈS UN RÉGLAGE DE DIMENSIONS — corrigée sur les deux fronts. La rangée devenue trop large réclamait un élargissement, que le verrou d'ouverture refusait : la fenêtre gardait sa taille, la rangée débordait toujours, et la passe suivante redemandait exactement le même élargissement. Une ligne au journal toutes les deux cents millisecondes, indéfiniment.
- Cause immédiate : régler les dimensions des blocs EST un geste explicite, et libère donc la taille — le verrou ne garde que ce que l'ouverture a calculé, tant que l'utilisateur n'a pas repris la main.
- Garde-fou structurel : une pose de largeur restée SANS EFFET clôt la tentative, quelle qu'en soit la raison. Redemander ce qui vient d'être refusé ne peut rien donner de plus. Le journal le dit une fois, pas mille.
- Les poignées de la roue rapetissent quand elles se multiplient. Vingt-six points de diamètre conviennent à trois ou quatre points ; à douze, les disques se chevauchaient au point de masquer la roue elle-même — c'est la couleur sous le doigt qu'on ne voyait plus. Le diamètre décroît jusqu'à treize points, et le filet comme les tirets suivent la même pente : un trait de deux points et demi autour d'un disque de quatorze, c'est un anneau, plus une couleur.
- 1027 contrôles au banc.
- Le trait qui espace les cases du bloc Harmonie perd un point tous les vingt-six échantillons, de trois points à un — et pas moins : sans lui, le survol n'aurait plus rien à colorer pour désigner la case visée.
- Le nombre d'échantillons est borné à 246.
- La grille des satellites n'a plus ni cadre, ni retrait, ni arrondi. Le cadre doublait le liseré du bloc et l'arrondi mordait sur les cases des quatre coins ; ce sont les couleurs qui dessinent le rectangle.
- LES 477 NOMS DE PALETTES SONT FRANCISÉS ET REMIS EN FORME. Casse normalisée — une majuscule par mot, les petits mots de liaison exceptés —, accents rétablis (« etincelant » devient « Étincelant », « Hotel des Arts et Metiers » devient « Hôtel des Arts et Métiers »), et mots anglais traduits : « Merry Xmas » devient « Joyeux Noël », « Voyager Coffee Bag Labels » devient « Voyager Café Sac Étiquettes ».
- L'ORIGINAL EST GARDÉ, dans un quatrième champ du catalogue et une propriété du modèle : c'est lui qui servira le jour où le logiciel parlera plusieurs langues, et le perdre aurait rendu ce jour-là impossible. Le champ vient en DERNIER pour qu'un catalogue plus ancien, qui n'en a que trois, se lise sans rien changer.
- Noms propres, marques et genres esthétiques ne sont pas traduits : Monet, Hermès, Blade Runner, synthwave, vaporwave gardent leur identité.
- Les noms restent uniques : la casse normalisée et les traductions rapprochent des noms qui ne différaient que d'une majuscule ou d'une langue, et la base enregistre par nom — l'un aurait écrasé l'autre.
- 1024 contrôles au banc.
- LA GRILLE DU BLOC HARMONIE EST DÉSORMAIS PARFAITEMENT SYMÉTRIQUE, quel que soit le nombre d'échantillons. Autant de lignes au-dessus du pivot qu'en dessous, autant de colonnes à gauche qu'à droite.
- Deux causes, une seule règle : tout est impair. Un centre n'a de milieu que sur un compte impair — sur quatre colonnes, il n'y a pas de troisième place. La case du pivot obéit à la même règle : étendue sur DEUX cases, elle ne pouvait pas être centrée, et c'est ce qui faisait pencher toute la grille d'un côté. Colonnes, lignes et étendue du pivot sont maintenant toutes impaires, si bien que la moitié restante est exacte des deux côtés, sans arrondi et sans cas particulier.
- Plus aucun trou. Le nombre de cases offertes par une grille impaire tombe rarement sur le compte demandé : on tire donc autant de satellites qu'il y a de cases. Une dernière ligne à moitié vide ruinait la symétrie — c'était l'autre moitié du défaut.
- La forme se choisit sur deux PROPORTIONS et non sur des écarts bruts : les cases offertes en trop rapportées au nombre demandé, et l'écart entre colonnes et lignes rapporté à leur somme. Une grille de quatre-vingts cases qui en gaspille trois ne se juge pas comme une grille de six qui en gaspille trois.
- Le pivot s'agrandit à trois cases sur trois dès que la grille peut le porter, et reste impair pour rester centrable.
- 1021 contrôles au banc.
- La liste des palettes ne défilait plus, et n'avait plus de barre. La rangée étoilée était posée sur la ligne de RECHERCHE — qui n'a rien à étirer — et le défileur héritait donc d'une rangée automatique : il prenait la hauteur entière de ses cinq cents palettes, ne dépassait jamais sa place, et n'affichait aucune barre. La liste était simplement coupée par le bord du bloc, sans aucun moyen de voir la suite.
- La marque de dépôt paraît sans attendre : le bloc le plus PROCHE fait cible. Il fallait auparavant que le pointeur tombe DANS un bloc. Les gouttières, le vide au bout d'une ligne et les quelques points qui séparent deux rangées étaient autant de zones mortes, et le geste semblait mettre du temps à répondre alors qu'il n'avait tout simplement rien à viser. Un bloc reste visable à quarante-quatre points, et le pointeur est ramené sur son bord pour savoir de quel côté il se trouve.
- 1018 contrôles au banc.
- Une ligne sur deux est teintée dans la page « Dimensions ». Onze blocs alignés sur trois colonnes se lisent mal à l'œil nu, et un champ modifié de travers ne se rattrape pas. Le fond est celui des surfaces du thème, juste assez pour guider l'œil sans faire un tableau.
- Le rang est porté par la ligne elle-même : la propriété d'alternance de WPF vit sur le conteneur généré, pas sur le gabarit, et il faudrait aller la chercher par un ancêtre — un détour qui ne tient qu'à la structure interne des conteneurs.
- 1016 contrôles au banc.
- La barre d'insertion couvre toute la largeur de la ligne visée. Un bloc lâché au-dessus ou au-dessous d'une ligne s'y installe SEUL, en pleine largeur : tant que la marque tenait dans le bloc survolé, elle laissait croire qu'il irait se glisser sous celui-là seulement. Elle vit maintenant sur une couche libre au-dessus de la pile, où on lui donne les vraies bornes de la ligne — un voile enfermé dans un bloc ne pouvait pas dire autre chose que ce bloc.
- POIGNÉES DE COLONNE : la largeur se partage à la souris. Une poignée sur le flanc droit de chaque bloc écarte ce bloc et son voisin de droite, et eux seuls. Trois blocs sur une ligne offrent deux poignées ; chacune n'en remue que deux, la troisième colonne ne bouge pas d'un point.
- Leur SOMME est invariante : ce que l'un gagne, l'autre le perd. La rangée conserve donc sa largeur — sans quoi le panneau enveloppant renverrait un bloc à la ligne au premier point de trop.
- Même règle que pour les hauteurs : la largeur minimale réglée arrête la course. Aucun des deux blocs ne descend sous son plancher.
- La répartition obtenue est gardée en FRACTION de la rangée, pas en points : elle survit donc au redimensionnement de la fenêtre, que le rangement rejoue à chaque passe. Elle n'est rejouée que si toute la rangée en porte une, et un dépôt de bloc l'oublie — une répartition n'a de sens que complète.
- La poignée du dernier bloc d'une rangée s'escamote : elle n'aurait personne à écarter, et une poignée qui ne fait rien est pire qu'absente.
- 1015 contrôles au banc.
- LE GESTE MYSTÈRE ÉLUCIDÉ : lâcher un bloc sur lui-même le renvoyait en fin de pile. La recherche d'une cible ÉCARTE volontairement le bloc glissé — il ne peut pas se poser sur lui-même — et le dépôt lisait donc « aucune cible », c'est-à-dire « lâché dans le vide ». Or lâcher sur soi n'est pas lâcher dans le vide : c'est se raviser. Les deux cas sont désormais distingués, et relâcher sur son propre bloc annule le déplacement.
- Le curseur d'interdiction le dit avant le relâchement. Aucun voile ne peut s'afficher sur le bloc qu'on tient ; sans ce retour, on relâchait à l'aveugle.
- Les bandes de dépôt gardent une hauteur attrapable. Exprimées en seule part de la hauteur, elles se réduisaient à rien sur un bloc court. Un plancher de trente-quatre points garantit une cible visable quelle que soit la taille du bloc, et la barre bleue passe de dix à quatorze points.
- La solution des hauteurs de blocs est consignée dans le code, en tête du poseur : les cinq règles et les pièges qui les justifient. Un contrôle du banc empêche ce mémento de disparaître à la première relecture pressée.
- 1010 contrôles au banc.
- LES BLOCS ÉTAIENT CENTRÉS DANS LEUR LIGNE, et c'était tout le désordre. Un enfant de panneau enveloppant reçoit la hauteur de SA LIGNE. Tant qu'il n'a pas de hauteur propre, l'alignement par défaut l'étire et il commence donc en haut ; dès qu'on lui en impose une — ce que fait la 3.83.0 sur l'enveloppe — ce même alignement le CENTRE, et un bloc plus court que ses voisins descendait de la moitié de l'écart.
- Et le mal s'entretenait : les lignes se lisant aux ordonnées réelles depuis la 3.81.0, un bloc ainsi descendu n'était plus reconnu comme appartenant à la ligne de ses voisins — il gardait donc sa hauteur, ce qui le décentrait encore. D'où des blocs qui semblaient flotter à mi-hauteur les uns des autres.
- L'enveloppe est désormais calée en haut de sa ligne, explicitement.
- 1007 contrôles au banc.
- L'ALIGNEMENT DES BLOCS, cause définitive : la hauteur se posait sur le bloc et non sur son enveloppe. L'enveloppe est ce que l'œil voit et ce que la pile range — elle porte le bandeau de titre, la carte quand le bloc en reçoit une, et la poignée. Or ces habits DIFFÈRENT d'un bloc à l'autre : le bloc Palettes arrive déjà en carte et n'en reçoit pas de seconde, le bloc Sélecteurs n'a pas de bandeau mais un ruban d'onglets. Deux blocs de même hauteur intérieure occupaient donc à l'écran deux hauteurs différentes — la douzaine de points constatée entre Harmonie, Déviations et Palettes.
- La hauteur réglée est désormais celle du bloc VISIBLE, habits compris, et deux blocs d'une même ligne se terminent au même point par construction.
- Le corps retrouve sa rangée étoilée, sous une enveloppe de hauteur fixe. L'étoile avait été retirée en 3.80.4 parce qu'elle laissait le contenu s'étirer sans fin ; ce n'était pas elle la coupable mais l'absence de hauteur imposée au-dessus d'elle. Sous une enveloppe bornée, elle ne répartit que ce qui reste une fois le bandeau et la poignée servis.
- Un bloc monté dans la pile ne garde plus aucun plancher de hauteur : il l'empêcherait de rétrécir avec son enveloppe. Hors de la pile, le plancher reste ce qui garde le bloc lisible.
- Le relevé des dimensions ajoute l'habillage à la mesure du contenu, pour que la valeur proposée soit bien une hauteur de bloc et non de contenu.
- La pastille de création assistée se grise quand la palette est vide et dit pourquoi. La clé d'API dit si la création est possible, la palette si elle a de quoi travailler : ce sont deux conditions distinctes. Le bouton reste visible plutôt que de disparaître, et son infobulle paraît même grisé.
- L'état de la pastille suit chaque changement de la palette courante.
- 1006 contrôles au banc (1000 auparavant).
- La poignée ne descend plus un bloc sous ce que réclame son voisin. La règle est celle de l'onglet « Dimensions » : dans une ligne, la plus grande hauteur réglée prend le pas sur toutes les autres, toujours. Elle valait déjà pour l'harmonisation, pas pour le redimensionnement à la souris.
- Cause réelle du défaut : la poignée interrogeait encore la table des rangées pendant que l'harmonisation, elle, lisait les ordonnées à l'écran. La pile étant un panneau enveloppant, les deux ne désignaient pas la même ligne — tirer un bloc poussait des voisins qui n'étaient pas les siens et laissait les vrais sur place. Les deux passent désormais par le même relevé.
- Toute la ligne suit la poignée, dans les deux sens. Le bloc tiré ne descend plus seul « le temps de rattraper l'écart » : cet écart était précisément ce que la passe suivante effaçait.
- La hauteur tirée à la main survit au réarrangement — un changement de largeur de la fenêtre ne la remet plus au réglage — mais elle cède dès qu'une valeur est écrite dans la page « Dimensions ».
- La ligne n'est relevée qu'au premier contact de la poignée et rendue au relâchement : lire les ordonnées réelles impose une passe de mise en page, et l'imposer à chaque point parcouru rendait le glissement saccadé.
- Fond de la languette active du bloc Sélecteurs. Elle prenait la couleur de la coque de la fenêtre, plus sombre que le corps du bloc : elle paraissait sans fond, comme un trou dans le bandeau. Elle prend la même clé que les onglets de premier rang, et se confond donc avec le corps qu'elle ouvre.
- 1000 contrôles au banc (994 auparavant).
- Chaque ligne prend la hauteur de son bloc le plus exigeant, sur toutes les lignes. Le défaut venait d'une erreur de raisonnement : j'harmonisais les hauteurs d'après une table de rangées tenue par le logiciel, alors que la pile est un panneau enveloppant — c'est LA LARGEUR qui décide des retours à la ligne, et un bloc change de voisins dès qu'on resserre la fenêtre. Je groupais donc des blocs qui ne sont pas côte à côte.
- Les lignes se lisent désormais à l'écran : deux blocs qui commencent à la même ordonnée sont sur la même ligne, quoi qu'en dise n'importe quelle table. Le calcul se refait à chaque changement de largeur, donc à chaque fois qu'un bloc change de ligne.
- La comparaison porte sur la hauteur VOULUE et non sur celle déjà occupée : relire l'occupée ferait grandir la ligne à chaque passage.
- Retour en arrière sur la structure des blocs. La version 3.80.0 remplaçait la hauteur imposée par un simple plancher, pour que chaque bloc remplisse la place accordée. C'était une erreur, et une erreur grave : sans hauteur imposée, un bloc prend celle de son CONTENU. La bibliothèque de cinq cents palettes s'étirait donc sur toute la page, et la poignée n'avait plus rien à régler — le redimensionnement était perdu.
- La hauteur est de nouveau imposée, l'enveloppe retrouve ses trois rangées automatiques, et l'harmonisation d'une rangée repasse par la hauteur. Le redimensionnement remarche.
- Les blocs d'une rangée s'alignent enfin, sur toutes les rangées. La cause était structurelle : l'enveloppe d'un bloc avait ses trois rangées en taille automatique, si bien qu'elle se contentait de la hauteur de son contenu. Quand la rangée lui accordait davantage — parce qu'un voisin plus exigeant l'avait agrandie —, le bloc s'y calait en haut et laissait le vide en bas. La première ligne semblait correcte par hasard : ses trois blocs ont la même hauteur réglée.
- La hauteur réglée est désormais un plancher, jamais une hauteur imposée. Elle dit ce qu'il FAUT au bloc, pas ce qu'il doit occuper. Toute la chaîne suit la même règle — réglages, harmonisation, poignée de redimensionnement — de sorte que le bloc le plus exigeant d'une rangée donne sa taille aux autres, et que chacun la remplit.
- Les hauteurs réglées dans l'onglet « Dimensions » s'appliquent vraiment. Le réglage ne posait qu'un PLANCHER — lequel ne fait rien tant que le bloc n'est pas plus court, et la pile efface d'ailleurs les planchers en montant les blocs. Changer une hauteur ne changeait donc rien à l'écran tant qu'on n'avait pas tiré la poignée du bloc à la main. C'était la cause de fond des différences de hauteur, et elle n'avait rien à voir avec les blocs eux-mêmes.
- La rangée se règle sur son bloc le plus exigeant, à chaque application des dimensions. C'est la règle, sans exception : la plus grande hauteur d'une rangée l'emporte sur les autres. Deux voisins d'un bloc plus haut ne remontent plus en laissant un vide sous eux.
- Le bloc « Palettes » remplit enfin sa rangée. Sa liste était enfermée dans deux cent soixante points de hauteur, quelle que soit la taille donnée au bloc : l'agrandir laissait un vide sous la liste, et ce bloc-là ne s'alignait jamais sur ses voisins. Le plafond avait un sens quand la liste poussait le reste du bloc hors de l'écran ; elle vit dans une rangée étoilée depuis, et c'est la rangée qui borne.
- Sa rangée de commandes reprend la marge basse des autres blocs.
- L'onglet « Sélecteurs » a disparu. C'était la languette de titre du bloc, logée parmi les onglets : elle en avait l'apparence sans en avoir l'usage — on ne pouvait pas la sélectionner, et sa seule utilité était de porter le glisser. Une poignée la remplace, au même endroit, avec le curseur de déplacement. « Roue » devient le premier onglet.
- La rangée d'onglets s'aligne sur les languettes des autres blocs : même marge à gauche, même descente. Le retrait au-dessus du contenu est réduit de deux points — celui du gabarit général vaut pour une fenêtre, pas pour un bloc dont la rangée affleure.
- Le fond des onglets actifs passe à #24273F, la teinte des languettes de bloc. Un onglet actif et une languette disent la même chose — ce qu'on regarde —, et deux teintes pour une seule fonction se remarquent sans qu'on sache pourquoi.
- Le déplacement des blocs est réparé à la racine. Deux mécanismes harmonisaient la hauteur d'une rangée au lieu d'un seul : celui d'origine, appelé par le dépôt et le redimensionnement, et un second que j'avais ajouté dans la disposition sans voir que le premier existait. Ils faisaient la même chose avec des planchers différents, se répondaient à chaque mise en page, et le glisser-déposer en devenait impraticable. Le doublon est retiré.
- Une loupe déplie la recherche dans la bibliothèque de palettes. Elle reste repliée par défaut : un champ toujours présent mangerait une ligne du bloc à ceux qui ne cherchent rien. La replier vide le filtre et remet la liste au complet — garder un filtre actif derrière un champ invisible ferait croire à des palettes disparues.
- Un filtre par étiquette accompagne le champ, avec le compte de chacune. Les étiquettes sont relevées dans la base à chaque fois : en proposer une que personne ne porte mènerait à une liste vide.
- Toutes les palettes occupent la même largeur, quel que soit leur nombre de couleurs. À taille fixe, une palette de trois teintes s'arrêtait au tiers de la ligne pendant qu'une de vingt débordait sur deux rangs, et l'on ne pouvait plus les comparer d'un coup d'œil.
- Les étiquettes se choisissent au moment de nommer une palette. C'est le seul moment où l'on sait ce qu'elle est ; les demander plus tard reviendrait à ne jamais les poser. Plusieurs sont permises : un accord d'été peut être chaud et de voyage.
- La clé d'API se dépose dans un fichier. Le logiciel cherche au démarrage un fichier « .key » dans son dossier et y prend la clé Gemini : plus besoin de la ressaisir dans les réglages après chaque publication. Tous les fichiers « .key » sont examinés, quel que soit leur nom.
- Le format est pris large, parce qu'on ne se souvient jamais de la ponctuation exacte d'un fichier écrit six mois plus tôt : guillemets ou non, deux-points ou signe égal, « gemini_api_key », « gemini-api-key » ou « geminiapi_key ». Un gabarit qu'on a oublié de remplir n'est pas pris pour une clé.
- Une clé déjà réglée n'est jamais remplacée : celle qu'on a saisie à la main fait loi, et un vieux fichier oublié dans le dossier ne l'écrase pas au démarrage suivant.
- Nouveau script « publish_auto.bat » : ni question ni pause, il publie en mode autonome avec le journal, lance le logiciel et referme sa fenêtre. Un échec de compilation, lui, reste à l'écran — c'est précisément ce qu'on a besoin de lire.
- Quatre cent soixante-dix-sept palettes livrées avec le logiciel, relevées sur la bibliothèque publique d'Adobe Color et étiquetées : été, hiver, printemps, neutres, primaires, synthétique, fêtes, luxe, voyage — plus chaud et froid, qui ne se lisent pas dans un nom et se calculent donc sur les couleurs elles-mêmes. Une palette peut porter plusieurs étiquettes.
- Les doublons ont été écartés : une même palette revenait sous dix noms — « Copie de », « Copy of », « Kopie von » —, et deux accords qui ne diffèrent que d'un demi pour cent ne comptent que pour un. L'ordre des couleurs a été mélangé une fois pour toutes, pour que deux palettes voisines ne se ressemblent pas dès la première case.
- La recherche répond aux trois sens d'un mot. Taper « rouge » peut vouloir dire une palette qui s'appelle ainsi, une palette étiquetée ainsi, ou une palette qui contient du rouge : rien ne permet de deviner lequel est voulu, alors les trois répondent, les correspondances les plus franches d'abord. Un code hexadécimal désigne une couleur, avec la tolérance qu'il faut — personne ne retient un code au point près. Et les accents sont ignorés : « ete » trouve « été ».
- Le catalogue est embarqué dans le logiciel plutôt qu'écrit en dur : cinq cents palettes de cinq couleurs feraient trois mille lignes de code pour des données. Il n'est semé qu'une fois — qui supprime une palette n'a pas envie de la voir revenir au lancement suivant.
- Correction d'une exception à répétition dans le bloc des sélecteurs. Pour lui rendre son fond et son bord, j'avais surchargé deux ressources par un renvoi vers d'autres — une écriture qui paraît anodine et se résout de travers : la clé récupérait la valeur de l'entrée précédente, si bien qu'une épaisseur atterrissait dans une couleur. L'erreur tombait à l'affichage, pas à la compilation, et se répétait à chaque mise en page.
- Le fond et le filet du corps des onglets viennent désormais du contrôle lui-même, par deux propriétés ordinaires. Le repli reste la coque de la fenêtre, de sorte que rien ne change pour le jeu d'onglets principal.
- Le curseur de pas commande aussi la rangée des harmonies. Leurs angles ne dépendent pas de lui — une complémentaire est à cent quatre-vingts degrés, pas à « un pas » — mais leur nombre, si, comme pour toutes les autres rangées. Les écarts sont rangés du plus employé au plus rare, de sorte qu'en couper la fin retire les moins utiles.
- Les pastilles des palettes se prélèvent. Elles montraient ce qu'une palette contient sans qu'on puisse rien en faire : repérer la teinte qui convenait obligeait à charger toute la palette pour l'atteindre, en écrasant la sienne au passage. Clic gauche pour adopter, clic droit pour copier — la convention du logiciel, la même partout.
- Le bloc « Historique » passe en dernier, à côté des noms de couleurs : ces deux-là se consultent, ils ne servent pas à composer. En quatrième position il coupait la suite des outils de couleur au milieu.
- Les couleurs relevées sont reliées sur l'image, comme sur la bande de dégradé : un trait les parcourt du plus clair au plus sombre. Il dit que ces points forment une suite, et non un semis de prélèvements sans rapport entre eux. Le trait passe sous les ronds — par-dessus, il aurait coupé les pastilles en deux.
- Le déplacement des blocs retrouve son comportement d'avant. La bande de dépôt de hauteur fixe et la barre courant sur toute la largeur, essayées pour rendre le geste plus facile, déréglaient le placement : la marge négative qui faisait déborder la barre faussait la géométrie du bloc survolé. Ce qui marchait vaut mieux qu'une amélioration qui casse.
- Le bloc « Sélecteurs » a retrouvé son fond et son bord. En retirant la carte qui enfermait ses onglets dans le contenu, j'ai emporté avec elle le seul habillage qu'il avait : trois ressources étaient neutralisées justement parce que cette carte les rendait inutiles. Le corps des onglets reprend donc le fond, le filet et l'arrondi d'une carte — un cadre, et un seul.
- Les onze blocs sont posés au premier lancement, répartis sur cinq bandes. N'en montrer que quatre laissait découvrir les autres par hasard, dans un tiroir que rien n'invitait à ouvrir : on ne cherche pas ce dont on ignore l'existence. Ils se retirent d'un clic, geste plus facile à trouver que son contraire.
- Chaque bloc part avec des dimensions mesurées à l'usage plutôt que calculées au plus juste. Les tailles automatiques étaient lisibles, mais sans la respiration qu'on finit par leur donner à la main.
- Les réglages existants sont complétés sans être écrasés : une disposition composée à la main est conservée telle quelle, et seules les dimensions jamais réglées reçoivent une valeur.
- Le curseur du nombre d'échantillons attend cent millisecondes. Traverser la rangée pour atteindre le schéma du bout faisait surgir puis disparaître tous les tiroirs sur le chemin. Ce délai distingue un passage d'une intention, et l'ouverture vérifie qu'on survole toujours le schéma — la souris a pu repartir entre-temps.
- Le bloc « Déviations » tient sur une ligne par rangée. Le nom occupait sa propre ligne au-dessus de ses couleurs : cinq rangées faisaient dix lignes, et le bloc doublait de hauteur sans rien montrer de plus. Nom, commandes et échantillons sont désormais côte à côte, dans des colonnes de largeur fixe — sans quoi les boutons de chaque rangée tombaient à une abscisse différente et la colonne des couleurs partait en escalier. Les noms sont bornés à trente-deux caractères, le nom entier restant en infobulle.
- Un aller-retour dans les réglages n'efface plus l'historique. L'interface était remontée à neuf à chaque passage, fût-ce pour une case cochée, et le journal vidé au passage : des heures de gestes annulables disparaissaient sans que rien ne l'annonce. Rien n'est reconstruit tant que le style d'interface ne change pas.
- Chaque geste de l'historique porte son heure, en petit et en retrait — la date en plus s'il vient d'un autre jour. Le titre annonce combien de gestes sont retenus sur combien de demandés.
- Dix gestes sont gardés au-delà du nombre demandé, signalés en rouge : ils ne sont plus garantis, mais ils sont encore là quand on s'aperçoit que la limite était trop courte. Un bouton les oublie d'un coup — c'est un sursis, pas une fatalité.
- Le versement dans la palette annonce son résultat, et dit combien de couleurs n'ont pas trouvé de place. La palette est parfois hors de vue : rien ne distinguait un versement réussi d'un bouton sans effet.
- La taille de l'historique a rejoint l'onglet « Journal » : elle ne parle pas d'écriture mais de mémoire.
- Le format de couleur vaut pour tous les blocs. Le texte des réglages prétendait qu'il ne concernait que la barre de titre ; il est corrigé, et les codes écrits sous les échantillons se redessinent désormais quand on en change.
- L'onglet « Agencement » a disparu. Ses huit réglettes de proportions et sa case de séparateurs ne pilotaient plus rien depuis que les blocs se rangent d'eux-mêmes. Seule la mémorisation de la fenêtre servait encore : elle a rejoint la page qui parle de la fenêtre.
- La molette grossit enfin l'image du bloc d'analyse. La pile la prenait au passage et faisait défiler tous les blocs pendant qu'on essayait de zoomer ; une zone peut désormais réclamer la molette pour elle. Une réglette de zoom l'accompagne, avec un bouton pour revoir l'image entière.
- La bande de dégradé descend vraiment du clair au sombre, et ses ronds sont reliés par un trait : ce sont les étapes d'une même rampe — début, jalons, fin — et non des pastilles posées côte à côte. Le tri ne touche pas à la liste des échantillons, seulement à leur lecture continue.
- Le dépôt d'un bloc en pleine largeur s'attrape sans viser. La bande d'accroche faisait un quart de la hauteur du bloc : vingt-cinq points sur un petit, cent sur un grand, et il fallait descendre presque au bord. Elle fait trente points partout. Et la barre bleue court désormais d'un bord à l'autre de la pile : limitée au bloc survolé, elle laissait croire que le bloc se glisserait sous lui seul.
- Le téléchargement d'une police réessaie. Un pare-feu qu'on vient d'autoriser ne laisse pas passer la requête en cours : elle a déjà échoué, et rien ne la rejouait — on autorisait, on revenait, et il ne se passait toujours rien. Trois tentatives désormais, espacées d'un délai qui double. Une famille qui n'existe pas en TrueType n'est pas réessayée : ce n'est pas une panne de réseau.
- Les polices non installées se laissent apercevoir au survol. Montrer mille huit cents fontes supposerait de les télécharger toutes ; celle qu'on regarde ne coûte qu'un fichier, et c'est justement celle dont on veut voir l'allure. Une seule tentative par famille, et l'échec reste silencieux — c'est un agrément, pas une commande.
- Le curseur du nombre d'échantillons suit son schéma quand la page défile. Un panneau flottant se place une fois pour toutes et ignore le défilement : le curseur restait suspendu à l'écran pendant que son icône s'en allait.
- Le triangle et le carré des schémas ont été réduits : à sept points et demi de rayon, ils emplissaient leur carré et paraissaient plus gros que les autres.
- Les blocs d'une même rangée ont enfin la même hauteur. Les largeurs étaient réparties par rangée, les hauteurs non : chacun gardait la sienne, et une rangée mêlant une bibliothèque de palettes — haute par nature — et une analyse d'image plus courte laissait deux blocs suspendus au-dessus du vide. Les plus courts montent au niveau du plus haut ; jamais l'inverse, car écraser le plus exigeant tronquerait son contenu.
- Un bloc figé ne suit pas sa rangée : il a quitté le flot, et sa hauteur ne regarde plus que lui.
- Les onglets du bloc Sélecteurs sont enfin posés SUR le bloc, et non dedans. La vraie cause n'était ni leur hauteur ni leur marge : ce bloc recevait une carte comme les autres, alors que son propre gabarit en porte déjà une. Ses onglets se retrouvaient donc à l'intérieur d'un second cadre. Un bloc qui est déjà un jeu d'onglets n'est plus enrobé : son cadre entoure le corps, et la rangée se pose au-dessus, exactement comme la languette de titre des autres blocs.
- Vingt points de respiration entre l'icône d'aide et les pastilles de la fenêtre : réduire, agrandir et fermer ne se confondent plus avec les commandes du logiciel.
- On peut enfin retirer un bloc depuis la liste. Chaque entrée est un interrupteur : elle affiche le bloc absent, et retire celui qui est là. Il fallait auparavant aller chercher la croix du bloc lui-même, quelque part dans la pile — alors que cette liste est faite pour composer une disposition.
- La couleur dit l'état, sans qu'on ait à lire la pastille : un bloc affiché porte l'accent, un bloc rangé reste creux. Dans les deux thèmes.
- Une poignée à gauche de chaque entrée, avec le curseur de déplacement, sert à réordonner. Le glisser ne part que d'elle : parti de n'importe où, il emportait le bloc dès qu'un clic durait un peu, et l'on n'arrivait plus à basculer quoi que ce soit.
- Toutes les polices Google, et non plus vingt-quatre. Le catalogue compte désormais plus de dix-huit cents familles — celles qui couvrent l'alphabet latin. Il est embarqué dans le logiciel plutôt qu'interrogé au lancement : le service ne répond pas toujours, et une liste vide vaudrait moins qu'une liste d'hier.
- Elles se cherchent au lieu de se dérouler. Un champ de recherche accepte les fragments et ignore la casse comme les espaces : « playfair », « Playfair Display » et « playfairdisplay » mènent au même endroit. Ce qui commence par la recherche passe devant ce qui la contient, et les plus employées viennent en tête.
- Un filtre par genre — sans empattement, à empattements, de titrage, manuscrites, à chasse fixe — pour l'autre façon de chercher : quand on ne sait pas le nom, mais qu'on sait vouloir une manuscrite.
- Chaque nom s'écrit dans sa propre fonte dès qu'elle est disponible sur le système ou en cache. Quand elle ne l'est pas, l'écrire dans une autre serait un mensonge : le genre est indiqué à la place.
- La bande de dégradé porte les mêmes ronds que l'image. Elle montrait une progression continue sans dire quelles teintes en étaient les jalons : jolie, mais muette. Chaque rond se prélève d'un clic, sans verser toute la rampe dans la palette au passage.
- Les ronds des extrémités rentrent dans la bande au lieu d'en déborder de moitié, et se replacent quand le bloc change de largeur.
- Une image déposée s'ouvre entière et centrée. Le grossissement d'un pour un ouvrait une photographie de quatre mille points sur un fragment de ciel, sans rien dire du reste. Une image plus petite que le cadre s'y centre au lieu de se caler dans le coin.
- Chaque couleur relevée porte un rond à l'endroit d'où elle vient. Les ronds suivent l'image quand on la déplace ou qu'on la grossit, et ceux qui sortent du cadre ne sont pas posés du tout — rognés, ils resteraient sensibles à la souris.
- Le rond survolé devient une loupe, peinte avec l'image elle-même et sans lissage : à ce grossissement, les points doivent rester carrés. Un clic prélève la couleur exacte de ce point. C'est utile parce que la couleur du relevé est une moyenne : elle ne se trouve pas forcément telle quelle dans l'image, et l'on veut parfois la vraie teinte d'un endroit précis.
- « Séparer le texte du fond », sous l'aperçu. Le logiciel redemande la même image sans son texte, en insistant sur la reconstitution du fond — demander de retirer sans dire ce qu'on veut à la place laisse des rectangles unis là où il y avait des lettres. La différence entre les deux versions donne deux calques : le fond reconstitué, et le texte détouré par-dessus, avec sa propre transparence.
- Le nombre de blocs trouvés, leur hauteur et leur couleur exacte sont annoncés aussitôt. Enregistrez alors en .psd ou en .xcf : les calques séparés l'emportent sur l'image aplatie.
- Le dégradé tiré d'une image descend du plus clair au plus sombre. L'ordre dans lequel les couleurs ont été prélevées n'avait aucune raison de faire une rampe, et la bande montait puis redescendait. La clarté est pesée selon l'œil, qui voit le vert bien plus que le bleu : sur une simple moyenne, un bleu vif serait passé pour plus clair qu'un jaune pâle.
- De quoi séparer le texte de l'image, alors que le service n'en est pas capable : il rend une image plate, sans calque ni transparence. Mais il sait retoucher en préservant le reste. On lui redemande donc la même image sans son texte ; les deux versions sont alignées au point près — elles ne le seraient pas après un nouveau tirage — et ce qui diffère entre elles est le texte.
- De ce masque, tout se mesure : la place de chaque bande, sa hauteur, sa couleur exacte prise au cœur des lettres et non sur leurs bords lissés. Les poussières laissées par la reconstitution du fond sont écartées, faute de quoi chacune deviendrait un faux bloc.
- Et de quoi retrouver la fonte employée : chaque bande est ramenée à une silhouette indépendante de sa taille, comparable à celle d'un même texte rendu dans une fonte locale. L'écart de proportion compte autant que la forme — une fonte condensée ne remplit pas la place d'une grasse.
- Rien de tout cela ne dépend de l'interface, et tout se contrôle : quinze contrôles neufs vérifient la mesure au point près sur des images fabriquées pour l'occasion.
- Le visuel s'exporte aussi vers GIMP, en calques, au format XCF. Les deux ateliers partent du même jeu de calques : seul l'emballage change, et vous choisissez le vôtre par l'extension.
- Le format XCF repose entièrement sur des renvois — l'image désigne ses calques, chacun sa hiérarchie, qui désigne ses niveaux, qui désignent leurs tuiles. Le banc suit toute cette chaîne dans le fichier produit et vérifie qu'aucun renvoi ne tombe dans le vide : un seul décalé, et GIMP refuse le document sans dire pourquoi.
- Les images de plus de soixante-quatre points sont découpées en tuiles, celles du bord étant plus petites — c'est l'erreur classique de ce format, et elle produit une image en escalier.
- La fenêtre de création s'ouvre. Sa bascule « Avancé » portait un style destiné aux boutons ordinaires : WPF refuse un style dont le type visé ne correspond pas, et il le refuse à l'ouverture de la fenêtre — la compilation, elle, ne dit rien. La bascule a désormais son propre style.
- Et le banc ne laissera plus passer ce genre de faute : il relit tous les styles nommés des thèmes, note le type que chacun vise, puis vérifie chaque endroit où ils sont posés. Plus de soixante emplois sont contrôlés, dans toutes les vues.
- On ne recommence plus, on retouche. Sous l'aperçu, une phrase suffit : « assombris le fond », « agrandis le titre ». L'image obtenue devient sa propre référence, et la consigne énumère tout ce qui doit rester intact — cadrage, composition, autres couleurs, textes et leur orthographe. C'est ce qui empêche le modèle de tout refaire, et c'est aussi la façon la moins coûteuse de travailler.
- Le visuel s'enregistre en trois formats. L'image PNG pour le web. Un document Photoshop à calques, écrit octet par octet — le fond et le visuel arrivent séparés, prêts à recevoir un texte sur un calque neuf. Et un PDF d'impression avec fond perdu de trois millimètres et traits de coupe, ces derniers posés hors de la zone imprimée : un trait dans l'image serait imprimé avec elle.
- Le PDF déclare son cadre de coupe et son fond perdu, de sorte qu'un logiciel professionnel sache où couper même si l'on retire les traits.
- Une conversion CMJN approchée est disponible, avec extraction du noir : un aplat sombre en trichromie boit le papier et sèche mal. Sans profil colorimétrique elle reste une approximation, et c'est dit.
- Un formulaire avancé, sur une seule page : les mêmes champs que le simple, tous visibles à la fois, plus ceux qu'on n'inflige pas à qui découvre — prise de vue, fonte, marge d'impression, précisions libres ajoutées telles quelles à la consigne. Passer d'un mode à l'autre ne perd aucune réponse : les deux écrivent dans la même demande.
- Des variantes, une, deux ou quatre d'un coup. Chacune paraît dès son arrivée plutôt qu'à la fin de la série, et se retient d'un clic — demander quatre images sans pouvoir désigner celle qu'on garde n'aurait aucun sens. Une variante écartée par les filtres interrompt la série : les suivantes le seraient aussi.
- L'historique de la séance garde chaque image avec sa consigne. On y revient pour comparer, ou pour repartir d'une piste écartée trop vite.
- Le compteur de dépense suit désormais ce qui a été réellement produit : une série interrompue au deuxième tour n'a coûté que deux images.
- La création assistée fonctionne. La pastille « AI » ouvre un formulaire de cinq étapes numérotées — support, contexte, textes, image, rendu — qui pose une question à la fois et ne demande que ce qui sert : un support sans texte n'en réclame aucun, une image importée fait apparaître les questions de mise en situation.
- Le dictionnaire de prompts croise sept couches : le verbe d'ouverture, la fiche du support, la palette imposée rôle par rôle, les textes cités entre guillemets, la direction artistique en vocabulaire de studio, le rôle de chaque image jointe et les garde-fous. Quarante supports sont décrits, chacun avec son cadrage et ses proportions — toujours parmi celles que le service accepte, faute de quoi le recadrage reviendrait au hasard.
- Votre métier entre dans la consigne. C'est le champ le plus utile du formulaire : il apporte un vocabulaire de matières et de lumières que dix cases à cocher ne remplaceraient pas.
- Recoloriser une image existante : seules les couleurs changent, la forme, les plis, les reflets et le grain sont nommément conservés. On peut désigner ce qui doit changer — « le maillot de bain vert ».
- Le texte peut être laissé de côté pour être recomposé dans Caméléonardo : la consigne réclame alors la place et surtout pas les mots. Recommandé pour l'impression, où un texte en pixels ne pardonne pas.
- Le prompt n'est jamais montré, mais qui veut écrire le sien le peut : sa consigne remplace alors tout l'assemblage plutôt que de s'y ajouter.
- Le plafond mensuel est vérifié avant d'ouvrir le formulaire, et le compteur ne monte qu'en cas de réussite — une demande écartée par les filtres n'est pas facturée.
- Un onglet « API » dans les réglages ouvre la voie à la création assistée : clé Google AI Studio, choix du modèle, résolution, plafond de dépense mensuel et compteur d'images.
- La clé n'est jamais écrite en clair. C'est un moyen de paiement : elle est chiffrée pour votre seule session Windows, et un fichier de réglages recopié sur une autre machine ne la livre pas. Si le chiffrement échoue, rien n'est enregistré plutôt que de laisser le secret lisible.
- Un bouton « Vérifier » interroge le service sans rien produire ni rien facturer, et dit ce qu'il faut faire en cas de refus : clé inactive, quota épuisé, service indisponible, réseau bloqué. Les modèles que votre compte propose en plus des nôtres rejoignent la liste.
- Le compteur se remet à zéro chaque mois — un plafond qu'il faudrait vider à la main finit par tout bloquer.
- Une pastille « AI » en dégradé vert-bleu paraît à côté des palettes et dans la typographie, mais seulement si une clé est enregistrée : proposer une création qu'on ne peut pas lancer serait une fausse promesse.
- La roue est calibrée sur vos trois nuanciers. La table précédente, ajustée sur deux d'entre eux, se trompait jusqu'à treize degrés sur le troisième — que je n'avais jamais mesuré. Le pire écart tombe à cinq degrés et demi, et douze des quinze figures contrôlées passent sous trois degrés, sept d'entre elles sous un demi-degré.
- Deux de vos mesures se contredisent de onze degrés sur un même angle de roue : le carré du vert-jaune et la complémentaire divisée du rouge-orangé. Aucune courbe croissante ne peut satisfaire les deux. La mienne passe au milieu, chacune garde la moitié de l'écart, et les contrôles mesurent ce reste au lieu de le masquer.
- La roue ne commence plus au rouge pur : rien ne l'y obligeait, et l'y forcer déplaçait tout le reste de la courbe.
- Le triangle et le carré sont redessinés d'après les schémas d'origine : le polygone relie les points au lieu de se réfugier au centre. Un contrôle vérifie désormais que chaque sommet porte son point.
- Le curseur suit le schéma survolé sans attendre. Un panneau flottant déjà ouvert ne se repositionne pas quand on lui change sa cible : il restait sous le schéma précédent jusqu'à ce que le délai de grâce l'ait refermé, et celui du schéma survolé n'apparaissait qu'après. Il est désormais refermé sur-le- champ puis rouvert au bon endroit, et le minuteur de l'ancien schéma est arrêté — sinon il venait fermer le nouveau.
- La rangée d'onglets du bloc Sélecteurs affleure son bord supérieur, comme la languette de tous les autres blocs. La carte porte cinq points de retrait intérieur : la rangée commençait donc plus bas que partout ailleurs.
- Le tiroir des blocs s'efface au lieu de disparaître. Il occupe une rangée entière : le faire tomber d'un coup faisait remonter toute la pile d'un bond, et l'œil perdait ce qu'il suivait. Sa hauteur se referme en même temps qu'il s'efface — un fondu seul aurait gardé la place occupée jusqu'au dernier instant pour la rendre brutalement. Il se déploie de la même façon, un peu plus vite : on regarde une chose partir, on ne l'attend pas arriver.
- La roue a été recalibrée sur deux nuanciers, et non plus sur un seul. Une courbe calée sur une seule couleur de base peut être fausse partout ailleurs : c'est exactement ce qui restait. Vos deux jeux de références sont désormais résolus ENSEMBLE — l'angle de chaque couleur de base était une inconnue, et ce sont les figures dont les écarts ne se discutent pas (complémentaire, complémentaire divisée, triade, carré) qui la déterminent.
- Résultat : sept figures sur dix retombent à moins d'un tiers de degré de leurs codes de référence, sur les deux bases. Le composé reste à deux degrés, la complémentaire divisée du rouge à deux degrés et demi, l'éventail analogue à quatre : deux mesures de vos nuanciers se contredisent de six degrés à un degré d'angle près, et la courbe passe entre les deux plutôt que d'en sacrifier une.
- Les écarts du composé et de l'éventail analogue sont maintenant déduits, et non plus choisis : le pas de l'analogue ressort à quinze degrés ronds, ce qui est plutôt bon signe pour la calibration.
- La dernière nuance n'éclaircit que si elle le peut : sur une couleur déjà claire, dépasser le blanc n'a pas de sens et le nuancier de référence poursuit la descente.
- Le curseur du nombre d'échantillons laisse huit cents millisecondes pour l'attraper. Il se trouve sous le schéma : la souris quitte forcément l'un avant d'entrer dans l'autre, et différer la fermeture d'une simple passe de messages ne laissait pas le temps de faire ce trajet. Le délai repart entier à chaque sortie, et le tiroir ne se ferme pas non plus tant que le curseur est tenu — on en sort en le glissant.
- Chaque figure garde son propre nombre d'échantillons. Un réglage unique obligeait à le refaire à chaque changement de mode : on veut dix tons d'une monochrome et cinq d'une triade, et retrouver l'un et l'autre en y revenant.
- Le curseur s'ouvre sous le schéma survolé, en surimpression, et ne règle que cette figure-là — on peut donc préparer le compte d'un mode sans y entrer. Posé dans la rangée, il aurait poussé tout le contenu vers le bas à chaque passage de souris.
- Les points des schémas ont été affinés. À deux virgule six de rayon, une figure à cinq points n'était plus qu'une grappe ; ils sont désormais un peu moins des trois quarts de cette taille, et les tracés se lisent.
- La roue est devenue celle des peintres, et non plus celle des écrans. C'était la cause de toutes les déviations que vous constatiez : un écran mélange du rouge, du vert et du bleu, et l'opposé du rouge y est le cyan. Une roue de coloriste mélange du rouge, du JAUNE et du bleu — l'opposé du rouge y est le vert, sa triade donne le jaune et le bleu. C'est celle-là qu'on a en tête, et c'est désormais celle qui est peinte et sur laquelle toutes les figures se comptent.
- La correspondance entre les deux repères est relevée sur vos nuanciers, point par point : chaque accord de référence donne un couple, et les contrôles confrontent maintenant chaque figure aux codes attendus — la complémentaire, la triade, la complémentaire divisée, le carré et le composé tombent tous à moins de trois degrés de leur cible.
- Le composé a été recalé : la couleur et sa voisine d'un côté, l'opposée et la sienne de l'autre, à quarante degrés.
- Le monochrome perd désormais vivacité et clarté ensemble — c'est ce qui le distingue des nuances, où seule la clarté bouge. Et la dernière nuance éclaircit au lieu de descendre : une gamme qui ne ferait que s'assombrir n'offrirait jamais de quoi éclaircir.
- L'éventail analogue était décentré. Ses points partaient de moins cinquante degrés, puis la couleur de base était réimposée au premier d'entre eux : un point se retrouvait seul d'un côté et l'éventail de l'autre. Les écarts sont désormais rangés en partant de zéro, alternativement d'un côté puis de l'autre — la base est au milieu de l'éventail, jamais à son extrémité. L'ouverture reste de cent degrés.
- Et saisir n'importe laquelle de ses poignées ne le fait plus pivoter : l'analogue rejoint les figures dont on sait défaire la branche pour remonter à la base.
- Le logo figure désormais en tête du rapport PDF, à droite du titre. Il y voyage en JPEG — le seul format qu'un PDF décode nativement — converti sur un fond blanc, faute de quoi ses parties transparentes ressortiraient en noir.
- Les onglets du bloc Sélecteurs tiennent la même rangée que son titre. À dix-sept points, leurs languettes remontaient au-dessus de celle du titre, qui en fait vingt : la rangée paraissait de guingois. La hauteur est désormais la même des deux côtés, et un contrôle vérifie que les deux valeurs ne se séparent pas à la première retouche.
- Une barre en bas du logiciel, dans les deux modes d'affichage : ce qui fait sortir le travail de Caméléonardo — enregistrer, relire, partager, rendre compte.
- La session s'enregistre, avec la géométrie de la fenêtre, la palette, les blocs affichés et leurs couleurs, les échantillons de l'analyse et l'image. Deux formes au choix : l'archive, qui emporte les images avec elle et se transmet ; la description seule, qui y renvoie et se corrige à la main dans un éditeur de texte.
- Et elle se relit, archive comme description. Une description seule cherche son image à côté d'elle d'abord — un dossier déplacé garde ses fichiers ensemble — puis à son emplacement d'origine. Chaque refus dit ce qui manque : fichier absent, archive sans description, format d'une version postérieure. Une image introuvable ne fait pas échouer la relecture, elle est signalée.
- Le partage laisse le choix : toutes les couleurs des blocs affichés, ou celles d'un seul. Le menu s'ouvre au survol du bouton.
- Un rapport en PDF ou en HTML reprend les blocs affichés, leurs couleurs et leurs codes, la police employée et le contraste obtenu. Le HTML tient dans un seul fichier et ne va rien chercher dehors ; le PDF est écrit sans ajouter la moindre bibliothèque — un rapport de couleurs n'est fait que de rectangles et de lignes de texte.
- Une pipette prélève directement dans l'image. L'analyse rend les dominantes ; un liseré, un reflet, une ombre n'y figurent jamais — trop peu de pixels pour peser dans un comptage. La couleur prélevée rejoint la palette dans sa première case libre, sans rien écraser.
- Une loupe suit alors le curseur, et la molette règle son grossissement : viser un pixel à l'œil nu ne se fait pas. Les pixels y sont montrés francs, sans fondu — c'est la couleur exacte qu'on vise.
- Chaque échantillon porte sa croix pour le retirer, et se déplace à la souris pour changer l'ordre.
- Le dégradé des échantillons s'affiche sous la liste, dans leur ordre, et se refait à chaque suppression et à chaque déplacement. Un clic le verse dans la palette, étalé sur toutes les cases plutôt que recopié case à case.
- Le nombre d'échantillons vaut maintenant pour toutes les figures, de un à seize, cinq par défaut. Le curseur n'apparaît qu'au survol de la roue.
- Les points supplémentaires reprennent les branches de la figure, plus près du centre et plus sombres, rang après rang : une complémentaire à cinq points reste une complémentaire, et c'est exactement ainsi que les nuanciers en ligne tirent cinq couleurs d'une figure qui n'a que deux directions. L'éventail de l'analogue, lui, garde son ouverture de cent degrés quel que soit le nombre — c'est elle qui fait l'analogie, pas l'écart entre deux voisines.
- Saisir une poignée ne fait plus pivoter la figure. Déplacer le troisième point d'une triade revenait à déclarer « voici la nouvelle base », et tout basculait d'un coup sous le doigt. Le point tenu est désormais ramené à la base avant que la figure ne se recompose autour de lui.
- La couleur de base se désigne sur les échantillons, sous la roue — jamais sur la roue elle-même, où un clic déplace et où le geste serait ambigu. Elle porte un anneau plein ; les poignées qui en découlent sont cernées de pointillés, comme leurs échantillons.
- Les deux blocs de texte n'en font plus qu'un. « Texte et polices » proposait un aperçu et les polices du système ; « Typographie », les familles Google, l'installation et l'accord de couleurs — deux endroits pour la même question. Le second a absorbé le premier, polices du système comprises, et garde son nom.
- Une coche verte marque les familles Google déjà installées sur le système : elles ne demandent plus rien. Un point discret continue de signaler celles qui sont seulement téléchargées.
- Les trois textes de l'aperçu se manipulent. Un cadre en pointillé au survol dit qu'on peut agir dessus ; le clic droit ouvre ce qu'on peut en faire : changer sa couleur, réécrire le texte sur place, vérifier son contraste.
- Le vérificateur ne se contente plus de constater. « Suggestions » propose la même encre juste assez éclaircie ou assombrie pour franchir chaque seuil qui lui manque ; « Rapport visé » part du chiffre qu'on veut atteindre. Chaque proposition est montrée en situation — texte sur son fond — avant d'être appliquée.
- Et toute la palette se compare d'un coup, dans sa propre fenêtre : chaque couleur essayée comme texte sur chacune des autres, avec le choix de la catégorie et du niveau. Les paires qui échouent sont hachurées et non masquées — une paire absente et une paire qui échoue ne veulent pas dire la même chose.
- Le bloc Sélecteurs ne dessine plus deux cadres. Sa carte porte déjà son filet arrondi ; le corps des onglets en traçait un second à trois points du premier. Le cadre du corps a désormais sa propre ressource, réglable bloc par bloc sans repeindre les filets de toutes les vues qu'il contient.
- Le curseur d'échantillons du bloc Harmonie densifie la grille au lieu de la reprendre de zéro : le tirage étant séquentiel, agrandir le nombre conserve les couleurs déjà affichées et n'ajoute que les nouvelles. Le tirage ne repart que sur demande — le bouton de regénération, ou l'un des trois réglages d'écart.
- Et le glissement est fluide : la grille ne se recompose qu'une fois le geste terminé. Le curseur passe par chacun de ses crans, et bâtir deux cent cinquante grilles pour arriver à la dernière rendait le glissement saccadé.
- Les palettes défilent enfin. La pile des blocs captait la molette où que se trouve la souris — un détour posé en prévisualisation, qui descend depuis la racine et passait donc avant tout le reste. La liste ne la voyait jamais. Un défileur survolé garde désormais la main tant qu'il lui reste du chemin, et la pile la reprend quand il est au bout.
- Le bloc Harmonie règle son nombre d'échantillons, de deux à deux cent cinquante-six. La grille se recompose selon le nombre, la case du pivot gardant sa place au centre — agrandie tant que la grille peut la porter. Le patchwork dessiné à la main pour seize cases ne se transposait pas.
- Le nombre de points de la roue personnalisée fonctionne. En arrivant du mode Unique, la figure libre héritait de son point unique et rien ne la ramenait au compte affiché : le curseur indiquait cinq et l'on n'obtenait qu'un point.
- Les curseurs verticaux ont enfin une piste. Le gabarit n'en connaissait qu'une, couchée : debout, elle se réduisait à une virgule grise.
- Le bloc Sélecteurs est devenu un bloc à onglets. Son nom et ses commandes tiennent sur la même ligne que ses languettes, là où deux rangées se superposaient pour une seule information, et son fond est celui de tous les autres blocs.
- Un mode « Unique » ouvre désormais la roue : une seule couleur, choisie à la main sur le cercle. C'est le mode par défaut — on vient d'abord chercher une couleur, la figure ne sert qu'ensuite. Son schéma est calé en bas à gauche du cercle.
- Le mode personnalisé lui répond à droite, à la même hauteur, avec son nombre de points devenu un curseur vertical : la place manque en largeur à côté du cercle, elle ne manque pas en hauteur.
- Le triangle et le carré se devinent enfin : la forme est désormais petite et posée au centre, les points restent au bord, des traits les relient. Tracées aussi grandes que le cercle, ces figures se confondaient avec leurs propres points. La complémentaire divisée a été refaite en patte d'oie, ses trois points sur un même cercle.
- Les schémas sont serrés dans leur rangée : quatre points d'écart en faisaient une file d'objets sans rapport les uns avec les autres.
- Les échantillons déduits portent un contour pointillé. Le premier est la couleur choisie, les autres n'en sont que les conséquences, et rien ne le disait.
- Les poignées ne disparaissent plus sur la roue. Elles ne disparaissaient d'ailleurs pas : elles étaient EMPILÉES. La roue ne montre que deux des trois grandeurs d'une couleur — l'angle donne la teinte, la distance au centre la saturation. La clarté n'y a aucune place. Les figures qui ne jouent que sur elle, Nuances en tête, posaient donc tous leurs points exactement au même endroit, et le dernier anneau dessiné recouvrait les autres.
- Les points confondus sont désormais éventés perpendiculairement au rayon : les anneaux se chevauchent comme des cartes, on voit qu'il y en a plusieurs, et leur infobulle le dit. L'écart est purement visuel — la teinte et la saturation lues restent justes, et le glisser se calcule toujours sur la position de la souris.
- L'ombre a été retirée derrière le corps des sous-onglets du bloc Sélecteurs : le bloc porte déjà son cadre, et cette seconde ombre ne faisait que salir le bord.
- Les infobulles sont décalées de dix points vers la droite, pour ne plus recouvrir la pointe du curseur ni l'élément qu'on vient de désigner.
- Le tiroir des blocs se comporte enfin comme un menu : il reste ouvert tant que la souris s'y trouve, et ne se referme qu'en la quittant. On peut donc activer trois blocs d'affilée sans repasser par le bouton.
- Ce qui le refermait au clic : choisir un bloc reconstruisait toutes les entrées de la liste, y compris celle qui se trouvait sous le curseur. Le temps que la nouvelle prenne sa place, Windows ne trouvait plus rien à cet endroit, considérait que la souris était sortie, et le tiroir se fermait — alors qu'elle n'avait pas bougé d'un point. Seule la pastille verte ou rouge changeait : il n'y avait rien à reconstruire.
- Et une sortie de souris est désormais vérifiée avant d'être crue : la position du curseur est comparée aux bornes réelles du tiroir. Un raccourcissement de la liste ou un déplacement de l'interface ne peut donc plus passer pour un départ.
- Les figures ont été redessinées et agrandies, d'après vos schémas de référence : des points pleins et des traits francs, là où mes contours maigres disparaissaient à l'affichage. Elles occupent désormais le haut du bloc, à la place de la liste — un schéma se reconnaît d'un coup d'œil là où un nom demande d'être lu.
- Un curseur règle le nombre d'échantillons, en mode personnalisé seulement : les autres figures le fixent elles-mêmes, une complémentaire à cinq points ne serait plus une complémentaire.
- Le hasard tire maintenant toutes les couleurs en mode personnalisé — c'est une palette entière qu'on obtient d'un clic. Dans les autres figures, seule la couleur de départ est tirée : les autres points en découlent, et les tirer aussi détruirait la figure.
- « Vers la palette » devient l'icône de palette fléchée, comme ailleurs.
- Le menu des blocs ne se referme plus quand on en ajoute un. Amener le nouveau bloc à vue faisait défiler la pile sous le curseur : le menu glissait, la souris se retrouvait dehors, et il se fermait — exactement ce qu'on voulait éviter. Tant que la main est dans la liste, on ajoute sans rien déplacer ; la mise à vue attend la sortie.
- Les palettes s'alignent en colonnes. Le nom occupait la place qu'il voulait, et les échantillons commençaient donc à un endroit différent sur chaque ligne : impossible d'en comparer deux d'un coup d'œil.
- La molette parcourt la liste, puis rend la main. Un défileur imbriqué retient la molette même arrivé au bout — on se retrouve bloqué, à se demander pourquoi la page ne bouge plus. La liste ne garde donc le défilement que tant qu'il reste quelque chose à voir, et le passe ensuite à la fenêtre.
- Les deux commandes d'une palette sont à la taille des échantillons, comme demandé : elles appartiennent à la palette, elles n'ont pas à s'en distinguer.
- Deux figures d'harmonie de plus : les primaires et les secondaires, qui manquaient à la liste. Elles tombent sur des angles fixes du cercle — une primaire ne se définit pas par rapport à une couleur de départ — mais gardent la vivacité et la clarté de la couleur choisie.
- Les figures d'harmonie ont enfin leurs schémas. Douze dessins au trait — les points sur le cercle et le lien qui les relie — sous la roue : un dessin se reconnaît plus vite qu'un nom ne se lit, et c'est la convention de tous les outils de couleur. Le nom reste dans la liste au-dessus, pour qui ne connaît pas encore les figures.
- Les deux commandes pilotent la même sélection : cliquer un schéma coche la liste, choisir dans la liste coche le schéma.
- La roue chromatique. Un nouveau sélecteur, placé en tête des autres : c'est par lui qu'on commence quand on cherche un accord plutôt qu'une couleur précise. L'angle donne la teinte, la distance au centre la saturation.
- Douze figures : analogue, complémentaire, complémentaire divisée, triade, carré, composé, monochrome, nuances, chaudes, froides, pastels, et personnalisé. Chacune dit en une phrase ce qu'elle vaut — l'analogue pour que rien ne jure, la complémentaire pour le contraste le plus franc.
- Les points se déplacent ensemble. Tirer une poignée fait tourner la figure autour d'elle, et celle qu'on tient ne bouge jamais sous le doigt. En mode personnalisé, chaque point va où il veut. Un clic dans le vide amène directement la poignée principale.
- Le vérificateur de contraste rejoint la typographie. Quatre paires à comparer — texte sur fond, titre sur fond, lien sur fond, titre sur texte — et les trois catégories de la norme avec leurs seuils propres. Un même rapport passe en gros caractères et échoue en petits : un seul chiffre laissait croire à un verdict unique, il y en a trois.
- La police se télécharge dès qu'on la choisit. Attendre un clic sur « Obtenir » n'avait pas de sens : on choisit une police pour la VOIR, et un aperçu qui affiche celle du système à la place ne renseigne sur rien.
- « Obtenir » installe maintenant la police sur le système. Pour votre compte, et non pour la machine : une installation « pour tous » exigerait les droits d'administrateur, ce qui est disproportionné pour poser une police. Les autres logiciels la voient aussitôt, sans reconnexion.
- La typographie travaille sur une vraie palette. « Verser l'accord » cède la place à « Charger une palette », qui présente toutes vos palettes avec leur nom et leurs échantillons. Le thème y puise ses couleurs au lieu d'en calculer quatre : une palette en compte seize, et ce sont celles que vous emploierez vraiment.
- Chaque rôle a son crayon — fond, titre, texte courant, lien — pour fixer sa couleur à la main parmi celles de la palette, ou la rendre au thème.
- Un bouton enregistre la présentation dans la base de palettes, sous le nom que vous lui donnez.
- « Accord » s'appelle désormais « Thème ». Et le chiffre affiché à côté est le rapport de contraste entre le texte et son fond : une infobulle l'explique, puisque rien ne le disait.
- La poignée de redimensionnement est plus facile à attraper : vous aviez vu juste, l'angle vrai de la fenêtre tombe dans la bordure transparente, hors du corps visible. La prise y déborde maintenant, tandis que les traits restent alignés sur le corps.
- Vingt palettes de plus dans la base, qui en compte désormais vingt-six : Poisson rouge, Songe éveillé, Une part de gâteau, Terre lointaine, Cinq océans, Nuit havanaise, Règne pourpre… Les accords ont été refaits et les noms sont français : valeurs recalculées, rien d'emprunté. Seize tons chacune, de quoi remplir une palette d'un seul geste.
- Les sous-onglets d'un bloc sont décalés de quinze points et remontés de trois : posés au ras du bord, ils se confondaient avec la languette du bloc qui les surplombe. La hauteur du bandeau est devenue réglable séparément — un ensemble d'onglets imbriqué n'a pas les mêmes besoins que celui d'une fenêtre.
- Le menu des blocs reste ouvert tant que la souris y est. Il se refermait au premier clic : ajouter trois blocs demandait trois allers-retours par le bouton du menu, alors qu'ils sont tous là, sous le curseur. On choisit rarement un bloc — on compose une disposition.
- Il se ferme quand la souris le quitte : un geste net, sans délai à deviner, et c'est exactement le moment où l'on a fini de s'en servir.
- La fenêtre s'ouvre d'un seul mouvement. La trace ajoutée à la version précédente a livré la mécanique : la largeur minimale valait 499 quand la taille d'ouverture voulait 498. Un point d'écart, dû à ce que les deux se calculent sur les mêmes dimensions mais s'arrondissent chacun de son côté. La fenêtre était donc poussée à 499 par le minimum, ramenée à 498 par le verrou, repoussée à 499 — d'où les étapes visibles au démarrage.
- Le plancher est maintenant calculé avant la largeur, et celle-ci s'y aligne au lieu de lutter contre lui. Même précaution pour la hauteur.
- La trace de chaque changement de largeur passe en « trace » : elle a rempli son office et reste disponible en abaissant le seuil du journal.
- La taille d'ouverture est posée aux deux moments du démarrage. Le journal complet a révélé un ordre auquel je ne m'attendais pas : le calcul de la taille arrivait APRÈS le chargement de la fenêtre et après l'application des réglages. La taille est donc posée à l'initialisation ET en fin de chargement ; le second appel ne fait rien si elle est déjà bonne, il n'y a donc pas de passe supplémentaire.
- Chaque changement de largeur est tracé au journal avec son avant et son après. Connaître la séquence des valeurs, et pas seulement la dernière, est ce qui manquait pour clore cette affaire.
- La taille d'ouverture est tenue par le seul point de passage que WPF garantisse. La surveillance mise en place à la version précédente ne réagissait pas, alors que la largeur changeait bel et bien : un abonnement posé après coup peut être contourné. La surcharge utilisée maintenant est appelée pour toute modification d'une propriété, quel qu'en soit l'auteur et le chemin — affectation directe, liaison, animation, style, ou le moteur lui-même. La correction a lieu avant la mise en page : rien ne s'affiche à la mauvaise taille.
- La taille d'ouverture prime sur la taille enregistrée. C'était la dernière source qui portait encore l'ancienne largeur : la géométrie de la session précédente, relue du fichier. Elle ne s'applique plus tant que la taille calculée d'après les dimensions des blocs n'a pas été reprise en main. Les laisser se disputer, c'était la fenêtre qui change de taille sous les yeux.
- Correction : « respecter la mise à l'échelle » agit dès la première fois. Le zoom de l'interface lit les réglages COURANTS, pas le jeu qu'on lui transmet. Faute de mettre cette référence à jour, seule la fenêtre de réglages — qui travaille sur sa propre copie — suivait le changement. Il fallait fermer puis rouvrir pour que la valeur, cette fois relue du fichier, soit enfin prise en compte.
- Barre d'onglets descendue d'un point, onglet actif remonté d'un point de plus.
- La fenêtre prend sa taille en une seule passe. Les corrections précédentes rattrapaient après coup — la fenêtre s'ouvrait mal puis se reprenait, ce qui se voyait. Le journal a fini par livrer le fait décisif : la largeur elle-même valait celle du fichier, sans qu'aucun de nos passages obligés n'ait été sollicité et sans qu'aucune assignation ne subsiste dans le code. Pourchasser les appelants un par un était une impasse.
- La taille est maintenant tenue par la propriété elle-même : tout changement non voulu est annulé sur-le-champ, donc avant toute mise en page, donc sans que rien ne s'affiche. La fenêtre ne prend jamais la mauvaise taille, elle n'a donc pas à en changer ensuite.
- Le garde-fou du plancher ne répète plus la même ligne à chaque passe de mise en page, et le rattrapage tardif a disparu.
- La taille d'ouverture ne peut plus être forcée par le plancher. Le journal montrait que personne n'écrasait la largeur — ni assignation, ni tentative refusée — et que la fenêtre s'élargissait quand même. Il restait un chemin : la largeur MINIMALE. Un plancher plus grand que la taille calculée élargit la fenêtre sans passer par aucun réglage et sans rien dire, la propriété gardant sa valeur. Il est désormais ramené à la largeur d'ouverture, et le geste est journalisé.
- Si la fenêtre dévie malgré tout, sa largeur d'ouverture est rétablie — et le journal donne alors les quatre grandeurs qui peuvent commander la taille, de quoi nommer le responsable sans nouvelle recherche.
- Barre d'onglets descendue de deux points, onglet actif remonté d'un point.
- La taille d'ouverture tient enfin. Elle était bien calculée et bien posée — le journal le montrait — puis la largeur seule repassait à la valeur du fichier de réglages, un instant plus tard. La géométrie enregistrée est en effet appliquée à partir d'une copie des réglages faite AVANT le calcul : elle portait donc encore l'ancienne valeur, et l'écrasait sans rien dire.
- Largeur et hauteur passent maintenant par un même passage obligé, qui refuse d'écraser la taille d'ouverture et NOMME au journal celui qui essaie. Le verrou saute dès que vous prenez la main : poignée de redimensionnement ou bascule d'affichage.
- La barre d'onglets remonte — pour de bon. Je l'avais descendue en croyant faire l'inverse : une marge basse négative fait déborder la ligne vers le bas, si bien qu'augmenter le nombre l'enfonçait davantage.
- Le prélèvement de transparence se voit enfin. Une ligne de texte disait « 1 sur 3 » et il fallait la lire pour savoir où l'on en était. Trois cases numérotées le montrent : chacune prend la couleur qu'on lui a donnée, se borde de vert quand elle tient son point et de rouge tant qu'elle l'attend. Le rôle attendu s'affiche au survol.
- Un clic sur une case verte la libère. Se tromper sur le fond n'oblige plus à reprendre le premier plan : on refait ce seul prélèvement, les deux autres restent.
- L'ordre n'a plus aucune importance. Le point relevé va dans la première case libre, et la couleur transparente se déduit dès que les trois rôles sont tenus, quel que soit le chemin suivi.
- La fenêtre s'ouvre aussi à la bonne hauteur. Seule la largeur était calculée : la hauteur restait à sept cents points quels que soient les blocs affichés, d'où une fenêtre ajustée sur les côtés mais suivie d'un grand vide. La hauteur suit désormais les mêmes dimensions réglées — en additionnant les rangées, là où la largeur prend le maximum, puisqu'elles se suivent de haut en bas au lieu de se superposer.
- Le journal donne les deux dimensions et le détail largeur × hauteur de chaque bloc.
- L'onglet actif des réglages suit enfin le thème clair. Ses deux couleurs étaient écrites en dur dans la vue — un fond très sombre, un filet gris — si bien que le thème clair héritait d'un onglet resté noir. Une couleur écrite en dur ne peut pas suivre le thème : les deux vivent désormais dans les thèmes eux-mêmes, chacun avec sa valeur.
- La fenêtre de réglages ne rétrécit plus. Sa coque porte l'échelle de l'interface : à densité constante, ce facteur vaut moins d'un et le contenu se resserre. Multiplier la fenêtre par ce même facteur la resserrait d'autant, alors que la place gagnée par le contenu n'avait aucune raison d'être reprise. Le facteur n'est appliqué que s'il agrandit, et la fenêtre ne dépasse jamais l'écran de travail.
- L'ombre portée sous le corps des onglets a été retirée du popup : la fenêtre est déjà posée sur son propre relief, une seconde ombre à l'intérieur ne faisait que salir le bord.
- La barre d'onglets remonte de quatre points, et l'onglet actif de quatre de plus que les autres.
- La largeur d'ouverture repose enfin sur les vraies dimensions. Le calcul se faisait bien, mais sur des chiffres inventés : le relevé des dimensions parcourt le catalogue des blocs, or celui-ci n'est monté qu'au chargement de la fenêtre — donc après. Il ne relevait rien, et chaque bloc retombait sur une valeur de repli identique pour tous. Le journal le disait mot pour mot en marquant les quatre blocs « (défaut) ». Le catalogue est désormais construit avant le relevé.
- Plantage corrigé au changement de « respecter la mise à l'échelle ». La pile d'appel désignait le panneau qui range les blocs : il calculait une hauteur en bornant une valeur… qui n'était pas un nombre. Or borner un NaN ne donne pas une borne, cela donne un NaN — la taille impossible traversait donc tout le calcul pour éclater bien plus loin. Les tailles sont maintenant assainies à l'entrée du panneau et vérifiées juste avant chaque mesure, et les divisions par zéro sont écartées.
- Le bloc des palettes tient dans deux fois moins de place. Une palette occupe une ligne : son nom, ses échantillons et ses deux commandes dans le même flot, qui revient à la ligne ensemble quand la largeur manque. Plus d'accordéon — il demandait un clic pour voir le contenu et un second pour charger, deux gestes pour une information qui tient sur la ligne. Le bouton « Charger » devient une icône de palette fléchée, à la taille des échantillons.
- La molette fait de nouveau défiler la pile entière au survol de ce bloc : l'ascenseur interne la retenait. Et les pastilles d'une palette rangée ne réagissent plus au clic — elles montrent ce que la palette contient, elles ne sont pas des échantillons à prélever.
- La liste des noms de couleurs affiche le code dans le format choisi et l'écart à la couleur courante. Un nom seul ne dit pas s'il tombe juste ; l'écart, si. Le champ de recherche prend enfin toute la largeur du bloc.
- Les titres répétés à l'intérieur des blocs « Analyse d'image » et « Historique » ont été retirés : leur languette les porte déjà.
- La fenêtre s'ouvre enfin à la largeur que réclament les dimensions réglées. Le calcul ne s'exécutait tout simplement JAMAIS : il vérifiait d'abord que le logiciel était en mode « pile de blocs », mais lisait cette information dans une variable qui n'est renseignée qu'au montage de l'interface — donc bien après. Elle valait toujours faux, et la méthode sortait avant d'avoir rien fait. Le mode est maintenant lu dans les réglages.
- Le partage des largeurs a été revu de fond en comble. La place était divisée à parts égales entre les blocs d'une rangée : un bloc plus exigeant que la moyenne se voyait ramené à sa taille minimale, pendant que ses voisins moins gourmands recevaient quand même la part entière. La somme dépassait donc la place, le dernier bloc partait à la ligne, et la fenêtre s'élargissait pour rattraper — ce qui se voyait. Chacun reçoit désormais ce qu'il réclame, et le reste se partage ensuite, s'il reste quelque chose.
- Le bloc « Historique » liste les gestes que Ctrl+Z peut défaire, du plus récent au plus ancien. Savoir ce qu'on va annuler vaut mieux que de l'apprendre en l'annulant.
- Le changement de thème repeint aussi les languettes des blocs. Elles gardaient l'ancienne couleur jusqu'à ce qu'on ouvre puis referme les réglages — ce qui reconstruit la pile et les recrée. La cause : les couleurs posées depuis le code l'étaient PAR VALEUR, c'est-à-dire figées à la couleur du thème en vigueur au moment de la construction. Elles passent désormais par une référence, l'équivalent en code de ce que fait le XAML : le lien reste, la couleur suit.
- Même correction pour les cases de la palette, leur damier et les pastilles de typographie, qui souffraient du même défaut sans qu'on l'ait encore remarqué.
- La largeur d'ouverture réservait de la place pour rien. Elle partait d'un pourtour constant, qui suppose la large bordure transparente laissant déborder le logo. Or cette bordure tombe à zéro quand le logo est masqué : deux cents points de vide étaient alors comptés en trop. Le pourtour réel de la fenêtre est maintenant lu, et la marge de sécurité superflue retirée.
- Le calcul est journalisé bloc par bloc — largeur réclamée, rangée, valeur mesurée ou de repli, pourtour et échelle. De quoi voir en une ligne quel bloc commande la largeur, plutôt que d'en juger à l'œil.
- La fenêtre s'ouvre directement à la bonne taille. Elle s'ouvrait large puis se resserrait sous les yeux, avec deux ajustements de rattrapage par-dessus : le calcul se faisait après la mise en page, donc après l'affichage. Il a lieu maintenant au moment précis où la fenêtre a sa poignée — donc son écran et son échelle — mais où rien n'a encore été peint.
- Le calcul ne demande plus aucune mise en page : tout est dans les réglages — quels blocs, sur quelle rangée, et ce que chacun réclame. Attendre la disposition, c'était afficher d'abord une fenêtre de la mauvaise taille.
- La taille enregistrée est alignée sur ce calcul : appliquée ensuite, elle aurait écrasé le résultat et ramené le clignotement.
- La fenêtre s'ouvre à la plus petite largeur utile : celle que les blocs réclament d'après l'onglet « Dimensions », mise à l'échelle de l'écran. Un sélecteur de couleurs se pose à côté du travail, il n'a aucune raison de prendre plus de place qu'il n'en demande.
- La bascule d'affichage range vraiment les blocs. Elle se contentait de poser trois couples de dimensions en dur, sans jamais toucher au rangement : la fenêtre changeait de forme, les blocs restaient comme avant, et la taille imposée n'avait aucun rapport avec ce qu'ils réclamaient. Elle enchaîne maintenant la disposition enregistrée, puis tout en colonne, puis tout en ligne — et donne à la fenêtre la taille que ce rangement demande.
- Les menus contextuels ont leur propre habit. Celui de WPF réserve à gauche une bande pour les icônes, peinte dans une couleur système qui ne suit aucun thème : c'était le ruban blanc qui traversait nos menus sombres. Il ne se retire pas d'un réglage — il fait partie du modèle — d'où sa réécriture complète : angles arrondis, couleurs du thème, coche maison.
- Le menu de l'échantillon porte enfin les bonnes entrées : texte en blanc, en noir, en couleur de contraste ou en inverse du fond, affichage du texte, et de quoi changer la police comme le texte lui-même. Les deux invites qui manquaient ont été créées ; celle des polices montre son aperçu sur la couleur courante, car juger une police sur fond blanc n'apprend rien.
- L'échantillon principal est réellement arrondi : un cadre aux angles arrondis ne découpe pas son contenu pour autant, le damier et la couleur ressortaient carrés.
- Les languettes des blocs prennent leur propre couleur, distincte du fond de la carte, et les changements de taille de la fenêtre sont journalisés.
- La fenêtre reste vraiment au premier plan. La case était cochée, la propriété posée, et la fenêtre passait quand même derrière : exactement la même surprise que l'icône. Sur une fenêtre sans style et en couche, WPF pose la propriété et le système ne la suit pas toujours. Le rang est maintenant demandé directement à Windows — sans déplacer la fenêtre ni lui voler le premier plan — et reposé une fois la poignée créée, car les réglages s'appliquent avant qu'elle n'existe.
- L'icône est également posée sur la classe de fenêtre, et relue pour vérification : Windows consulte trois sources dans l'ordre, et « posée » sans contrôle a déjà coûté trois versions.
- Le journal ne déborde plus. Le diagnostic de rangement, qui avait servi à comprendre les retours à la ligne, écrivait une ligne à chaque cran de poignée : sa mission finie, il redescend en « trace » et reste disponible en abaissant le seuil.
- Les réglages montrent les dernières lignes du journal, et s'ouvrent dessus. Ce qu'on vient de faire est à la fin du fichier ; un aperçu ouvert au début obligerait à parcourir tout l'historique pour lire la seule ligne qui compte.
- La disposition d'usage est celle d'origine : Sélection, Curseurs et Pipette de front, Analyse d'image en pleine largeur dessous. La pile s'ouvrait jusqu'ici en colonne imposée, ce qui effaçait ce rangement au premier lancement. La mise à jour ne touche rien si vous aviez déjà rangé vos blocs à la main.
- L'icône apparaît enfin dans la barre des tâches — la vraie cause. La propriété d'icône de WPF ne suffit pas quand la fenêtre est SANS STYLE : n'ayant pas de barre de titre où la dessiner, WPF ne la transmet jamais au système. Le journal l'affirmait posée, et elle l'était — du côté WPF seulement. Elle est maintenant remise directement à Windows, en deux tailles : la grande pour la barre des tâches, la petite pour le reste.
- Le vide à droite a disparu. Ce n'était pas la place d'un ascenseur mais la marge du défileur, qui s'ajoutait au battement laissé libre par le partage des rangées. Deux réserves pour un seul besoin.
- Le bloc d'analyse s'ouvre au dépôt — la cause, enfin. Le journal ajouté à la version précédente l'a dite en une ligne : le bloc n'était pas trouvé au catalogue. Celui-ci référence la CARTE qui enveloppe la vue, et je cherchais la vue elle-même. La recherche ne trouvait rien, et le code passait sagement son chemin — trois versions durant, pendant que je corrigeais tout sauf cela.
- Le voile de lancement passe sous le logo et épouse la coque, comme celui des réglages.
- La fenêtre reste au premier plan par défaut. On prélève une couleur dans une AUTRE application : un sélecteur qui passe derrière elle au premier clic ne sert à rien.
- La fenêtre retrouve sa taille au lancement. Quand une rangée ne tenait pas, le logiciel élargissait du strict manque — d'où une cascade de quatre ajustements, chaque passe rendant aux blocs une place qu'ils reprenaient aussitôt. Il prend maintenant un peu d'avance, et surtout retient la largeur atteinte : elle n'était pas enregistrée, si bien que le lancement suivant repartait trop étroit et rejouait toute la cascade sous les yeux.
- L'icône est posée explicitement sur la fenêtre principale, avec confirmation au journal.
- L'aperçu de l'image occupe enfin la place. C'était la liste des couleurs trouvées qui s'étirait quand on agrandissait le bloc : elle tenait pourtant déjà tout entière, pendant que l'image restait dans son timbre-poste. L'aperçu prend l'étoile, avec un minimum de cinquante points, et la liste reprend sa taille naturelle.
- L'image s'affiche à un pour un — un pixel pour un point — et non plus ajustée au cadre, qui déforme le jugement d'une couleur. Elle est décodée à sa taille native pour que ce « un pour un » en soit vraiment un.
- La molette grossit l'image, autour du point survolé : grossir depuis le coin ferait fuir sous le curseur ce qu'on était en train de regarder.
- Le bouton « Vers la palette » suit les échantillons dans le même flot et revient à la ligne avec eux, au lieu de garder une bande à lui.
- Le bloc d'analyse s'ouvre au dépôt quel que soit le mode d'affichage : en mosaïque on va chercher son onglet, en pile on l'ajoute. Les conditions d'ouverture sont journalisées.
- L'icône des fenêtres dit maintenant au journal si elle a pu être chargée, et ne peut plus faire tomber l'ouverture d'une fenêtre.
- Le filet sous les languettes des blocs a disparu — et cette fois la cause était la bonne. Trois correctifs successifs avaient porté sur la géométrie : recouvrement, plan de superposition, épaisseur. Le mal était dans la couleur. La languette portait un fond à cinq pour cent d'opacité : elle était donc quasi transparente, et le trait du haut de la carte se voyait AU TRAVERS, quoi qu'on fasse. Elle prend désormais le fond plein de la carte.
- Fenêtre de réglages : bandeau d'onglets remonté de quatre points, et bordure de l'onglet actif adoucie.
- Correction : le texte « Loupe en veille » n'est plus barré par le réticule. Tous deux étaient centrés dans le même cadre — ils finissaient donc forcément l'un sur l'autre. Le texte se pose dans le tiers bas.
- L'icône des réglages rejoint la bascule de thème dans la barre de titre : deux commandes de même nature qui n'avaient aucune raison de vivre à deux endroits.
- Le corps s'assombrit pendant que les réglages sont ouverts. Le voile épouse la coque — sa marge suit la sienne, qui change en cours de route — et passe SOUS le logo : celui-ci déborde dans la zone transparente, et l'assombrir reviendrait à dessiner un carré gris sur le bureau.
- Le bloc d'analyse s'ouvre enfin au dépôt. Le traitement se faisait en plein milieu du message envoyé par Windows : remanier l'arbre visuel à cet instant fait échouer la mise en page en silence, ce qui explique le symptôme exact — l'image était bien analysée, mais le bloc n'apparaissait jamais. Le logiciel rend maintenant la main au système avant d'agir.
- On se déplace dans l'image à la main. Pas d'ascenseur, pas de molette : le cadre garde sa hauteur et c'est l'image qui glisse dessous, curseur en main. Le déplacement est borné — on ne tire jamais l'image hors du cadre pour se retrouver devant du vide, sans savoir comment revenir.
- La main n'apparaît que s'il y a quelque chose à aller chercher : proposer un geste qui ne fait rien est pire que ne rien proposer.
- L'aperçu a désormais son propre décodage, plus fin que celui de l'analyse. Celle-ci travaille sur cent vingt-huit points de large — largement assez pour compter des dominantes — mais cette même image promenée à la main ne serait qu'une bouillie de gros carrés.
- Les onglets sont plus bas et leurs bordures ne se croisent plus. L'onglet actif s'arrêtait PILE sur le filet du corps : ses deux montants venaient buter dessus et les traits se croisaient aux angles. Il mord maintenant d'un point et recouvre ce filet — le bandeau étant déjà au-dessus du corps, son fond opaque efface le segment.
- Languette active ramenée de trente-trois à vingt-neuf points, inactives de vingt-sept à vingt-cinq.
- Les languettes des blocs suivent la même règle : leur recouvrement passe de trois points à un, et elles remontent de deux. Les trois points dataient du temps où il fallait masquer le filet de la carte par la seule épaisseur ; depuis que la languette est peinte au-dessus, ils ne faisaient plus que dépasser en petits traits de part et d'autre.
- Plantage corrigé : « Impossible d'appeler Measure avec une taille NaN ». La largeur d'une fenêtre WPF vaut « pas un nombre » tant qu'on ne la lui a jamais assignée — c'est sa valeur par défaut, la taille réelle vivant ailleurs. Quatre calculs repartaient de cette valeur pour en déduire une nouvelle largeur, et propageaient donc l'absence de nombre jusqu'à la mise en page, qui échouait loin de l'origine du mal.
- La largeur se relit et se pose désormais par des passages sûrs, qui écartent les valeurs impossibles.
- Les dimensions lues du fichier de réglages sont assainies à la source : c'est du dehors qu'une valeur aberrante arrive — édition à la main, écriture interrompue, fichier d'une version antérieure.
- Toute taille calculée est vérifiée avant d'être posée sur un élément. Mieux vaut un bloc qui garde sa taille précédente qu'une passe de mise en page qui échoue et remonte en boîte d'erreur.
- Le dépôt d'image fonctionne enfin. Le code ajouté à la version précédente était correct, mais il n'était jamais appelé : le glisser-déposer de WPF passe par OLE, et OLE ne fonctionne pas sur une fenêtre EN COUCHE. Or la fenêtre principale en est une — sa bordure transparente, qui laisse déborder le logo, l'impose. L'explorateur affichait donc le curseur de refus et le fichier n'était jamais lâché.
- Le dépôt emprunte désormais le chemin du shell : la fenêtre se déclare preneuse de fichiers et reçoit un simple message, sans OLE ni couche à traverser. Les gestionnaires WPF restent en place pour les fenêtres non transparentes.
- Deux filtres de message accompagnent la déclaration : sans eux, l'isolation des privilèges bloque le dépôt sans rien dire dès que le logiciel tourne avec des droits plus élevés que l'explorateur.
- La fenêtre passe au premier plan après l'analyse : on vient de lâcher un fichier dessus, mais c'est l'explorateur qui gardait la main.
- L'icône apparaît enfin dans la barre des tâches. La correction précédente portait sur l'icône de l'EXÉCUTABLE — celle qui donne son visage au fichier dans l'explorateur. Or la barre des tâches affiche l'icône de la FENÊTRE, et aucune fenêtre n'en posait : WPF laisse alors Windows chercher du côté de la classe de fenêtre, qui n'en porte pas. D'où une icône générique, alors même que la compilation annonçait fièrement l'icône rattachée.
- L'icône est désormais posée sur toute fenêtre qui s'ouvre, depuis la ressource embarquée — la même que la zone de notification, et non un fichier à côté de l'exe, qui n'existe pas en publication d'un seul tenant.
- Le fichier porte dix tailles, de seize à deux cent cinquante-six points. Il est décodé cadre par cadre et c'est le plus proche de soixante-quatre qui est retenu : pris au plus simple, on n'aurait obtenu que le premier — seize points — que la barre des tâches aurait agrandi en bouillie.
- Glisser une image dans le logiciel l'analyse. Cela n'existait nulle part : le glisser tombait sur le rangement des blocs, qui allumait ses voiles bleus et proposait d'insérer l'image entre deux blocs — un geste sans aucun sens. Seul un déplacement de bloc porte le titre du bloc glissé ; tout le reste est désormais écarté par le rangement et récupéré par la fenêtre.
- Le bloc d'analyse s'ouvre tout seul si l'image arrive alors qu'il est fermé, se place sous les yeux et analyse. Demander d'aller d'abord le chercher dans le menu, après avoir lâché une image dessus, ce serait faire le travail deux fois. L'ouverture s'annule par Ctrl+Z comme le reste.
- Le bloc porte maintenant une invite — icône et texte — tant qu'aucune image n'a été analysée : une possibilité qu'on ne devine pas n'existe pas.
- Le filet sous la languette des blocs a disparu, pour de bon. Le débordement de trois points ajouté précédemment devait le masquer ; il ne pouvait pas. Dans une grille, les lignes sont peintes DANS L'ORDRE, et la carte du bloc — qui vient après — repassait par-dessus le débordement. Le trait réapparaissait donc exactement là où on croyait l'avoir couvert. La languette est maintenant placée sur un plan supérieur.
- Fenêtre de réglages : le bandeau d'onglets est décalé de vingt-cinq points, ce qui écarte le premier onglet du bord arrondi de la coque.
- L'onglet actif se détache : fond propre et filet sur trois côtés. Le bas reste ouvert — un trait entre la languette et le contenu séparerait deux choses qui n'en font qu'une.
- Deux clés de thème dédiées portent ce fond et cette bordure. La bordure est transparente par défaut : la fenêtre principale garde ses languettes fondues dans le corps, et seule la fenêtre de réglages la rend visible.
- L'icône de l'exécutable est de nouveau rattachée à coup sûr. Son chemin était déclaré relativement au projet, ce qui paraît naturel mais ne l'est pas : un chemin relatif est résolu par rapport au répertoire courant de l'évaluation, et celui-ci n'est pas toujours le dossier du projet. La compilation WPF passe par un projet temporaire écrit ailleurs, et le script de publication appelle le compilateur depuis la racine. La condition pouvait donc être fausse alors que le fichier était bien là, et l'icône disparaissait sans le moindre message. Le chemin est désormais ancré sur le projet.
- La compilation annonce l'icône qu'elle a retenue. C'est le diagnostic qui manquait : une icône écartée ne se voyait qu'après coup, dans l'explorateur de fichiers, sans le moindre indice sur l'endroit où chercher.
- La marge droite rejoint la gauche. L'ascenseur de la pile réservait ses dix-sept points en permanence, qu'il y ait ou non de quoi faire défiler : la marge droite valait plusieurs fois la gauche. Il est désormais masqué — pas « automatique », qui reste proscrit puisque c'est ce mode qui faisait osciller la fenêtre en apparaissant après le calcul de largeur. Masqué, il ne prend jamais de place et n'apparaît jamais : la largeur reste aussi stable, sans le bandeau réservé.
- Le défilement n'a rien perdu : la molette est déjà détournée vers la pile, et glisser un bloc vers le haut ou le bas fait défiler tout seul.
- Marges du défileur symétriques, six points de chaque côté, et pourtour de fenêtre recalculé en conséquence.
- Le troisième bloc reste sur sa ligne. Le diagnostic ajouté à la version précédente a donné le chiffre qui manquait : une rangée mesurée à 536 dans un panneau de 537 partait quand même à la ligne. Les blocs étaient bien sur la même rangée et la somme tenait — d'une seule unité. La mise en page arrondit chaque élément aux pixels de l'écran, et comme le contenu traverse un zoom de deux tiers, un pixel vaut une unité et demie : trois blocs peuvent gagner quatre unités et demie sur ce qu'on leur a posé.
- Un BATTEMENT de huit unités est désormais exigé entre ce qu'une rangée consomme et la largeur du panneau. Il est prélevé avant le calcul des parts, et le constat de débordement l'exige lui aussi : une rangée qui tombe pile sur la largeur disponible n'est plus considérée comme tenant.
- Le rattrapage de largeur tournait en rond, et le journal l'a montré. Le constat de débordement s'ajoutait sa propre réserve d'une unité : dès que la somme tombait pile, il voyait un manque, la fenêtre s'élargissait d'un point, le partage reprenait toute la place, et le manque réapparaissait. La réserve appartient au calcul des largeurs, pas au constat.
- Le partage se calcule désormais sur la largeur du panneau et non sur celle du défileur. C'est le panneau qui décide d'un retour à la ligne, et il le décide sur sa propre largeur — laquelle peut différer du viewport de quelques points.
- La part de chaque bloc est arrondie à l'entier inférieur et garde trois points de réserve au lieu d'un : la mise en page arrondit chaque élément au pixel de l'écran, et à cent cinquante pour cent trois blocs peuvent grignoter deux unités sur une réserve trop mince.
- Les messages de rangement ne se répètent plus dans le journal, et un diagnostic détaillé — largeurs posées, rangées, mesures — y est écrit quand la rangée frôle la limite.
- Le troisième bloc ne repasse plus dessous — la cause, cette fois. Le partage des largeurs se faisait DANS l'événement de redimensionnement du défileur, où la largeur utile porte encore la valeur d'AVANT : elle n'est remise à jour qu'à la fin de la passe de mise en page. On posait donc des largeurs calculées sur l'ancienne fenêtre. En agrandissant, cela ne se voyait pas — juste un peu de vide à droite le temps d'une passe. En RÉDUISANT, les largeurs étaient trop grandes pour la place restante et le dernier bloc partait à la ligne. Le filet de sécurité ajouté la veille comparait lui aussi à cette valeur périmée : il ne pouvait rien voir. Le rangement attend désormais la fin de la mise en page, et un seul est mis en file à la fois.
- Les messages de largeur sont journalisés en « info » et non en « trace » : le journal étant réglé sur info, ils n'apparaissaient pas — ce qui rendait le défaut muet alors qu'on cherchait justement à le voir.
- Le troisième bloc ne repasse plus dessous — cette fois par la mesure. Les trois tentatives précédentes travaillaient toutes sur la borne basse de la fenêtre. Elle est nécessaire, mais elle ne pouvait pas suffire : elle empêche de RÉDUIRE la fenêtre, et ne rattrape rien quand la rangée devient trop large pour une autre raison — une largeur minimale relevée dans les réglages, un troisième bloc posé à côté des deux autres, une taille de fenêtre relue du fichier au démarrage. Le logiciel mesure désormais la place RÉELLEMENT consommée par chaque rangée — largeurs posées plus gouttières, exactement ce que le panneau additionne pour décider d'un retour à la ligne — et élargit la fenêtre du manque. Un verrou empêche l'élargissement de relancer son propre calcul, et le journal explique le cas où l'écran est déjà plein.
- La borne basse se recalcule à chaque redimensionnement de la fenêtre, et plus seulement au fil du rangement de la pile.
- Plus d'espace devant le libellé des onglets. La vraie cause, cette fois : le tracé de l'icône garde ses quinze points de large et ses six de marge même quand il n'a aucune géométrie à dessiner. Vingt et un points de vide se glissaient donc devant le texte de tout onglet sans icône — ceux de la fenêtre de réglages. Un onglet sans icône escamote désormais le tracé.
- La fenêtre de réglages est plus grande et se centre sur le logiciel. « CenterOwner » ne pouvait pas convenir : la fenêtre principale traîne deux cents points de bordure transparente pour laisser déborder le logo, son rectangle déclaré est donc bien plus grand que ce qu'on voit, et le centre calculé tombait en haut à gauche du corps. Le centrage vise maintenant la coque, sans jamais sortir de l'écran de travail.
- Le troisième bloc ne repasse plus sous les autres. Trois causes : la largeur minimale retenue pour chaque bloc n'était relevée qu'à son ajout et ne suivait pas les réglages ; une forme imposée court-circuitait le besoin réel de la rangée ; et la réserve de six points par bloc tombait pile sur le viewport depuis que le plancher par bloc peut FORCER une largeur au lieu de la partager. Le pourtour de fenêtre est désormais détaillé poste par poste plutôt qu'arrondi.
- Les rapports de contraste quittent le bloc « Sélection » : deux nombres sous l'échantillon, pour une information que le sous-onglet « Contraste » présente autrement mieux — aperçus de texte, badges AA/AAA et variantes conformes.
- Les dimensions réglées font loi. Un bloc ne peut plus être réduit sous la taille fixée dans l'onglet « Dimensions », ni en hauteur ni en largeur. Le plancher est PROPRE à chaque bloc : une rangée qui descend n'écrase plus celui de ses membres les plus exigeants.
- Le grossissement agit de nouveau une fois la couleur figée. Redessiner la grille ne suffisait pas : elle se déduit de la zone CAPTURÉE, qui n'avait pas changé — le zoom semblait donc sans effet dès qu'on avait prélevé. La zone est maintenant reprise autour du pixel visé, et non du curseur, parti sur la liste déroulante.
- La case de transparence s'appelle « Calculer la transparence » et porte une pastille d'aide.
- Correction : décocher cette case rend les couleurs pleines. L'alpha issu du dernier calcul restait en place, et le prélèvement suivant — pourtant revenu au mode ordinaire — sortait encore transparent. Les deux références retenues sont également oubliées.
- Le calcul des harmonies a été refait d'après les échantillons de référence. Les trois réglages changent de nom et de sens : le contraste commande l'amplitude de rotation de la teinte, tandis que la luminance et la saturation sont des degrés de CONSERVATION — à cent, la clarté ou la vivacité de la couleur de base ne bouge plus. C'est l'inverse d'un écart, et c'est ce que disent les échantillons : contraste à zéro et luminance à cent donnent une palette uniforme ; luminance à zéro va du presque noir au presque blanc.
- Le titre répété à l'intérieur du bloc d'harmonies a été retiré, et le bloc s'appelle désormais « Harmonie ».
- Plantage corrigé : « Impossible de définir une propriété pour l'objet ScaleTransform, car il est en lecture seule ». L'échelle partagée par les infobulles et la fenêtre de réglages était un objet unique dont on changeait la valeur. Cela ne pouvait pas tenir : WPF GÈLE les Freezable posés dans un Setter de style au moment où le style est scellé, c'est-à-dire à sa première application. L'objet devenait donc immuable dans le dos du code, et le changement de zoom suivant levait. La transformation est maintenant NEUVE et gelée à chaque fois, publiée dans les ressources de l'application ; les consommateurs la lisent en DynamicResource et suivent le remplacement.
- Plus d'espace devant le premier onglet des réglages. L'écart était posé par le gabarit d'onglets, donc appliqué même sans cale : la fenêtre de réglages, qui n'a aucun logo à dégager, en héritait pour rien. Il appartient désormais à la cale de la fenêtre principale, seule à savoir de combien le logo déborde.
- Les deux scripts .bat sont en UTF-8 sans BOM. Leur en-tête l'annonçait depuis toujours, mais les trois octets étaient bel et bien là : cmd.exe les affiche comme des caractères parasites avant la première ligne.
- Les réponses par défaut sont celles qu'on veut. Une frappe sur Entrée produit désormais un exécutable autonome et SANS journal — l'ordre des deux réponses à la question du journal a été inversé pour que N soit le défaut. Le journal reste réactivable dans Réglages ▸ Journal, sans rien recompiler.
- Le logiciel se lance dès la fin de la publication, avant la pause. Il était lancé après : il fallait appuyer sur une touche pour le voir apparaître, ce qui donnait l'impression qu'il ne se lançait pas.
- La grille de la loupe tombe enfin sur les pixels. Elle se calculait sur la largeur du cadre, filet compris, alors qu'elle est peinte À L'INTÉRIEUR du filet : elle avançait d'un deux-centième de carreau par colonne, et l'écart devenait franc au bout d'une vingtaine. Le réticule et la visée souffraient du même défaut ; les trois partent maintenant d'une mesure commune, et le nombre de carreaux vaut exactement le nombre de pixels affichés.
- Le pied de la loupe a disparu : l'échantillon et le code répétaient ce que le bloc « Sélection » montre déjà en grand. Les messages de la loupe partent désormais dans la barre d'état.
- Prélever une couleur AVEC sa transparence. Un pixel semi-transparent affiché à l'écran n'est plus transparent : le système a déjà fait le mélange, et la pipette ne lit que le résultat — impossible, d'un seul point, de distinguer un rose opaque d'un rouge à demi transparent posé sur du blanc. La nouvelle case sous la loupe prélève donc TROIS points : le premier plan, le fond, puis la zone mélangée. La transparence s'en déduit, et les réglettes suivent. Un repère indique où l'on en est dans la série.
- La couleur rendue est RECALCULÉE depuis le mélange plutôt que recopiée du premier plan : un voile n'a pas toujours exactement la teinte de sa zone opaque. La dérive permise se règle dans Réglages ▸ Pipette, en pourcentage du cercle chromatique.
- Le sélecteur classique remonte enfin sa couleur, transparence comprise. La vue n'était liée par aucun Binding : le plan, la réglette de teinte et celle d'alpha ne parvenaient jamais au modèle — on croyait choisir une couleur et rien ne bougeait ailleurs. Le code principal reste en hexadécimal sans alpha si le réglage le veut ; les réglettes, elles, suivent la transparence choisie.
- Bouton de versement retiré du sélecteur classique : le bloc « Palettes » range la couleur d'un clic sur une case vide.
- Passage à .NET 10. Les deux projets visent net10.0-windows. Le script de publication refuse maintenant les SDK antérieurs à 10, et ses messages d'erreur comme le LISEZ-MOI annoncent la bonne version : c'est là qu'on va chercher ce qu'il faut installer quand la compilation refuse de partir. RollForward Major reste déclaré des deux côtés — la machine cible peut n'avoir qu'un runtime plus récent, et la politique par défaut ne franchit pas une version majeure.
- Quatre contrôles verrouillent l'ensemble : les deux projets doivent viser la MÊME version — un décalage entre eux passe la compilation et ne se voit qu'à l'exécution, sur un « framework introuvable » qui n'accuse personne.
- Le dossier contenu dans l'archive porte le nom de l'archive. Extraire deux versions côte à côte recouvrait l'ancienne, puisque le dossier s'appelait toujours « Cameleonardo ».
- Ctrl+Z défait tout. Le raccourci ne connaissait qu'une seule chose : le changement de couleur. Tout le reste — ranger un échantillon, en retirer un, verser ou charger une palette, en supprimer une de la base, vider l'historique, ajouter, retirer, déplacer ou figer un bloc — était sans retour. Un journal général enregistre désormais chaque geste avec de quoi le défaire ET de quoi le refaire, et Ctrl+Z le remonte dans l'ordre exact où les choses se sont produites, couleurs et palettes mêlées.
- Les gestes qui touchent à la palette ou à l'agencement des blocs sont PHOTOGRAPHIÉS avant et après : les deux clichés suffisent à revenir en arrière, sans que chaque mécanique ait à savoir défaire ses propres pas.
- Ctrl+Y et Ctrl+Maj+Z rétablissent, en plus de Ctrl+Alt+Z. Les bulles des deux boutons annoncent le geste concerné : plus besoin d'un Ctrl+Z d'essai suivi d'un Ctrl+Y de rattrapage.
- La pile des couleurs du modèle reste en place et garde les valeurs ; le journal n'y inscrit qu'un jalon. Les deux ne peuvent donc pas se désynchroniser, puisqu'un jalon est posé à chaque pas de couleur.
- Densité constante par défaut. La mise à l'échelle de Windows n'est plus respectée d'origine. Une migration des réglages accompagne le changement : modifier une valeur par défaut ne touche jamais une installation existante, puisque le fichier fournit déjà une valeur.
- Les infobulles et les réglages suivent l'échelle. Une infobulle vit dans un Popup, une fenêtre de réglages est une fenêtre à part : ni l'une ni l'autre n'héritaient du zoom de la fenêtre principale, et restaient à la taille du système. Une transformation unique et mutable, partagée par les deux, règle la question d'un seul appel.
- Même geste partout sur les échantillons. Clic gauche : la couleur devient la couleur courante. Clic droit : son code part au presse-papiers, dans le format choisi, et s'affiche en grand au centre du logiciel avant de s'effacer. Une douzaine d'endroits appliquaient jusqu'ici chacun sa règle.
- Les blocs se déplacent par leur languette, curseur à quatre flèches à l'appui ; le bouton dédié a disparu. La languette elle-même est décalée, descendue et posée SUR la carte : le filet qui traînait dessous a disparu.
- La fenêtre ne se resserre plus trop. Sa largeur minimale est désormais la somme des largeurs des blocs de la rangée la plus large, gouttières et pourtour compris — le troisième bloc collé à droite ne bascule plus sous les autres.
- Menu des blocs en boutons, de largeur égale et côte à côte, chacun avec une pastille verte (affiché) ou rouge (masqué).
- Bloc « Sélection » (ex-« Couleur et code ») : la liste des couleurs nommées le quitte — le bloc « Noms de couleurs » fait la même chose en mieux — le champ de code prend toute la ligne et les boutons passent dessous. Un menu contextuel s'ouvre sur l'échantillon principal.
- Onglet Classique allégé : les champs hexadécimal et R/V/B disparaissent (trois saisies concurrentes pour la même couleur), deux boutons les remplacent : inverser et tirer au hasard.
- Déviations : nouvelle rangée « Gammes TSV », venue de l'onglet Classique où elle portait le nom trompeur de « teintes voisines » — elle balaie la valeur puis la saturation à teinte constante, là où la rangée « Voisines » fait tourner la teinte. Chaque rangée se verse d'un clic dans la palette, et la bascule « Transférer » propose « Cette ligne » ou « Toutes » sous un nom déduit de la déviation et de la couleur de base.
- Bloc « Palettes » (ex-« Base de palettes ») : jusqu'à deux cent cinquante-six échantillons, double-clic pour en retirer un, titre interne supprimé, et toutes les palettes rangées dans un accordéon défilant plafonné à trois cents points.
- « Palette analogique » devient « Générateur de palette », et son bouton « Tout verser » disparaît : l'icône du haut du bloc faisait déjà cela.
- La poignée emmène toute la rangée. Agrandir un bloc monte ses voisins avec lui ; réduire le fait d'abord descendre seul tant qu'il les dépasse, puis, une fois à leur niveau, la ligne entière suit.
- Plus aucune dimension écrite en dur : la page « Dimensions » des réglages, et à défaut la mesure du contenu, font seules autorité. La table de hauteurs qui vivait dans le code est supprimée.
- Le nom du logiciel et sa version reviennent sur la ligne du menu, à gauche comme auparavant, décalés de vingt points vers la gauche.
- Les réglages ne s'ouvrent plus sur une erreur : un style de champ était référencé par la nouvelle page « Dimensions » sans avoir jamais été défini. Le contrôle qui traque ces oublis ne regardait que la fenêtre principale ; il parcourt désormais TOUTES les vues, et sa capacité à détecter le cas a été vérifiée en le provoquant volontairement.
- La barre du mode application se range à droite : bascule de thème, puis menu. Le nom du logiciel a quitté cette barre pour rejoindre le logo, accompagné du numéro de version.
- La page « Dimensions » se remplit — et se règle. Elle restait blanche : le relevé tournait avant que la liste des blocs ne soit construite. Les valeurs mesurées y sont désormais affichées ET modifiables : ce que vous saisissez fait loi, un bouton rend la main à la mesure.
- L'ombre portée était coupée net en bas et à droite : la bordure transparente n'y faisait que deux points, alors que l'ombre déborde d'une vingtaine. Elle a désormais la place de s'étaler.
- Déplacer un bloc vers le haut : approcher du bord fait défiler la pile toute seule, on peut donc porter un bloc là où il n'était pas visible.
- Bandes haute et basse : viser le haut d'un bloc affiche une barre bleue franche — le bloc s'insérera au-dessus, sur toute la largeur. La bande basse fait de même en dessous. Les flancs continuent de mettre en colonne.
- Deux blocs côte à côte tiennent vraiment. Trois causes, corrigées ensemble : la barre de défilement apparaissait après coup et volait la largeur qui venait d'être calculée — elle est maintenant réservée en permanence ; le partage tombait au point près, et le moindre arrondi renvoyait un bloc à la ligne — un point de réserve a été ajouté ; enfin, une rangée trop à l'étroit élargit la fenêtre au lieu de refuser le placement.
- Toucher aux blocs à la main libère la disposition, quel que soit le geste.
- Plein écran sans bordure transparente : agrandie, la fenêtre se remplit d'un bord à l'autre. La marge et le fond sont animés, le passage se fait en douceur au lieu d'une saccade.
- Bordure réduite quand le logo est masqué : quatre-vingts points en haut, rien à gauche — elle ne réservait de la place que pour le logo débordant.
- La barre d'icônes se cale désormais sur la bordure et suit ses changements.
- Poser un bloc à côté d'un autre fonctionne de nouveau. Une disposition imposée — colonne unique ou angle — range les blocs à sa façon, et elle reprenait la main juste après le geste : le bloc lâché sur le flanc retombait aussitôt dessous. Placer un bloc à la main libère désormais la pile, qui suit vos placements.
- Une flèche blanche dans le voile de dépôt annonce le côté visé : gauche, droite, ou vers le bas pour une pleine largeur.
- Une ombre portée derrière le corps de la fenêtre, dans les deux styles : bordée de transparence, elle semblait collée au bureau.
- Figer un bloc : une épingle, à côté des boutons déplacer et fermer, sort le bloc du défilement. Il garde sa place à l'écran — exactement là où il était — pendant que les autres passent dessous. Un second clic le rend au rangement.
- Règle de hauteur appliquée partout : une rangée prend la hauteur de son bloc le plus exigeant, et tous les blocs de la ligne s'y alignent. Les rangées ne se partagent plus la hauteur de la fenêtre — elles la demandent.
- Cinq points séparent les blocs de la mosaïque.
- Nouvel onglet Dimensions dans les réglages : la largeur et la hauteur minimales de chaque bloc, relevées sur le contenu réel.
- La typographie a sa propre page : la page Palette portait trois blocs de front, qui ne tenaient plus à la règle de hauteur.
- Barre d'icônes remontée en mosaïque ; languettes inactives remontées de trois points.
- Ouvrir les réglages ne bouscule plus rien : la taille et la position de la fenêtre ne sont reposées qu'au lancement, et l'application au fil de l'eau attend un vrai geste — listes et réglettes lèvent leurs événements en se montant, ce qui suffisait à réappliquer des réglages que personne n'avait touchés.
- Plus aucune taille en dur au démarrage : la fenêtre s'ouvre à la taille des réglages, donc aux valeurs par défaut du modèle au premier lancement.
- Le logiciel s'ouvre en colonne unique.
- Languettes des sélecteurs encore raccourcies et remontées.
- La mise à l'échelle de Windows est respectée par défaut : l'interface suit désormais le réglage du système. Les fichiers de réglages existants sont migrés, sans quoi ils auraient gardé l'ancien choix.
- Languettes des sélecteurs raccourcies et remontées : elles se posent au ras du titre du bloc au lieu de flotter au milieu.
- Onglets : ce n'était pas une affaire de hauteur. Relevé au pixel, la languette active mesure exactement la même chose que ses voisines. Elle était peinte d'un voile presque transparent : elle laissait donc voir ce qui passe derrière, et comme le corps du bloc commence à mi-hauteur, elle changeait de teinte en son milieu — d'où l'impression d'un onglet coupé, tenace et bien réelle. Elle prend maintenant la couleur pleine du corps, avec lequel elle ne fait plus qu'une pièce.
- Onglets, la dernière pierre : le panneau qui range les languettes est écrit EN DUR dans le gabarit du contrôle d'onglets. Le remplacer dans une vue n'avait donc aucun effet — la correction précédente ne s'appliquait nulle part. Le gabarit lui-même utilise maintenant une pile horizontale : les languettes actives et inactives tiennent enfin la même hauteur, mesurée.
- Le fichier reglages.json est créé dès le démarrage, sans attendre le premier changement : il existe donc toujours à côté du programme.
- Erreur au premier enregistrement corrigée : « aucune position mémorisée » s'écrit avec le nombre spécial NaN, que le format JSON refuse par défaut. Tant qu'un ancien fichier existait, le cas ne se présentait pas ; le fichier neuf posé auprès du programme l'a révélé. Le format accepte désormais ces nombres, et les réglages sont assainis avant chaque écriture — une seule valeur malade ne peut plus faire perdre tout le fichier.
- Les réglages vivent auprès du programme : reglages.json est écrit dans le dossier de l'exécutable, à la manière d'un logiciel portable — le profil utilisateur ne sert plus que de repli quand ce dossier refuse l'écriture. Un fichier déjà posé dans le profil reste reconnu, et l'emplacement se choisit dans les réglages, qui déplacent le fichier à la demande.
- Colonne unique, la vraie cause du vide : la largeur minimale de la fenêtre — celle qu'exige la mosaïque du mode bureau — l'emportait sur la largeur demandée. Elle s'abaisse maintenant à la mesure de la colonne.
- Sous-onglets enfin alignés, cause mesurée : au pixel près sur une capture, les languettes inactives faisaient trente-neuf points de haut et l'active trente-trois, alors que la hauteur imposée était la même pour toutes. Le coupable est le bandeau lui-même — le panneau d'onglets de WPF réserve un sort particulier à l'élément sélectionné. Il est remplacé par une simple pile horizontale, qui n'a pas cette coquetterie.
- Colonne unique : la largeur calculée est en unités d'interface et devait passer par le zoom avant d'être posée sur la fenêtre. Sans cette conversion, un écran à cent cinquante pour cent laissait près de trois cents pixels de vide à droite des blocs.
- Ouverture : la forme enregistrée redimensionne la fenêtre dès le lancement, et non plus seulement quand on la choisit dans le menu.
- Barre d'icônes d'actions remontée de dix points en mode application.
- Publication nettement plus rapide : les dossiers obj ne sont plus effacés à chaque fois — leur suppression obligeait la restauration à tout recalculer et à réinterroger les sources en ligne, pour un projet qui n'a aucune dépendance externe. Ajouter propre en troisième argument force le grand ménage.
- La publication réutilise la restauration déjà faite, avec reprise automatique si elle s'en plaignait.
- Chaque étape lourde annonce sa durée : une lenteur se diagnostique désormais d'un coup d'œil.
- Choisir une forme de disposition redimensionne la fenêtre : réduite à la largeur d'une colonne pour la colonne unique, élargie au besoin pour les angles.
- La barre d'icônes d'actions reste au-dessus du bloc parent, dans la bordure transparente.
- Ce journal des versions, écrit et livré à la racine du programme.
- Formes imposées à la pile : un bouton du bandeau propose la disposition libre, la colonne unique et les quatre angles ┌ ┐ └ ┘. Une bande horizontale plus une colonne latérale laissent le MILIEU vide : avec un fond effacé, la fenêtre encadre un autre logiciel sans le couvrir.
- La disposition enregistrée est désormais VÉRIFIÉE au démarrage (trois blocs par rangée au plus) : un réglage ancien entassait les onze blocs sur une seule ligne.
- Largeurs exactes : un bloc seul et trois blocs côte à côte s'arrêtent au même bord ; dix points de vide en moins à droite.
- Mode application : la barre d'icônes descend au niveau du menu, et le bouton de thème s'aligne sur le bord des blocs.
- Pendant un déplacement, un voile bleu montre où le bloc va se poser : moitié gauche, moitié droite, ou bloc entier pour une nouvelle rangée.
- Hauteurs accordées : dans une rangée, le bloc le plus haut donne le la.
- Cinq points de gouttière entre les blocs ; menu affichant tous ses blocs d'un coup ; icônes du bandeau allégées.
- Sous-onglets alignés, la vraie cause : l'onglet actif passe en gras, le texte gras est plus haut, sa languette grandissait donc de deux points — et le bandeau alignant tout par le haut, elle seule débordait. Hauteur imposée.
- Cases de la palette : la couleur débordait des coins arrondis (le rognage d'un conteneur ne suit pas un rayon d'angle). Bords arrondis imbriqués.
- Fenêtre de réglages : le chemin du fichier passait sous les boutons.
- La transparence ne concerne QUE le fond extérieur. Les cartes des blocs sont peintes d'un voile presque transparent : le fond effacé, le bureau se voyait au travers. Le voile est maintenant aplati sur la couleur de coque — même rendu, mais opaque.
- Nouveau sélecteur Nuancier : une nappe où la teinte tourne de gauche à droite pendant que la clarté descend, la rangée médiane franche, celle du dessus délavée, celles du dessous assombries. Six réglettes la déplacent sans casser le dégradé ; chaque case s'adopte au clic et part en palette au clic droit.
- Toute palette enregistrée demande un nom, en proposant d'office la date et l'heure.
- Opacité du fond réglable jusqu'à zéro pour cent.
- Réglages d'agencement expliqués par des pastilles « i ».
- Barre d'icônes : serrée contre le logo en mode application ; descendue au niveau des languettes en mode bureau, remontée seulement quand le bandeau d'onglets vient la toucher.
- Réglages appliqués au fur et à mesure : chaque case, liste ou réglette agit immédiatement, l'interface est rechargée dans la foulée. « Rétablir » revient à l'état d'avant l'ouverture.
- La fenêtre de réglages porte l'habit de la fenêtre principale : plus de cadre du système, coque arrondie, barre de titre maison.
- Sélecteur Typographie : les polices Google téléchargées pour de vrai et gardées hors ligne, avec quatre accords de couleurs bâtis sur la couleur en cours et le contraste mesuré en direct.
- Blocs en colonnes : lâcher un bloc sur le flanc d'un autre les met sur la même rangée, largeur partagée ; la disposition est retenue d'une session à l'autre.
- Sélecteur « Échelle » retiré : il faisait doublon avec les déviations.
- Boutons d'entête redessinés : le gabarit général dessinait un tracé de seize points dans un bouton de quatorze, d'où leur aspect étriqué.
- Sélecteurs Photoshop, iOS et Roue remplacés par deux sélecteurs de métier.
- Titres des blocs en languettes ; bouton « déplacer » par bloc ; opacité du fond réglable ; boutons « tout verser dans la palette » sur la palette analogique et le sélecteur classique.
- Le logiciel ne démarrait plus : dans le bloc de texte, l'analyseur XAML déclenche l'événement de changement de texte PENDANT la construction, avant que l'aperçu déclaré plus bas n'existe. Garde posée ; le journal déroule désormais la cause racine des échecs de démarrage.
- Blocs de la pile refaits : bandeau de titre portant la croix, contour pour toutes les vues, poignée de redimensionnement, hauteurs par défaut mesurées.
- Le menu liste tous les blocs, se classe par glisser-déposer et défile jusqu'au bloc choisi.
- Clic droit sur n'importe quel échantillon : la couleur part dans la palette.
- Base de palettes livrée garnie de six palettes, plus un bouton de tirage aléatoire ; l'historique retrouve un bloc à lui seul.
- Déviations : le curseur règle le NOMBRE d'échantillons.
- Nouveau bloc Texte et polices : texte, polices du système, lien vers les polices Google, et un dé qui accorde police, fond et encre.
- Liste de travail TODO.md tenue à la racine du projet.
- Les boutons du haut vivaient dans le bandeau du mode bureau et disparaissaient avec lui : ils flottent maintenant hors du corps, au niveau du logo, alignés à cinq pour cent du bord droit, visibles dans les deux styles.
- Menu façon téléphone : pleine largeur, il pousse le contenu vers le bas.
- Démarrage réparé : la pile des blocs était montée dès le constructeur, tout son poids tombait dans le premier calcul de mise en page et la fenêtre n'apparaissait jamais. La bascule est différée après l'affichage, et chaque bloc s'ajoute sous garde avec un jalon nommé au journal.
- Blocs de la pile bornés en hauteur : sans plafond, la liste des cinq mille noms perdait sa virtualisation et gelait le premier affichage.
- Filets d'exception complétés (hors répartiteur, tâches oubliées).
- Mode application : fond opaque à lui (celui du mode bureau était peint par le bandeau d'onglets caché), menu dégagé du logo, et les blocs s'empilent à la verticale — trois et plus visibles à la fois.
- Mode Application, actif par défaut : une barre à menu, les blocs choisis dans un tiroir, plus aucune contrainte de mosaïque.
- Scénarios d'affichage par bloc : étendue préférée, extension permise, bandeau pleine largeur pour ceux qui n'ont pas de forme imposée.
- Taille minimale enregistrée en pixels et recalculée selon le zoom ; réglage « respecter la mise à l'échelle de Windows ».
- Densité constante : à cent cinquante pour cent, Windows dessinait tout une fois et demie trop gros — une fenêtre de neuf cents pixels ne contenait que six cents unités d'interface. L'échelle du système est désormais neutralisée et le logiciel s'affiche au pixel près, comme l'original.
- Bandeau d'onglets stabilisé : sa barre de défilement horizontale apparaissait en fenêtre réduite et faisait changer sa hauteur, d'où le désalignement.
- Trois colonnes garanties ; promotion des outils calculée au vrai coût.
- L'échelle de l'écran est demandée au système : tous les seuils de taille se jugent en pixels réels, et les minimums de fenêtre suivent l'écran courant.
- Plantage au lancement : un style référencé trois fois n'avait jamais été défini, l'insertion ayant visé une ancre absente. Contrôle ajouté : chaque ressource citée doit exister quelque part.
- Icônes du bandeau en négatif ; trois colonnes au minimum ; paliers de languettes abaissés.
- Les onglets n'avaient pas disparu : le logo du coin les couvrait. Cale posée.
- Plus aucun défilement : les rangées se compriment plutôt que d'appeler l'ascenseur.
- Languettes à trois paliers (tout, icônes seules, onglet Couleur seul) ; sous-blocs en proportion de leur bloc.
- Blocs géants corrigés : un bloc resté seul sur sa rangée prenait toute la largeur. La grille comble maintenant les rangées et plafonne l'étirement.
- Bloc « base de palettes » et bloc « analyse d'image » ; voile de lancement au centre du logiciel.
- Sélecteurs en sous-onglets ; palette en patchwork autour du pivot ; annuler et rétablir enfin fonctionnels (les réglettes ne validaient jamais) ; flèches du clavier pour régler la couleur au pas près.
- Retour à des onglets classiques ; logo agrandi et posé à cheval sur le coin ; déviations qui ne se rebrassent plus à chaque clic.
- Corps opaque ; grille fluide maison : les blocs se répartissent la largeur comme sur une page web, sans jamais laisser de vide en bout de ligne.
- Onglets opaques empilés de la gauche vers la droite ; vues de sélection à taille figée ; pivot au centre de la palette ; poignée de redimensionnement.
- Mosaïque à cartes de dimensions figées ; languettes redessinées d'un seul tracé ; pastilles de fenêtre en couleur pleine.
- Fenêtre déplaçable depuis n'importe quel point vide ; agencement dynamique enfin visible (les colonnes de base absorbaient toute la largeur gagnée).
- Le bandeau gris derrière les onglets était peint par Windows, pas par le logiciel : le fond système demandé se voyait partout où l'interface laisse transparent. Fond système coupé.
- Loupe maintenue carrée.
- Habillage repris de la maquette : coque en dégradé nuit, languettes à pastille, pastilles de fenêtre rondes, réglettes en gélule.
- Languettes qui débordent de la fenêtre ; rangement des outils calqué sur ColorMania ; le mode sombre ne s'appliquait pas faute de migration des réglages existants.
- Refonte : coque de verre, ruban d'onglets en bord de fenêtre, page de lancement, grille de la loupe calée sur le pas réel.
- Interface condensée ; navigation au pixel dans la loupe figée ; sélecteur de déviations ; vingt-quatre icônes dessinées au trait.
- Publication autonome ramenée de 162 à 71 Mo : les options passées en ligne de commande étaient ignorées en silence par le SDK. Elles sont maintenant déclarées dans le projet, qui annonce leurs valeurs effectives.
- Plantage au démarrage, cause racine : les dictionnaires de thème étaient déclarés en ressources, ce qui REMPLACE la déclaration du SDK au lieu de s'y ajouter — le XAML compilé disparaissait au profit du XAML brut, illisible à l'exécution.
- Console de contrôles qui semblait figée : elle vidait son tampon à chaque caractère écrit. Démarrage durci, exceptions journalisées avant tout.
- Journal d'exécution complet à côté du programme, activable à la compilation, au réglage ou en ligne de commande.
- Chaîne de publication fiabilisée : pauses sur toutes les sorties du script, restauration propre quand une architecture est demandée, choix du mode de publication, contrôles rejouables seuls.
- Première version. Pipette avec loupe de un à vingt, sélecteurs de couleur, palette de seize cases, historique, cinq mille six cent soixante-huit noms de couleurs, quatorze formats de code, thèmes clair et sombre, journal et console de contrôles.
Avis
Pour déposer un avis, saisissez le code affiché dans la fenêtre À propos du logiciel (il change toutes les cinq minutes).
Aucun avis pour le moment. Soyez le premier à donner le vôtre.