#1. Objet, portée et autorité du document
#1.1 Ce que ce document décide
Cette charte fixe les règles visuelles de la marque KySpectra, éditée par Kyrieva : construction du logo, palette, typographie, iconographie, diagrammes, mise en page, application aux supports et exigences d'accessibilité. Elle s'applique à tout ce qui porte le nom du produit : portails web, documents du dossier de lancement, présentations, réseaux sociaux, imprimés, signatures de courriel.
Elle est écrite pour être exécutable par une personne comme par un agent. Chaque règle est vérifiable : une valeur hexadécimale, un ratio de contraste calculé, un chemin SVG exact, un seuil en pixels ou en millimètres.
#1.2 Portée
| Périmètre | Couvert par cette charte | Statut |
|---|---|---|
| Logo et ses sept déclinaisons livrées | Oui — section 3 | 🟢 Livré |
| Palette thème clair et thème sombre | Oui — section 6 | 🟢 Livré |
| Typographie et échelle | Oui — section 8 | 🟢 Livré |
| Iconographie de produit | Oui — section 9 | 🟢 Livré |
| Style de diagramme Mermaid et SVG | Oui — sections 10 et 14 | 🟢 Livré |
| Gabarits réseaux sociaux exportés | Oui — section 12.2 · six fichiers dans social/ |
🟢 Livré |
| Gabarits imprimés exportés | Oui — section 12.3 · cinq fichiers dans print/ |
🟢 Livré |
| Canevas de proposition de valeur par persona | Oui — douze fichiers dans canevas/ |
🟢 Livré |
| Système de composants d'interface complet | Hors périmètre — vit dans le design system du code | 🟢 Livré ailleurs |
| Charte de marque de l'éditeur Kyrieva | Hors périmètre | ⚪ Planifié |
#1.3 Autorité et résolution des conflits
Le 00-brief-commun.md fait autorité. En cas de contradiction entre la présente charte et le brief commun — orthographe de la marque, slogans, palette, typographie, statuts, ton, standards de fichiers — le brief gagne, et cette charte doit être corrigée dans la même journée ouvrable.
En cas de contradiction entre cette charte et un fichier SVG livré dans 08-assets/logos/, le fichier gagne : les valeurs géométriques de la section 3 sont une transcription des fichiers, pas une intention. Toute divergence constatée est un défaut de ce document, à corriger ici.
En cas de contradiction entre cette charte et le code d'interface (frontend/packages/design-system/src/tokens.ts), le code gagne pour les jetons de couleur — cette charte en est le reflet documentaire. Les règles d'usage (quand employer le violet, quelle graisse pour un sous-titre) restent, elles, décidées ici.
#1.4 Vocabulaire de cette charte
| Terme | Sens dans ce document |
|---|---|
| Le prisme | Le symbole hexagonal seul, sans mot-symbole |
| Mot-symbole | Le mot « KySpectra » composé en Space Grotesk 700 |
| Verrouillage | Un assemblage figé symbole + mot-symbole, dont les proportions ne se modifient jamais |
| Ligne descriptive | La mention « PLATEFORME AGENTIQUE SDD/SDLC » sous le mot-symbole |
| Zone de protection | Le vide obligatoire autour du logo, dans lequel rien ne pénètre |
Unité x |
L'unité de mesure de la grille du symbole — voir §3.2 |
| Encre unique | La seule couleur employée dans une version monochrome |
#2. Concept d'identité — le prisme
#2.1 Le récit en trois temps
Premier temps — le périmètre. L'hexagone régulier est fermé. Il délimite un espace gouverné : un locataire, son projet, ses données, ses agents. Rien n'entre et rien ne sort sans passer par une arête. C'est la traduction graphique de l'étanchéité entre clients, qui dans le produit répond 404 plutôt que 403 quand un identifiant de locataire ne correspond pas au jeton — on ne révèle pas l'existence de la ressource d'autrui. Six côtés, six arêtes, six maillons : comprendre, spécifier, concevoir, fabriquer, vérifier, livrer.
Deuxième temps — l'axe. Le trait vertical traverse l'hexagone de part en part. Il ne s'arrête pas au centre, il ne s'interrompt pas. C'est la chaîne continue intention → production. Sa couleur est le bleu le plus profond de la palette, #0a4fa0 : l'axe est la partie la plus stable du système, celle qui ne bouge pas quand tout le reste change. Il est dessiné en premier dans la lecture, avant les branches, parce que la spécification précède l'exécution.
Troisième temps — la bifurcation. Deux branches partent d'un seul point, exactement au centre de l'axe. La gauche, en Ocean #0f6fde, est la voie humaine. La droite, en violet #7c5cfc, est la voie agentique. Elles divergent, mais elles partent du même point de spécification et restent à l'intérieur du même périmètre. C'est la thèse du produit en une image : l'agent n'est pas un canal parallèle et opaque, c'est une branche de la même chaîne, tracée à partir de la même exigence, contenue par la même gouvernance.
#2.2 Lien avec la vision
La vision du produit tient en une phrase : plus aucune ligne de code orpheline de son intention. Le symbole la dessine littéralement. Aucune branche ne flotte librement : chacune est rattachée à l'axe, et l'axe traverse le périmètre. Il n'existe, dans tout le tracé, aucun segment qui ne soit relié à un autre. Un trait détaché serait, dans notre grammaire, exactement ce que nous combattons : du code sans exigence de rattachement.
C'est la raison pour laquelle la règle 11 de la section 5 interdit de séparer les branches du symbole. Ce n'est pas une coquetterie de designer, c'est une cohérence de discours.
#2.3 Pourquoi le violet, et seulement là
Le violet #7c5cfc est, dans tout le système, le marqueur de provenance IA : il signale ce qui vient d'un agent, et rien d'autre. Le logo en contient une occurrence unique — la branche droite — et cette occurrence n'est pas décorative : elle désigne précisément l'agent. C'est la seule dérogation tolérée au principe « le violet n'est jamais une couleur d'ornement », parce qu'ici il conserve exactement sa fonction sémantique.
Conséquence pratique : dans une composition où le logo côtoie une interface, la présence de violet dans le logo ne légitime pas l'emploi du violet ailleurs dans la composition. Voir §6.4.
#2.4 Ce que le symbole n'est pas
| Fausse lecture | Correction |
|---|---|
| Un écrou, une pièce mécanique | Le symbole n'évoque pas l'industrie lourde ; les arêtes sont fines et les extrémités arrondies |
| Un cristal, une gemme | Aucune facette, aucun dégradé, aucun effet de matière |
| Une chaîne de blocs | L'hexagone est unique, jamais répété en maillage |
| Une cible ou un radar | Pas de cercles concentriques, pas d'anneau |
| Un logo de fournisseur d'IA générative | Le violet est une branche parmi deux, pas la couleur dominante |
#3. Construction du logo
#3.1 Le symbole — géométrie exacte
Le prisme est tracé dans une boîte carrée de 64 × 64 unités, centre en (32, 32).
| Grandeur | Valeur | Dérivation |
|---|---|---|
| Forme | Hexagone régulier, pointe en haut | — |
| Rayon circonscrit | 26 unités | Distance centre → sommet |
| Demi-largeur | 22,52 unités | 26 × cos 30° |
| Hauteur totale | 52 unités | 2 × 26 |
| Largeur totale | 45,04 unités | 2 × 22,52 |
| Rapport largeur / hauteur | 0,866 | cos 30° |
| Marge dans la boîte | 6 unités en haut et en bas, 9,48 à gauche et à droite | 32 − 26 et 32 − 22,52 |
Chemin exact du périmètre, à ne jamais retracer à la main :
M32 6 L54.52 19 L54.52 45 L32 58 L9.48 45 L9.48 19 Z
Les trois traits internes :
| Trait | Chemin | Couleur | Longueur | Sens de lecture |
|---|---|---|---|---|
| Axe vertical | M32 14 L32 50 |
#0a4fa0 |
36 unités | La chaîne continue intention → production |
| Branche gauche | M32 32 L16.41 23 |
#0f6fde |
18 unités | La voie humaine |
| Branche droite | M32 32 L47.59 23 |
#7c5cfc |
18 unités | La voie agentique |
Propriétés géométriques à connaître avant toute retouche :
- L'axe est symétrique : il s'arrête à 8 unités du sommet supérieur (y = 14 contre y = 6) et à 8 unités du sommet inférieur (y = 50 contre y = 58).
- Chaque branche mesure exactement la moitié de l'axe (18 contre 36), et exactement la moitié supérieure de l'axe (de y = 32 à y = 14, soit 18).
- Les branches montent à 30° au-dessus de l'horizontale, donc à 60° de l'axe vertical, et sont donc distantes de 120° l'une de l'autre.
- Les deux branches partent du centre géométrique exact (32, 32), c'est-à-dire du milieu de l'axe. La bifurcation est au milieu de la chaîne, pas à son début ni à sa fin.
- Aucune extrémité de branche ne touche une arête de l'hexagone : la pointe (16,41 ; 23) reste à l'intérieur.
Attributs de tracé, identiques pour les quatre chemins :
| Attribut | Valeur | Effet |
|---|---|---|
stroke-width |
4,4 unités | 6,875 % du côté de la boîte de 64 |
stroke-linecap |
round |
Extrémités arrondies — aucune coupe franche |
stroke-linejoin |
round |
Sommets de l'hexagone adoucis |
fill |
none |
Le symbole est un tracé, jamais une surface pleine — sauf le favicon |
#3.2 L'unité de mesure x
Toute la construction se lit en x = 4 unités de la grille de 64, c'est-à-dire un seizième du côté de la boîte. Cette valeur n'est pas arbitraire : elle correspond à l'espacement de base de 4 px du design system, ce qui permet d'aligner le logo sur le rythme vertical de l'interface sans arrondi.
| Grandeur | En unités | En x |
|---|---|---|
| Côté de la boîte du symbole | 64 | 16 x |
| Rayon circonscrit | 26 | 6,5 x |
| Hauteur de l'hexagone | 52 | 13 x |
| Largeur de l'hexagone | 45,04 | 11,26 x |
| Longueur de l'axe | 36 | 9 x |
| Longueur d'une branche | 18 | 4,5 x |
| Épaisseur de trait | 4,4 | 1,1 x |
| Zone de protection minimale | 26 | 6,5 x |
#3.3 Zone de protection
Règle : le vide autour du logo est au moins égal à la demi-hauteur de l'hexagone, soit 26 unités = 6,5 x = 50 % de la hauteur de l'hexagone.
Ce vide se mesure depuis la boîte englobante de l'ensemble du verrouillage (symbole + mot-symbole + ligne descriptive), pas depuis le seul symbole. Rien n'y pénètre : ni texte, ni filet, ni bord de page, ni photographie, ni un autre logo, ni un badge de magasin d'applications.
| Verrouillage | Hauteur de l'hexagone sur le canevas | Zone de protection minimale |
|---|---|---|
logo-principal.svg (échelle 1,25) |
65 unités de canevas | 32,5 unités de canevas |
logo-horizontal.svg (échelle 0,875) |
45,5 unités de canevas | 22,75 unités de canevas |
logo-vertical.svg (échelle 1,375) |
71,5 unités de canevas | 35,75 unités de canevas |
logo-symbole-seul.svg (échelle 1) |
52 unités | 26 unités |
favicon.svg |
28,8 unités | Sans objet — la plaque arrondie tient lieu de protection |
Quand deux logos cohabitent (co-marquage, partenariat, mention « par Kyrieva »), la zone de protection s'applique de part et d'autre, et le séparateur éventuel est un filet vertical de 1 px en #e2e8f2 (thème clair) ou #24304a (thème sombre), centré dans l'espace libre.
#3.4 Les verrouillages — valeurs exactes
Verrouillage horizontal — logo-horizontal.svg, viewBox 0 0 320 80
| Élément | Valeur |
|---|---|
| Symbole | échelle 0,875, translation (12, 12) |
| Emprise du symbole sur le canevas | x de 20,30 à 59,71 · y de 17,25 à 62,75 |
| Mot-symbole | x = 86, y = 53 (ligne de base) |
| Corps du mot-symbole | 38 |
| Graisse | 700 |
| Interlettrage | −0,4 |
| Écart symbole → mot-symbole | 26,29 unités de canevas |
Logo principal — logo-principal.svg, viewBox 0 0 440 120
| Élément | Valeur |
|---|---|
| Symbole | échelle 1,25, translation (16, 20) |
| Emprise du symbole sur le canevas | x de 27,85 à 84,15 · y de 27,5 à 92,5 |
| Mot-symbole | x = 112, y = 63, corps 44, graisse 700, interlettrage −0,5 |
| Ligne descriptive | « PLATEFORME AGENTIQUE SDD/SDLC » |
| Position de la ligne descriptive | x = 114, y = 88 |
| Corps de la ligne descriptive | 12 |
| Graisse de la ligne descriptive | 500 |
| Interlettrage de la ligne descriptive | 1,7 |
| Couleur de la ligne descriptive | #4f5b70 |
Verrouillage vertical — logo-vertical.svg, viewBox 0 0 260 200
| Élément | Valeur |
|---|---|
| Symbole | échelle 1,375, translation (86, 16) |
| Centre optique du symbole | x = 130 — aligné sur l'axe de composition |
| Mot-symbole | x = 130, y = 155, text-anchor="middle", corps 40, graisse 700, interlettrage −0,4 |
| Ligne descriptive | x = 130, y = 180, text-anchor="middle", corps 11,5, graisse 500, interlettrage 1,6, #4f5b70 |
Symbole seul — logo-symbole-seul.svg, viewBox 0 0 64 64 — le symbole à l'échelle 1, sans transformation, fond blanc explicite.
Favicon — favicon.svg, viewBox 0 0 32 32 — construction différente, assumée :
| Élément | Valeur | Raison |
|---|---|---|
| Plaque | rect 32 × 32, rx = 6, fill="#ffffff" |
Détache l'icône de n'importe quel fond d'onglet |
| Hexagone | plein, fill="#0f6fde", chemin M16 1.6 L28.7 8.8 L28.7 23.2 L16 30.4 L3.3 23.2 L3.3 8.8 Z |
Un tracé filaire disparaît à 16 px |
| Rayon circonscrit | 14,4 unités sur 32 | L'hexagone occupe 90 % de la plaque |
| Traits internes | réservés en blanc, épaisseur 2,6 | Contraste maximal, pas de superposition de bleus |
| Épaisseur relative | 8,125 % du côté | Volontairement plus épais que les 6,875 % du symbole, pour tenir à 16 px |
| Chemins internes | M16 5.9 L16 26.1 · M16 16 L7.4 11 · M16 16 L24.6 11 |
Mêmes angles, mêmes proportions relatives |
#3.5 Le mot-symbole
| Règle | Valeur |
|---|---|
| Police | Space Grotesk, graisse 700 |
| Bicolore par défaut | Ky en #0f6fde, Spectra en #0e1729 |
| Monochrome | Le mot entier prend l'encre unique — jamais un mot bicolore sur une version monochrome |
| Interlettrage | −0,4 en corps 38 et 40 · −0,5 en corps 44 |
| Casse | KySpectra, jamais KYSPECTRA, Kyspectra, Ky Spectra, ky-spectra |
| Coupure de mot | Interdite. Le mot-symbole ne se coupe jamais en fin de ligne |
La coupure bicolore se situe entre le y et le S. Elle n'est pas une césure typographique : le mot reste un mot unique, sans espace, sans trait d'union, sans capitale interne supplémentaire.
#3.6 Tailles minimales
Écran (largeur totale du fichier rendu, en pixels CSS) :
| Fichier | Taille minimale | Contrainte qui la fixe |
|---|---|---|
logo-principal.svg |
280 px de large | La ligne descriptive descend sous 8 px en dessous |
logo-horizontal.svg |
120 px de large | Le mot-symbole descend sous 14 px en dessous |
logo-vertical.svg |
110 px de large | Idem, avec ligne descriptive dégradée sous 190 px |
logo-symbole-seul.svg |
20 px de côté | Le trait de 6,875 % tombe sous 1,4 px en dessous |
favicon.svg |
16 px de côté | Format cible d'origine |
Règle de bascule : en dessous de 24 px, on emploie le favicon, pas le symbole filaire. En dessous de 280 px de large, on emploie le verrouillage horizontal, pas le logo principal.
Impression (largeur totale, en millimètres, à 300 ppp) :
| Fichier | Taille minimale | Contrainte qui la fixe |
|---|---|---|
logo-principal.svg |
60 mm | 12 ⁄ 440 × 60 mm = 1,64 mm, plancher accepté pour une ligne en capitales espacées |
logo-vertical.svg |
38 mm | Même calcul sur la ligne descriptive en corps 11,5 |
logo-horizontal.svg |
22 mm | 38 ⁄ 320 × 22 mm ≈ 2,6 mm de hauteur de capitale |
logo-symbole-seul.svg |
7 mm | Trait à 0,48 mm, au-dessus du filet minimal de 0,25 mm |
| Gravure, marquage à chaud, sérigraphie | 10 mm | Trait à 0,69 mm, tolérance des procédés physiques |
#3.7 Inventaire des sept fichiers livrés
| # | Fichier | viewBox | width/height déclarés |
Fond explicite | Usage prescrit | Statut |
|---|---|---|---|---|---|---|
| 1 | logo-principal.svg |
0 0 440 120 |
880 × 240 | #ffffff |
Première page de document, couverture de deck, page d'accueil, signature officielle | 🟢 Livré |
| 2 | logo-horizontal.svg |
0 0 320 80 |
640 × 160 | #ffffff |
Barre de navigation, en-tête de portail, pied de page, courriel | 🟢 Livré |
| 3 | logo-vertical.svg |
0 0 260 200 |
520 × 400 | #ffffff |
Format carré ou portrait : affiche, chevalet, kakémono, carte de partage | 🟢 Livré |
| 4 | logo-symbole-seul.svg |
0 0 64 64 |
256 × 256 | #ffffff |
Avatar, badge, filigrane, pastille d'application, marqueur de diagramme | 🟢 Livré |
| 5 | logo-monochrome-clair.svg |
0 0 320 80 |
640 × 160 | #0b1220 |
Fond sombre, thème sombre, photographie foncée, impression une couleur claire | 🟢 Livré |
| 6 | logo-monochrome-sombre.svg |
0 0 320 80 |
640 × 160 | #ffffff |
Fond clair en une couleur, télécopie, gravure, tampon, document noir et blanc | 🟢 Livré |
| 7 | favicon.svg |
0 0 32 32 |
32 × 32 | #ffffff avec rx = 6 |
Onglet de navigateur, marque-page, icône de raccourci, tuile | 🟢 Livré |
Les sept fichiers portent role="img", un <title> et un <desc>, n'appellent aucune ressource externe, et déclarent leur fond en <rect id="fond">.
#4. Variantes et règles de choix
#4.1 Arbre de décision
| Situation | Fichier à employer |
|---|---|
| Fond clair, place horizontale, besoin de la ligne descriptive | logo-principal.svg |
| Fond clair, place horizontale, sans ligne descriptive | logo-horizontal.svg |
| Fond clair, place carrée ou verticale | logo-vertical.svg |
| Fond sombre ou thème sombre du produit | logo-monochrome-clair.svg |
| Photographie claire et peu chargée | logo-monochrome-sombre.svg |
| Photographie sombre et peu chargée | logo-monochrome-clair.svg |
| Photographie chargée, quel que soit le ton | Plaque unie obligatoire — voir §4.4 |
| Impression une seule couleur | logo-monochrome-sombre.svg ou logo-monochrome-clair.svg selon le support |
| Gravure, embossage, marquage, tampon, broderie | logo-monochrome-sombre.svg, taille ≥ 10 mm |
| Onglet de navigateur, icône système | favicon.svg |
| Avatar carré de réseau social | logo-symbole-seul.svg recadré — voir §4.5 |
| Filigrane de document | logo-symbole-seul.svg à 8 % d'opacité, encre #0e1729 |
#4.2 Version couleur sur fond sombre — état réel
Les trois verrouillages en couleur (logo-principal, logo-horizontal, logo-vertical) contiennent un fond blanc opaque déclaré en dur (<rect id="fond" … fill="#ffffff"/>). Ils ne peuvent donc pas être posés directement sur un fond sombre : le rectangle blanc resterait visible.
Sur fond sombre, on emploie logo-monochrome-clair.svg. Une version couleur adaptée au fond sombre — mot-symbole Ky en #3b8ef0, Spectra en #e8edf6, branches en #3b8ef0 et #9b85ff — est ⚪ Planifiée et consignée au journal des écarts (§16). Tant qu'elle n'existe pas, aucune improvisation en recolorant un fichier existant.
#4.3 Monochrome — règles
| Règle | Détail |
|---|---|
| Encres autorisées | #0e1729 (encre sombre) · #e8edf6 (encre claire) · noir 100 % et blanc 100 % en impression une couleur |
| Mot-symbole | Entièrement dans l'encre unique. Jamais de Ky coloré dans une version monochrome |
| Traits du symbole | Les quatre chemins prennent la même encre |
| Ligne descriptive | Absente des fichiers monochromes livrés. Si elle est requise, elle prend l'encre unique à 70 % d'opacité |
| Nuance de gris | Une seule valeur. Interdiction de composer un monochrome en dégradé de gris |
#4.4 Pose sur photographie
- La photographie doit être calme dans la zone du logo : pas de motif à haute fréquence, pas de visage, pas de texte imprimé.
- Le contraste entre l'encre choisie et la moyenne locale de l'image doit atteindre au moins 4,5:1, mesuré sur la zone effectivement recouverte.
- Si la condition 1 ou 2 n'est pas remplie, on pose une plaque unie :
#ffffffou#0b1220, rayon 12 px, avec une marge intérieure d'au moins une zone de protection complète. - Jamais de voile dégradé, de flou d'arrière-plan localisé, ni d'ombre portée pour « détacher » le logo.
#4.5 Avatar carré
| Contexte | Composition |
|---|---|
| Avatar ≥ 200 px | logo-symbole-seul.svg centré dans un carré #ffffff, marges égales à une zone de protection, coins arrondis 16 px si le support l'exige |
| Avatar 48 → 200 px | Même composition, sans coins arrondis ajoutés — la plateforme applique son propre masque |
| Avatar < 48 px | Construction du favicon : hexagone plein #0f6fde, traits réservés en blanc |
| Avatar sur fond imposé sombre | Hexagone plein #3b8ef0, traits réservés #0b1220 |
Le mot-symbole n'entre jamais dans un avatar carré : il devient illisible et la marque se lit alors mieux par la forme du prisme.
#5. Usages interdits du logo
Ces douze interdits sont opposables. Un support qui en enfreint un ne sort pas.
- Déformer. Aucune homothétie non uniforme : la largeur et la hauteur se modifient toujours du même facteur. Aucun étirement, aucun aplatissement, aucune correction de perspective.
- Recolorer hors palette. Les quatre couleurs du symbole (
#0f6fde,#0a4fa0,#7c5cfc) et les deux du mot-symbole (#0f6fde,#0e1729) sont fixes. Les seules substitutions permises sont les encres monochromes du §4.3. - Ajouter une ombre portée, une lueur, un biseau, un reflet, un dégradé, une texture, un effet de verre ou de métal. Le logo est plat, sans exception.
- Contourner. Aucun contour ajouté autour du symbole ou du mot-symbole pour le « détacher » d'un fond. On emploie une plaque unie (§4.4).
- Incliner ou faire pivoter. Le logo reste horizontal. Aucune rotation, même de quelques degrés, même « pour le dynamisme ».
- Remplacer la police du mot-symbole. Space Grotesk 700 uniquement. Une recomposition dans une autre police n'est pas le logo, c'est du texte.
- Écrire
SPECTRAseul.SPECTRAest un nom de code interne. Il ne paraît jamais en public, ni dans un logo, ni dans une interface, ni dans un document externe. - Ajouter ™, ®, © ou toute mention de dépôt au logo, tant que le propriétaire n'a pas confirmé un enregistrement effectif.
- Poser sur une photographie chargée sans plaque. Voir §4.4 — la condition de contraste local de 4,5:1 n'est pas négociable.
- Recréer l'hexagone à la main. On ne redessine jamais le prisme dans un outil de dessin ni dans un composant d'interface : on importe le chemin exact du §3.1. Une reconstruction approximative introduit des sommets non réguliers et des angles de branche faux.
- Séparer les branches du symbole. Les trois traits internes et le périmètre forment un tout. On n'extrait pas la branche violette comme motif décoratif, on ne supprime pas l'axe, on n'ajoute pas de quatrième trait.
- Traduire le mot-symbole. « KySpectra » est identique en français, en anglais et dans toute autre langue. Seule la ligne descriptive se traduit — « AGENTIC SDD/SDLC PLATFORM » — et uniquement dans une version anglaise dédiée.
- Encadrer le logo dans un cartouche, une pastille, un hexagone secondaire ou une forme d'appui non prévue par cette charte.
- Animer le logo par morphing de la forme hexagonale. Les seules animations tolérées sont une apparition en opacité de 200 ms et un déplacement de position ; le tracé lui-même ne se déforme jamais.
- Employer le logo comme puce, comme séparateur de paragraphe, comme motif répété en trame, ou comme fond d'écran à faible opacité en dehors du filigrane défini au §4.1.
- Combiner le logo avec un autre symbole pour former un signe composite, y compris avec le logo Kyrieva. L'attribution s'écrit en toutes lettres : « KySpectra, par Kyrieva ».
#6. Palette complète
#6.1 Thème clair — valeurs et contrastes
Notation des colonnes de contraste : W = sur #ffffff · P = sur #f7f9fc (fond de page) · T = sur #0e1729 (texte principal). Verdicts : AAA ≥ 7 · AA ≥ 4,5 · AA large ≥ 3 et < 4,5 · insuffisant < 3.
| Rôle | Hex | RGB | CMJN approx. | vs #ffffff |
vs #f7f9fc |
vs #0e1729 |
Verdict sur blanc |
|---|---|---|---|---|---|---|---|
| Primaire Ocean | #0f6fde |
rgb(15,111,222) | 93,50,0,13 | 4,83 | 4,58 | 3,71 | AA |
| Primaire survol | #0c5ebe |
rgb(12,94,190) | 94,51,0,25 | 6,25 | 5,93 | 2,86 | AA |
| Primaire actif | #0a4fa0 |
rgb(10,79,160) | 94,51,0,37 | 7,96 | 7,55 | 2,25 | AAA |
| Fond primaire | #e4effc |
rgb(228,239,252) | 10,5,0,1 | 1,16 | 1,10 | 15,39 | insuffisant — fond seulement |
| Provenance IA | #7c5cfc |
rgb(124,92,252) | 51,63,0,1 | 4,38 | 4,15 | 4,09 | AA large |
| Fond de page | #f7f9fc |
rgb(247,249,252) | 2,1,0,1 | 1,05 | 1,00 | 16,97 | insuffisant — fond seulement |
| Surface | #ffffff |
rgb(255,255,255) | 0,0,0,0 | 1,00 | 1,05 | 17,90 | insuffisant — fond seulement |
| Texte principal | #0e1729 |
rgb(14,23,41) | 66,44,0,84 | 17,90 | 16,97 | 1,00 | AAA |
| Atténué | #edf1f8 |
rgb(237,241,248) | 4,3,0,3 | 1,13 | 1,07 | 15,80 | insuffisant — fond seulement |
| Texte atténué | #4f5b70 |
rgb(79,91,112) | 29,19,0,56 | 6,86 | 6,50 | 2,61 | AA |
| Bordure | #e2e8f2 |
rgb(226,232,242) | 7,4,0,5 | 1,23 | 1,17 | 14,54 | insuffisant — filet seulement |
| Succès | #0e7a50 |
rgb(14,122,80) | 89,0,34,52 | 5,36 | 5,08 | 3,34 | AA |
| Avertissement | #9a6912 |
rgb(154,105,18) | 0,32,88,40 | 4,77 | 4,52 | 3,75 | AA |
| Danger | #c4342f |
rgb(196,52,47) | 0,73,76,23 | 5,41 | 5,13 | 3,31 | AA |
| Info | #0b6bb5 |
rgb(11,107,181) | 94,41,0,29 | 5,55 | 5,26 | 3,23 | AA |
| Série 3 | #1fa971 |
rgb(31,169,113) | 82,0,33,34 | 3,01 | 2,86 | 5,94 | AA large |
| Série 4 | #c98a1f |
rgb(201,138,31) | 0,31,85,21 | 2,94 | 2,79 | 6,08 | insuffisant sur blanc |
| Série 5 | #0e7490 |
rgb(14,116,144) | 90,19,0,44 | 5,36 | 5,08 | 3,34 | AA |
Séries de graphiques 1 → 5 en thème clair : #0f6fde · #7c5cfc · #1fa971 · #c98a1f · #0e7490.
#6.2 Thème sombre — valeurs et contrastes
Notation : F = sur #0b1220 (fond) · S = sur #111a2b (surface) · T = sur #e8edf6 (texte).
| Rôle | Hex | RGB | CMJN approx. | vs F | vs S | vs T | Verdict sur fond |
|---|---|---|---|---|---|---|---|
| Fond | #0b1220 |
rgb(11,18,32) | 66,44,0,87 | 1,00 | 1,08 | 15,94 | fond seulement |
| Surface | #111a2b |
rgb(17,26,43) | 60,40,0,83 | 1,08 | 1,00 | 14,82 | surface seulement |
| Texte | #e8edf6 |
rgb(232,237,246) | 6,4,0,4 | 15,94 | 14,82 | 1,00 | AAA |
| Atténué | #1b2536 |
rgb(27,37,54) | 50,31,0,79 | 1,22 | 1,13 | 13,10 | fond seulement |
| Bordure | #24304a |
rgb(36,48,74) | 51,35,0,71 | 1,42 | 1,32 | 11,20 | filet seulement |
| Anneau de focus | #3b8ef0 |
rgb(59,142,240) | 75,41,0,6 | 5,63 | 5,23 | 2,83 | AA |
| Primaire | #1e6fd6 |
rgb(30,111,214) | 86,48,0,16 | 3,83 | 3,56 | 4,16 | AA large |
| Provenance IA | #9b85ff |
rgb(155,133,255) | 39,48,0,0 | 6,41 | 5,96 | 2,49 | AA |
| Série 3 | #34d399 |
— | — | 9,74 | 9,05 | — | AAA |
| Série 4 | #f0b429 |
— | — | 10,04 | 9,34 | — | AAA |
| Série 5 | #22d3ee |
— | — | 10,36 | 9,63 | — | AAA |
Séries de graphiques 1 → 5 en thème sombre : #3b8ef0 · #9b85ff · #34d399 · #f0b429 · #22d3ee.
#6.3 Paires notables et garde-fous
| Paire | Ratio | Décision |
|---|---|---|
#ffffff sur #0f6fde |
4,83 | AA atteint. Conforme pour un composant ou un texte large. Le petit texte blanc sur Ocean n'atteint pas AA sous 4,5 dans les conditions courantes : n'employer le blanc sur Ocean qu'à partir de 18,66 px, ou 14 px en graisse 700. En dessous, passer le fond à #0c5ebe (6,25) |
#ffffff sur #0c5ebe |
6,25 | Bouton primaire de référence pour tout libellé en corps 14 ou 16 |
#0a4fa0 sur #e4effc |
6,84 | Encadré d'accent, badge d'information, plaque de citation |
#0f6fde sur #0b1220 |
3,88 | Insuffisant en petit texte sur fond sombre. Employer #3b8ef0 (5,63) |
#7c5cfc sur #ffffff |
4,38 | AA large seulement. Réserver aux icônes, filets et libellés ≥ 18,66 px. Pour un texte courant de provenance IA, employer #0e1729 avec un marqueur violet à côté |
#4f5b70 sur #f7f9fc |
6,50 | Texte secondaire de référence en thème clair |
#c98a1f sur #ffffff |
2,94 | Interdit en texte. Usage strictement graphique — remplissage de série, jamais un libellé |
#6.4 Règle stricte du violet
#7c5cfc (thème clair) et #9b85ff (thème sombre) sont réservés à un seul emploi : signaler qu'un contenu, une action ou une donnée provient d'un agent IA.
| Emploi | Autorisé |
|---|---|
| Bordure d'une carte contenant un texte généré par un agent | ✅ Oui |
| Pastille « généré par un agent » à côté d'un artefact | ✅ Oui |
| Icône d'agent dans une liste de collaborateurs | ✅ Oui |
| Trait de liaison, dans un diagramme, vers un nœud agentique | ✅ Oui |
| Branche droite du symbole du logo | ✅ Oui — seule occurrence dans la marque, et elle désigne l'agent |
| Couleur d'un bouton d'action générique | ❌ Non |
| Couleur d'accent d'une page d'accueil | ❌ Non |
| Fond de section décoratif | ❌ Non |
| Dégradé de fond de diapositive | ❌ Non |
| Couleur de série n° 2 d'un graphique dont la série 2 n'est pas une quantité produite par un agent | ❌ Non — décaler l'ordre des séries et sauter le violet |
Cette contrainte a une conséquence directe sur les graphiques : la palette de séries place le violet en position 2, mais cette position n'est utilisable que si la deuxième série représente effectivement une grandeur d'origine agentique. Sinon, l'ordre devient #0f6fde · #1fa971 · #c98a1f · #0e7490, et le violet reste disponible pour une série agentique à n'importe quel rang.
#7. Couleurs de statut du dossier
| Statut | Couleur | Pastille | Sens | Emploi en texte |
|---|---|---|---|---|
| Livré | #0e7a50 |
🟢 | La capacité existe, est déployée et a été vérifiée | Autorisé — AA sur blanc à 5,36 |
| En cours | #9a6912 |
🟡 | Le travail est engagé, la capacité n'est pas complète | Autorisé — AA sur blanc à 4,77 |
| Planifié | #4f5b70 |
⚪ | Décidé mais non commencé. Ne jamais présenter comme disponible | Autorisé — AA sur blanc à 6,86 |
| Bloqué | #c4342f |
🔴 | Une dépendance externe empêche l'avancement | Autorisé — AA sur blanc à 5,41 |
Règles d'emploi :
- La pastille émoji est obligatoire dans les documents Markdown du dossier — elle porte l'information pour qui ne perçoit pas la teinte.
- Le mot du statut est toujours écrit. La couleur ne porte jamais l'information seule (§13.4).
- Ces quatre couleurs ne servent pas de palette décorative : elles n'apparaissent que là où un statut est réellement communiqué.
- Dans une interface produit, la pastille émoji est remplacée par un pictogramme filaire du jeu d'icônes (§9) — aucun emoji dans une interface produit.
#8. Typographie
#8.1 Les deux familles
| Usage | Police | Graisses | Repli déclaré |
|---|---|---|---|
| Titres et interface | Space Grotesk (variable) | 300 → 700 | ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif |
| Code, identifiants, endpoints, valeurs hexadécimales | JetBrains Mono | 100 → 800 | ui-monospace, SFMono-Regular, Menlo, Consolas, monospace |
Dans les fichiers SVG, la déclaration est exactement :
font-family="Space Grotesk, ui-sans-serif, system-ui, sans-serif"
Aucune police chargée depuis un CDN, dans aucun SVG, dans aucun document, dans aucun gabarit. Les SVG doivent rester autonomes (§14). Une police absente doit se replier proprement, pas casser le rendu.
#8.2 Échelle typographique
Toutes les valeurs d'interligne sont des multiples de 4 px, pour rester sur le rythme vertical (§11.3).
| Corps | Interligne | Rapport | Graisse usuelle | Usage |
|---|---|---|---|---|
| 12 px | 16 px | 1,33 | 500 | Légende, étiquette, note de bas de tableau, horodatage, mention légale |
| 14 px | 20 px | 1,43 | 400 / 500 | Texte secondaire, libellé de formulaire, cellule de tableau dense, aide contextuelle |
| 16 px | 24 px | 1,50 | 400 | Corps de référence. Paragraphes, descriptions, contenu principal |
| 18 px | 28 px | 1,56 | 400 | Chapeau d'article, paragraphe d'introduction, citation |
| 20 px | 28 px | 1,40 | 600 | Titre de carte, sous-titre de section, H4 |
| 24 px | 32 px | 1,33 | 600 | H3, titre de panneau, valeur d'indicateur secondaire |
| 28 px | 36 px | 1,29 | 700 | H2, titre de section de page |
| 32 px | 40 px | 1,25 | 700 | H1, titre de page, valeur d'indicateur principal |
Au-delà de 32 px — affiches, diapositives de titre, bannières — l'échelle se prolonge par facteur 1,25 (40, 48, 60, 76 px), avec interligne resserré à 1,15 et interlettrage négatif de −0,5 à −1,5 %.
#8.3 Graisses autorisées
| Graisse | Statut | Emploi |
|---|---|---|
| 300 Light | Rare | Uniquement en corps ≥ 32 px, sur fond clair, pour une accroche. Jamais en corps courant, jamais en thème sombre |
| 400 Regular | Standard | Tout le texte courant |
| 500 Medium | Standard | Libellés, étiquettes, ligne descriptive du logo, en-têtes de colonne |
| 600 Semibold | Standard | Sous-titres, titres de carte, H3 et H4 |
| 700 Bold | Standard | H1, H2, mot-symbole, valeur d'indicateur mise en avant |
Les graisses 100, 200, 800 et 900 ne sont pas employées. L'italique n'est employé que pour une citation ou un titre d'ouvrage — jamais pour souligner une idée, ce que fait la graisse 600.
#8.4 Interlettrage et chasse
| Contexte | Interlettrage |
|---|---|
| Corps 12 à 18 px | 0 |
| Titres 20 à 32 px | −0,2 % à −0,5 % |
| Titres au-delà de 32 px | −0,5 % à −1,5 % |
| Mot-symbole corps 38 et 40 | −0,4 unité |
| Mot-symbole corps 44 | −0,5 unité |
| Ligne descriptive du logo, corps 12 | +1,7 unité |
| Ligne descriptive du logo, corps 11,5 | +1,6 unité |
| Petites capitales d'étiquette, corps 12 | +0,08 em |
#8.5 Monospace — quand et comment
JetBrains Mono s'emploie pour ce qui doit se lire caractère par caractère :
| Contenu | Exemple |
|---|---|
| Chemin de fichier | frontend/client-portal/src/app/ |
| Nom de service | agentic-core-service |
| Point d'accès d'API | /api/v1/specifications |
| Code de statut HTTP | 501, 404 |
| Identifiant technique | policy_id="deny-by-default" |
| Valeur de couleur | #0f6fde |
| Nom de variable d'environnement | DEPLOY_LIVE |
| Extrait de code, bloc de commande | Bloc clôturé |
Le monospace ne s'emploie jamais pour mettre un mot en valeur dans une phrase courante, ni pour un nom de produit, ni pour un nom de personne, ni pour un titre.
#8.6 Règles de casse
- Aucune composition en tout-capitales au-delà d'une ligne, et uniquement pour une ligne descriptive, une étiquette de catégorie ou un en-tête de colonne. Un paragraphe en capitales est interdit.
- Les titres sont en casse de phrase : première lettre en capitale, le reste en bas de casse. Pas de capitale à chaque mot.
- KySpectra conserve sa capitale interne dans toutes les positions, y compris en début de phrase et dans un titre en capitales — où l'on écrit alors le mot en dehors de la capitalisation générale.
- Les acronymes conservent leurs capitales : SDD, SDLC, RBAC, EARS, PRD, BPMN, TOGAF, QA.
- Les noms de rôles s'écrivent en bas de casse dans le texte courant : « propriétaire », « éditeur », « publicateur », « administrateur », « lecteur ».
- Une ligne en capitales porte toujours un interlettrage positif d'au moins +1,5 unité, faute de quoi elle devient illisible.
#9. Iconographie
#9.1 Contrat de dessin
| Paramètre | Valeur |
|---|---|
| Grille | 24 × 24 unités |
| Zone utile | 20 × 20, soit 2 unités de marge de tous côtés |
| Épaisseur de trait | 1,5 à 2 px — 1,5 par défaut, 2 pour une icône ≥ 32 px |
| Rayon d'angle | 2 px |
| Extrémités | stroke-linecap="round", stroke-linejoin="round" |
| Remplissage | fill="none" — jeu filaire uniquement |
| Couleur par défaut | currentColor, pour hériter du contexte |
#9.2 Règles d'emploi
- Jamais un pictogramme rempli à côté d'un pictogramme filaire. Un même écran, un même document, une même barre d'outils emploient un seul style. Le mélange fait passer l'un pour un état sélectionné de l'autre.
- Aucun emoji dans une interface produit. Les emojis sont réservés aux documents Markdown internes du dossier de lancement, où ils portent les pastilles de statut. Dans le produit, on emploie un pictogramme et un libellé.
- Une icône n'est jamais seule pour porter une action destructrice ou irréversible : elle est accompagnée d'un libellé visible ou, à défaut, d'un texte accessible.
- Pas d'icône décorative. Une icône qui n'apporte pas d'information est retirée. Si elle reste pour l'équilibre visuel, elle est marquée
aria-hidden="true". - Couleur. Une icône prend la couleur du texte qu'elle accompagne. Les seules exceptions sont les couleurs de statut (§7) et le violet de provenance IA (§6.4).
- Taille. 16, 20, 24 et 32 px. Une icône dessinée sur la grille 24 rendue à 16 px voit son trait passer à 1 px : dans ce cas, on emploie une variante simplifiée, pas une réduction brute.
- Cohérence de métaphore. Un même concept garde le même pictogramme dans tout le produit et dans toute la documentation : une exigence, un agent, un déploiement, un journal d'audit ont chacun un signe unique.
- Pas de pictogramme de marque tierce dans le jeu d'icônes du produit, sauf dans une page d'intégrations où le logo du tiers est employé selon sa propre charte.
#9.3 Le symbole comme pictogramme
Le prisme peut servir de marqueur « KySpectra » dans un diagramme ou une liste de systèmes. Dans ce cas :
- il est rendu à 20 ou 24 px, jamais moins ;
- il conserve ses quatre couleurs, ou passe en
currentColorintégral ; - il n'est pas redessiné sur la grille 24 : on emploie
logo-symbole-seul.svgavec son fond rendu transparent par retrait du<rect id="fond">.
#10. Style de diagramme
#10.1 Contrat Mermaid — §13.4 du brief
| Règle | Détail |
|---|---|
| Bloc | Clôturé par ```mermaid |
| Identifiants de nœuds | Sans accent, sans espace, sans tiret — Spec, AgentIA, JournalAudit |
| Libellés | Toujours entre guillemets dans des crochets : A["Spécification exécutable"] |
| Flèches | -->, -.->, ==> uniquement. Aucune autre syntaxe de lien |
| Parenthèses | Jamais nues dans un libellé — les guillemets les protègent |
| Sous-graphes | subgraph "Titre" toujours clos par end |
| Direction | LR par défaut pour une chaîne, TB pour une hiérarchie |
#10.2 Sémantique des trois flèches
| Flèche | Sens imposé | Exemple |
|---|---|---|
--> |
Flux nominal, relation directe | Une exigence produit une tâche |
-.-> |
Flux d'observation, de journalisation, de preuve | Une action alimente le journal d'audit |
==> |
Chemin critique, transition gouvernée, franchissement d'une porte | Une revue approuvée déclenche un déploiement |
#10.3 Couleurs de séries dans un diagramme
| Rang | Thème clair | Thème sombre | Emploi type |
|---|---|---|---|
| 1 | #0f6fde |
#3b8ef0 |
Chemin humain, chaîne principale |
| 2 | #7c5cfc |
#9b85ff |
Uniquement un nœud ou un lien agentique |
| 3 | #1fa971 |
#34d399 |
Vérification, test, contrôle qualité |
| 4 | #c98a1f |
#f0b429 |
Attente, revue, point de décision |
| 5 | #0e7490 |
#22d3ee |
Données, stockage, journal |
#10.4 Règle « un diagramme = une idée »
Un diagramme porte une seule affirmation, énoncée dans la phrase qui le précède. S'il en porte deux, on en fait deux diagrammes. Seuils opposables :
| Contrainte | Seuil |
|---|---|
| Nœuds | ≤ 12 |
| Niveaux de profondeur | ≤ 4 |
| Sous-graphes | ≤ 3 |
| Croisements de liens | 0 — si un croisement est inévitable, le diagramme est trop dense |
| Longueur d'un libellé | ≤ 40 caractères |
#10.5 Exemple conforme
Aucun diagramme à afficher
Diagramme 1 — flowchart
Lecture du choix des couleurs : le seul nœud violet est l'agent, conformément au §6.4. Le journal d'audit est atteint par des flèches d'observation -.->, jamais par un flux nominal.
#11. Mise en page
#11.1 Grille
| Paramètre | Valeur |
|---|---|
| Colonnes | 12 |
| Gouttière | 24 px |
| Marge extérieure — bureau | 48 px |
| Marge extérieure — tablette | 32 px |
| Marge extérieure — mobile | 16 px |
| Largeur maximale de contenu | 1 280 px |
| Largeur maximale d'un bloc de lecture | 720 px |
Points de rupture : 640 px (mobile large), 768 px (tablette), 1 024 px (bureau), 1 280 px (bureau large), 1 536 px (grand écran).
#11.2 Largeur de ligne
Le texte courant se compose entre 60 et 75 caractères par ligne. À 16 px en Space Grotesk, cela place la colonne de lecture entre 560 et 720 px. En dessous de 45 caractères, la lecture saccade ; au-delà de 85, l'œil perd la ligne suivante.
| Type de bloc | Caractères par ligne | Largeur indicative à 16 px |
|---|---|---|
| Paragraphe courant | 60 → 75 | 560 → 720 px |
| Chapeau en 18 px | 55 → 70 | 600 → 760 px |
| Légende en 12 px | 40 → 60 | 300 → 440 px |
| Cellule de tableau | Libre, mais césure interdite sur un identifiant technique | — |
| Bloc de code | 100 colonnes maximum, défilement horizontal au-delà | — |
#11.3 Rythme vertical
| Paramètre | Valeur |
|---|---|
| Espacement de base | 4 px |
| Échelle d'espacement | 4, 8, 12, 16, 24, 32, 48, 64, 96 px |
| Rayons | 4 / 8 / 12 / 16 / 24 / 9999 px |
| Élévations | 0 → 4 — 0 aucun, 1 carte au repos, 2 carte survolée, 3 menu flottant, 4 boîte de dialogue |
| Durées d'animation | 80 / 120 / 200 / 320 / 480 ms |
Correspondance des durées : 80 ms pour un changement d'état instantané (survol), 120 ms pour un basculement, 200 ms pour une apparition de panneau, 320 ms pour une transition de page, 480 ms uniquement pour une séquence pédagogique explicite.
Règle anti-défaut de défilement, reprise du référentiel de projet : overflow-hidden sur le conteneur parent, min-h-0 sur les enfants flexibles, shrink-0 sur les en-têtes et pieds fixes. Cette règle est structurelle et s'applique à toute mise en page à hauteur contrainte.
#11.4 Hiérarchie d'une page
- Un seul H1 par page, en 32 px graisse 700.
- Un chapeau de 18 px sous le H1, limité à trois lignes.
- Les H2 sont précédés de 48 px d'espace et suivis de 16 px.
- Un tableau vaut mieux qu'une liste à puces ; une liste à puces vaut mieux qu'un paragraphe.
- Aucune cellule de tableau vide — on écrit
—.
#12. Application aux supports
#12.1 Écran — portails
| Surface | Logo | Position | Taille |
|---|---|---|---|
| Portail client, barre supérieure | logo-horizontal.svg |
Gauche, aligné sur la marge | 132 px de large |
| Portail client, thème sombre | logo-monochrome-clair.svg |
Idem | 132 px de large |
| Portail d'administration, barre supérieure | logo-horizontal.svg |
Gauche | 132 px de large |
| Portail de documentation 🟡 En cours | logo-horizontal.svg |
Gauche | 140 px de large |
| Écran de connexion | logo-principal.svg |
Centré au-dessus du formulaire | 320 px de large |
| Onglet de navigateur | favicon.svg |
— | 16 → 32 px |
| État vide, écran d'erreur | logo-symbole-seul.svg |
Centré, opacité 40 % | 64 px |
| Widget de collecte de retours | logo-symbole-seul.svg |
Coin, en-tête du panneau | 20 px |
Écart connu à corriger avant le jour J : l'interface affiche encore common.appName = "SPECTRA" — voir §16.
#12.2 Réseaux sociaux
Statut du dossier 08-assets/social/ : 🟢 Livré — six fichiers SVG autonomes au 2026-08-17. Tous sont bâtis sur le fond sombre #0b1220, avec le symbole en #3b8ef0, l'axe en #ffffff et la branche d'agent en #9b85ff.
| Fichier | Dimensions | Composition livrée | Statut |
|---|---|---|---|
avatar.svg |
400 × 400 px | Symbole centré, échelle 3,575 sur la grille 64 ; deux anneaux de sécurité matérialisent le recadrage circulaire | 🟢 Livré |
banniere-linkedin.svg |
1 128 × 191 px | Tiers gauche laissé libre pour la photo de profil ; marque et slogan principal à droite de x = 300 |
🟢 Livré |
banniere-og.svg |
1 200 × 630 px | Carte de partage : marque, slogan sur deux lignes en 60 px, explicatif, chaîne en six maillons | 🟢 Livré |
post-carre.svg |
1 080 × 1 080 px | Slogan sur quatre lignes en 66 px + les six maillons avec pastille de statut #34d399 |
🟢 Livré |
story.svg |
1 080 × 1 920 px | Marges de 250 px libres en tête et en pied, matérialisées ; slogan en 76 px, manifeste abrégé, quatre preuves | 🟢 Livré |
banniere-youtube.svg |
2 560 × 1 440 px | Zone sûre 1 546 × 423 matérialisée en tirets à x = 507, y = 508,5 ; aucun texte utile hors du cadre |
🟢 Livré |
| Vignette vidéo | 1 280 × 720 px | Logo horizontal en coin bas droit, ≥ 180 px de large | ⚪ Planifié |
| Carte technique | 1 600 × 900 px | Fond #0b1220, logo-monochrome-clair.svg |
⚪ Planifié |
Règles communes : jamais de logo posé sur une photographie chargée sans plaque ; jamais de texte dans les 64 px de bord ; le slogan principal — « De l'intention au logiciel en production, gouverné. » — est toujours suivi de son explicatif quand la place le permet.
#12.3 Imprimé
Statut du dossier 08-assets/print/ : 🟢 Livré — cinq fichiers SVG autonomes au 2026-08-17. Chaque fichier est dimensionné en millimètres (width="…mm", viewBox à l'échelle 1 unité = 1 mm), fond perdu de 3 mm compris, trait de coupe en tirets et repères d'angle dans la zone perdue.
Contraintes techniques communes à tout imprimé :
| Paramètre | Valeur |
|---|---|
| Fonds perdus | 3 mm sur chaque bord |
| Zone de sécurité intérieure | 5 mm |
| Espace colorimétrique | CMJN — valeurs approximatives du §6.1 |
| Résolution des images matricielles | 300 ppp |
| Logo | Toujours vectoriel, jamais rastérisé |
| Traits d'onglet et repères | Présents sur le fichier d'impression, absents du fichier d'écran |
| Filet le plus fin | 0,25 mm |
| Noir de texte | Noir 100 %, jamais un noir quadri à quatre encres |
| Fichier livré | Format fini | Fichier avec fond perdu | Statut |
|---|---|---|---|
flyer-recto.svg |
A5, 148 × 210 mm | 154 × 216 mm — fond #0b1220, slogan en 13,5 mm, trois preuves |
🟢 Livré |
flyer-verso.svg |
A5, 148 × 210 mm | 154 × 216 mm — fond #ffffff, six maillons, sept différenciateurs, paliers [Hypothèse], code QR réel 26 mm |
🟢 Livré |
affiche-a3.svg |
A3, 297 × 420 mm | 303 × 426 mm — fond #0b1220, extrait du manifeste, code QR réel 43 mm |
🟢 Livré |
carte-invitation-recto.svg |
A6 paysage, 148 × 105 mm | 154 × 111 mm — fond #0b1220, invitation et date du jour J |
🟢 Livré |
carte-invitation-verso.svg |
A6 paysage, 148 × 105 mm | 154 × 111 mm — fond #ffffff, déroulé, informations pratiques, code QR réel 30 mm |
🟢 Livré |
Les tracés du code QR sont recopiés dans chaque fichier, jamais référencés : aucun de ces SVG ne dépend d'une ressource externe.
| Support restant à produire | Format fini | Logo prescrit | Statut |
|---|---|---|---|
| Carte d'affaires | 89 × 51 mm | logo-horizontal.svg, 32 mm de large |
⚪ Planifié |
| Feuille à en-tête | Lettre, 216 × 279 mm | logo-principal.svg, 62 mm de large |
⚪ Planifié |
| Chevalet de table | 100 × 150 mm | logo-vertical.svg, 45 mm de large |
⚪ Planifié |
| Affiche de salon | 594 × 841 mm (A1) | logo-principal.svg, 220 mm de large |
⚪ Planifié |
| Kakémono | 850 × 2 000 mm | logo-vertical.svg, 300 mm de large |
⚪ Planifié |
| Fiche produit recto verso | A4 | logo-horizontal.svg, 45 mm |
⚪ Planifié |
Le code QR livré, 08-assets/qr-kyspectradoc.svg, pointe vers la documentation publique. Il ne s'imprime jamais sous 20 × 20 mm, conserve une marge blanche d'au moins 4 modules et n'accueille aucun logo en son centre.
#12.4 Signature de courriel
| Ligne | Contenu | Composition |
|---|---|---|
| 1 | logo-horizontal.svg |
132 px de large, lien vers le portail client |
| 2 | Prénom Nom | 15 px, graisse 600, #0e1729 |
| 3 | Fonction | 13 px, graisse 400, #4f5b70 |
| 4 | KySpectra — plateforme agentique SDD/SDLC · par Kyrieva | 13 px, #4f5b70, le mot-symbole en graisse 600 |
| 5 | Adresse de courriel · téléphone | 13 px, #4f5b70, liens en #0c5ebe |
| 6 | Filet de séparation | 1 px, #e2e8f2, largeur 320 px |
| 7 | Slogan principal | 12 px, italique, #4f5b70 |
Contraintes : aucune image de fond, aucune police distante, largeur totale ≤ 480 px, texte alternatif du logo = KySpectra, aucun suivi de lecture, aucune mention de confidentialité automatique en majuscules sur plus d'une ligne.
#12.5 Présentation
| Élément | Règle |
|---|---|
| Diapositive de titre | logo-vertical.svg centré, fond #ffffff ou #0b1220, titre en 60 px |
| Diapositives courantes | logo-symbole-seul.svg en pied à droite, 24 px, opacité 60 % |
| Fond | Uni. #ffffff, #f7f9fc ou #0b1220. Aucun dégradé, aucune photographie en fond plein |
| Corps de texte minimal | 20 px à l'écran de projection |
| Nombre de puces par diapositive | ≤ 5 |
| Diapositive de section | Fond #0a4fa0, texte #ffffff en 44 px |
| Notes d'orateur | Obligatoires sur chaque diapositive du deck de lancement |
#13. Accessibilité
#13.1 Niveau visé
WCAG 2.1 niveau AA au minimum, sur toutes les surfaces. Les combinaisons du §6 sont fournies avec leurs ratios calculés précisément pour rendre ce contrôle mécanique. Toute combinaison non listée doit être calculée avant emploi, pas estimée à l'œil.
| Contenu | Seuil |
|---|---|
| Texte courant (< 18,66 px, ou < 14 px en graisse 700) | 4,5:1 |
| Texte large (≥ 18,66 px, ou ≥ 14 px en graisse 700) | 3:1 |
| Composant d'interface, bordure d'état, icône porteuse de sens | 3:1 |
| Élément purement décoratif | Aucun seuil, mais aucune information ne doit y résider |
#13.2 Cibles de pointage
Toute cible interactive mesure au moins 44 × 44 px, y compris quand le dessin visible est plus petit — la zone active est alors étendue par un remplissage transparent. Deux cibles adjacentes sont séparées d'au moins 8 px.
#13.3 Anneau de focus
| Paramètre | Thème clair | Thème sombre |
|---|---|---|
| Couleur | #0f6fde |
#3b8ef0 |
| Épaisseur | 2 px | 2 px |
| Décalage | 2 px | 2 px |
| Style | Trait plein, suivant le rayon de l'élément | Idem |
L'anneau de focus n'est jamais supprimé, ni remplacé par un simple changement de couleur de fond. Il reste visible sur tout fond, y compris à l'intérieur d'un bouton primaire — dans ce cas, un liseré intérieur de 1 px en #ffffff sépare l'anneau du bouton.
#13.4 Jamais la couleur seule
Une information n'est jamais portée par la seule teinte. Chaque signal combine au moins deux canaux parmi : couleur, forme, pictogramme, libellé, position, motif.
| Signal | Couleur | Second canal obligatoire |
|---|---|---|
| Statut Livré | #0e7a50 |
Pastille 🟢 et le mot « Livré » |
| Statut En cours | #9a6912 |
Pastille 🟡 et le mot « En cours » |
| Statut Planifié | #4f5b70 |
Pastille ⚪ et le mot « Planifié » |
| Statut Bloqué | #c4342f |
Pastille 🔴 et le mot « Bloqué » |
| Provenance IA | #7c5cfc |
Pictogramme d'agent et le libellé « généré par un agent » |
| Erreur de formulaire | #c4342f |
Pictogramme et message textuel sous le champ |
| Série de graphique | Couleur de série | Libellé direct sur la série, ou motif de remplissage distinct |
| Lien dans un paragraphe | #0c5ebe |
Soulignement |
#13.5 Daltonisme
| Type | Effet sur notre palette | Mesure prise |
|---|---|---|
| Protanopie (rouge affaibli) | #c4342f s'assombrit fortement et se rapproche du brun ; il se distingue mal de #9a6912 |
Pastille et libellé obligatoires ; le danger emploie de surcroît un pictogramme distinct |
| Deutéranopie (vert affaibli) | #0e7a50 et #9a6912 se rapprochent ; #1fa971 perd sa saturation |
Les séries 3 et 4 ne sont jamais adjacentes sans libellé direct |
| Tritanopie (bleu affaibli) | #0f6fde et #7c5cfc convergent — c'est le cas critique de notre système |
Voir ci-dessous |
Le cas Ocean / violet. La paire #0f6fde / #7c5cfc est la plus chargée de sens du système : elle oppose l'humain et l'agent. Sous tritanopie, ces deux teintes deviennent difficiles à séparer. La distinction ne repose donc jamais sur la teinte. Elle repose sur :
- la forme — un nœud agentique porte un contour, un nœud humain porte un fond plein ;
- le libellé — le mot « agent » est écrit, toujours ;
- le pictogramme — un signe d'agent distinct accompagne systématiquement le violet ;
- la position — dans le logo, la branche agentique est toujours à droite.
Ce raisonnement vaut aussi pour le symbole : à quatre couleurs comme en monochrome, la lecture du prisme reste identique, parce que l'information est dans la géométrie, pas dans la teinte.
#13.6 Texte alternatif des SVG
Chaque SVG livré porte obligatoirement les trois éléments suivants :
| Élément | Rôle | Exemple livré |
|---|---|---|
role="img" |
Déclare le graphique comme image auprès des technologies d'assistance | role="img" |
<title> |
Nom court, lu en premier | KySpectra — symbole (le prisme) |
<desc> |
Description longue du contenu et de son sens | Hexagone régulier pointe en haut, axe vertical et deux branches divergentes. |
Un aria-label complète le dispositif sur les sept fichiers livrés. Un SVG purement décoratif, à l'inverse, porte aria-hidden="true" et aucun <title>.
#13.7 Mouvement
Toute animation respecte prefers-reduced-motion: reduce : les transitions de position et d'échelle sont supprimées, seules subsistent les transitions d'opacité, ramenées à 80 ms. Aucun contenu ne clignote plus de trois fois par seconde.
#14. Contrat SVG autonome
#14.1 Les huit exigences
| # | Exigence | Vérification |
|---|---|---|
| 1 | viewBox obligatoire sur l'élément racine |
viewBox="0 0 …" présent |
| 2 | Aucune ressource externe — pas de @import, <image href>, url(http…), @font-face, <script> |
Recherche textuelle négative |
| 3 | Texte en <text> réel, jamais vectorisé en chemins |
Le texte est sélectionnable et indexable |
| 4 | Fond explicite déclaré en <rect id="fond"> |
Le fichier ne dépend pas du fond de la page hôte |
| 5 | Couleurs de la palette du §6 uniquement | Comparaison des valeurs hexadécimales |
| 6 | Lisible en clair et en sombre — soit par un fond explicite, soit par une variante dédiée | Contrôle visuel sur les deux thèmes |
| 7 | Accessibilité — role="img", <title>, <desc> |
Présents dans les sept fichiers |
| 8 | XML valide et bien formé | Commande du §14.2 |
#14.2 Commandes de validation
Validation XML de tous les fichiers de logo, avec xmllint :
xmllint --noout Strategielancement/08-assets/logos/*.svg && echo "XML valide"
Équivalent PowerShell, sans dépendance externe :
Get-ChildItem Strategielancement\08-assets\logos\*.svg | ForEach-Object {
try { [xml](Get-Content $_.FullName -Raw) | Out-Null; "OK $($_.Name)" }
catch { "ECHEC $($_.Name) : $($_.Exception.Message)" }
}
Contrôle d'absence de ressource externe :
rg -n "@import|@font-face|<script|<image|url\(http|xlink:href" Strategielancement/08-assets/logos/
Une sortie vide vaut succès. Contrôle de présence des attributs d'accessibilité :
rg -c "role=\"img\"|<title>|<desc>" Strategielancement/08-assets/logos/*.svg
Chaque fichier doit rapporter au moins 3.
#14.3 Ce qui est interdit dans un SVG livré
- Une police appelée depuis un CDN ou un fichier local externe.
- Un
<script>, un<foreignObject>, un<iframe>. - Une image matricielle intégrée en base64 — sauf photographie explicitement voulue, ce qui n'arrive dans aucun fichier de marque.
- Un filtre coûteux :
feGaussianBlur,feDropShadow,filter: blur(). - Un identifiant générique susceptible de collision quand plusieurs SVG cohabitent dans une même page (
#a,#g1,#clip0). Nos identifiants sont explicites :fond. - Une valeur de couleur hors palette, y compris dans un commentaire.
- Un
width/heightsansviewBox— le fichier deviendrait non redimensionnable. - Des métadonnées d'éditeur laissées par un outil de dessin.
#15. Do / Don't
| # | ✅ Faire | ❌ Ne pas faire |
|---|---|---|
| 1 | Écrire KySpectra | Écrire KYSPECTRA, Kyspectra, Ky Spectra ou SPECTRA |
| 2 | Importer le chemin exact M32 6 L54.52 19 … |
Retracer l'hexagone à la main dans un outil de dessin |
| 3 | Redimensionner le logo de façon uniforme | Étirer la largeur pour remplir un bandeau |
| 4 | Laisser 6,5 x de vide autour du logo | Coller un texte ou un filet contre le symbole |
| 5 | Employer logo-monochrome-clair.svg sur fond sombre |
Recolorer à la main un verrouillage couleur pour le fond sombre |
| 6 | Basculer sur le favicon en dessous de 24 px | Réduire le symbole filaire à 12 px |
| 7 | Réserver #7c5cfc à ce qui vient d'un agent |
Employer le violet comme couleur d'accent générale |
| 8 | Poser du blanc sur #0c5ebe pour un libellé de bouton en 14 px |
Poser du blanc sur #0f6fde pour un libellé de 12 px |
| 9 | Employer #3b8ef0 pour un petit texte bleu sur fond sombre |
Employer #0f6fde sur #0b1220 en petit texte — 3,88 est insuffisant |
| 10 | Composer le corps en 16 px avec interligne 24 px | Composer le corps en 15 px avec interligne 1,2 |
| 11 | Écrire une ligne descriptive en capitales avec +1,7 d'interlettrage | Composer un paragraphe entier en capitales |
| 12 | Employer JetBrains Mono pour /api/v1/specifications |
Employer JetBrains Mono pour mettre un mot en valeur |
| 13 | Mêler uniquement des pictogrammes filaires | Placer une icône pleine à côté d'une icône filaire |
| 14 | Employer un pictogramme et un libellé dans le produit | Employer un emoji dans une interface produit |
| 15 | Écrire le mot du statut à côté de la pastille | Signaler un statut par la seule couleur |
| 16 | Limiter un diagramme à 12 nœuds et une idée | Empiler trois idées dans un seul schéma |
| 17 | Employer -.-> pour un lien vers le journal d'audit |
Employer une flèche épaisse pour un simple flux d'observation |
| 18 | Écrire un identifiant Mermaid sans accent | Écrire Spécification comme identifiant de nœud |
| 19 | Mettre — dans une cellule de tableau sans valeur |
Laisser une cellule de tableau vide |
| 20 | Marquer une capacité non livrée ⚪ Planifié | Présenter une capacité planifiée comme disponible |
| 21 | Écrire [Gabarit : chiffre à sourcer] |
Écrire TODO, XXX ou Lorem ipsum |
| 22 | Garder un anneau de focus de 2 px décalé de 2 px | Supprimer l'anneau de focus pour l'esthétique |
| 23 | Étendre une cible tactile à 44 × 44 px | Livrer un bouton de 28 px de haut |
| 24 | Déclarer un fond explicite dans chaque SVG | Laisser un SVG hériter du fond de la page hôte |
| 25 | Vouvoyer dans tout document public | Tutoyer hors script vidéo court explicitement marqué |
| 26 | Écrire « espace de travail », « locataire », « plan de contrôle » | Écrire « workspace », « tenant », « control plane » |
#16. Journal des écarts connus et actions de pré-lancement
#16.1 Écarts ouverts
| # | Écart constaté | Impact | Action | Échéance | Statut |
|---|---|---|---|---|---|
| E1 | L'interface affiche encore common.appName = "SPECTRA" |
Le nom de code interne est visible publiquement — interdit absolu n° 1 du brief | Remplacer par KySpectra dans les messages FR et EN des deux portails, puis vérifier en navigateur réel sur les trois environnements |
Avant le gel de code du 2026-11-08 | 🔴 Bloqué tant que la correction n'est pas déployée |
| E2 | Le dépôt ne contenait aucun fichier logo avant cette livraison ; le logo était dessiné en ligne dans frontend/client-portal/src/components/icons.tsx |
Deux sources de vérité géométriques divergentes | Aligner le composant d'icône sur le chemin exact du §3.1, ou lui faire importer logo-symbole-seul.svg |
Avant le gel de code | 🟡 En cours — les sept fichiers de référence sont livrés, le code reste à aligner |
| E3 | La zone kkyspectra.com (double « k ») est référencée dans les manifestes de production, alors que kyspectra.com (simple « k ») n'apparaît nulle part dans le dépôt |
kyspectradoc.kyrieva.com pourrait ne pointer nulle part le jour J |
Décision du propriétaire requise : confirmer la détention de la zone, ou trancher pour kkyspectra.com. Repli garanti : kyspectra-docs-portal.pages.dev |
Avant la phase 2 du 2026-10-05 | 🔴 Bloqué — décision hors de portée de l'équipe de production |
| E4 | Aucune variante couleur sur fond sombre des trois verrouillages n'existe : leur <rect id="fond"> est un blanc opaque |
Le thème sombre du produit n'a que la version monochrome | Produire logo-horizontal-sombre.svg et logo-principal-sombre.svg selon la spécification du §4.2 |
Avant la phase 2 | ⚪ Planifié |
| E5 | Les <desc> des sept fichiers de logo étaient rédigés sans accents |
Incohérence avec le principe « français d'abord » ; lecture dégradée par synthèse vocale | Les sept <desc> ont été réécrits en français accentué, sans aucune modification de géométrie |
Fait le 2026-08-17 | 🟢 Livré |
| E6 | La ligne descriptive diffère entre logo-principal.svg (corps 12, interlettrage 1,7) et logo-vertical.svg (corps 11,5, interlettrage 1,6) |
Écart optique assumé, mais non documenté jusqu'ici | Décision : conserver l'écart — il compense la largeur de canevas plus faible du format vertical. Documenté au §3.4 | Fait | 🟢 Livré |
| E7 | Les dossiers 08-assets/social/, 08-assets/print/ et 08-assets/canevas/ étaient vides au moment de la première rédaction |
Aucun gabarit exportable pour les équipes | Produits depuis : 6 fichiers dans social/, 5 dans print/, 12 canevas de proposition de valeur + leur guide de lecture dans canevas/ |
Fait le 2026-08-17 | 🟢 Livré |
| E8 | Aucune police n'est embarquée dans le dépôt : Space Grotesk et JetBrains Mono dépendent de l'environnement de rendu | Les SVG se replient sur ui-sans-serif chez qui n'a pas la police |
Décision : assumer le repli, conformément à l'interdiction de charger une police distante. Vérifier que chaque verrouillage reste acceptable en police de repli | Avant la phase 1 | 🟡 En cours |
| E9 | Aucun enregistrement de marque n'est confirmé | Impossible d'employer ™ ou ® — interdit n° 8 du §5 | Vérification juridique par le propriétaire | Avant le jour J | ⚪ Planifié |
| E10 | Le catalogue de plans commerciaux contient trois jeux de données de démarrage incompatibles | Sans effet sur la charte graphique, mais bloquant pour tout support commercial chiffré | Nettoyage du catalogue — suivi hors de ce document | Avant la phase 1 | 🔴 Bloqué |
#16.2 Ordre d'exécution recommandé
- E1 puis E2 — ils touchent le produit en ligne et sont visibles de tout visiteur.
- E3 — c'est une décision, pas une tâche ; plus elle tarde, plus elle contamine les supports imprimés qui portent une adresse.
- E5 et E8 — corrections de fichiers, sans dépendance.
- E4 puis E7 — production d'actifs, une fois la géométrie stabilisée.
- E9 et E10 — dépendent d'acteurs hors de l'équipe de production.
#16.3 Contrôle de conformité avant diffusion
Aucun support ne sort sans que ces neuf points soient vérifiés :
| # | Point de contrôle |
|---|---|
| 1 | Le nom du produit s'écrit KySpectra, jamais SPECTRA |
| 2 | Le logo employé est l'un des sept fichiers livrés, sans retouche |
| 3 | La zone de protection de 6,5 x est respectée |
| 4 | La taille est au-dessus du minimum du §3.6 |
| 5 | Toutes les couleurs appartiennent à la palette du §6 |
| 6 | Tout couple texte/fond atteint au moins AA |
| 7 | Le violet ne désigne que de la provenance agentique |
| 8 | Aucune capacité Planifiée n'est présentée comme disponible |
| 9 | Aucun chiffre de marché non sourcé, aucun témoignage client, aucun secret |
KySpectra — Plateforme agentique SDD/SDLC · par Kyrieva
Documentation : kyspectradoc.kyrieva.com ·
Dossier de lancement : Strategielancement/
Document interne de pré-lancement — version 1.0 du 2026-08-17. Les données marquées
« [Gabarit : … ] » doivent être renseignées ou revalidées avant diffusion externe.