HORIZON · Tokens
HHORIZON 02 · Design system

Tokens

Variables CSS préfixées --hz-, définies dans assets/tokens.css. Valeurs mesurées sur la maquette, à caler sur le fichier Figma source (V-04) ; elles font foi d'ici là. Les ajouts du pack (neutre, fs-lg) sont marqués.

Couleurs · primaires

--hz-primary-900
#152B54 · bouton primaire, info-bulle, point actif
--hz-primary-700
#1F3B70 · actif sidebar, courbe, segment Actions
--hz-primary-500
#2F6FED · liens, progression, sparklines, Obligations
--hz-primary-200
#A7C3F2 · segment Fonds €, survols légers
--hz-primary-100
#DCE7FA · Liquidités, fonds actif sidebar, médaillon

Couleurs · fonds, textes, structure

--hz-bg-app
#F5F7FA · fond général
--hz-bg-card
#FFFFFF · cartes, tableaux, barre latérale
--hz-border
#E5E9F0 · bordures, séparateurs, contours de champs
--hz-text-strong
#1C2A3A · titres et valeurs principales
--hz-text-muted
#6B7A90 · libellés secondaires, axes, légendes
--hz-chart-grid
#E9EDF3 · grille du graphique, piste de progression
--hz-versements
#9AA7B8 · série « Versements » (pointillés)

Couleurs · états sémantiques (badges, alertes)

Validé
--hz-success-bg/-fg
#E7F6EE / #12805A · Validé, KYC à jour, variations positives
En cours
--hz-warning-bg/-fg
#FEF0DB / #B54708 · En cours, KYC à renouveler
Planifié
--hz-info-bg/-fg
#EAF1FE / #175CD3 · Planifié, Profil équilibré
Expiré
--hz-danger-bg/-fg
#FCE8E6 / #C0392B · Expiré, erreurs, pastille de notification
Cliente depuis 2016
--hz-neutral-bg/-fg
#EEF2F7 / #6B7A90 · ancienneté, Annulé [calé maquette, P-03]

Typographie

Police : Inter, repli system-ui, Segoe UI, Roboto (aucune dépendance réseau : le repli système s'applique si Inter n'est pas installée).

--hz-fs-xxl · 24/70042 350 €valeurs des cartes d'indicateurs
--hz-fs-xl · 18/700Marie Dupontnom du client
--hz-fs-lg · 16/700Projection du capital sur 10 anstitres de cartes [calé maquette]
--hz-fs-md · 14/500Corps, cellules de tableau, ongletstexte courant
--hz-fs-sm · 12/500Libellés secondaires, badges, légendes

Espacements · grille de 8

--hz-sp-1 · 4
--hz-sp-2 · 8
--hz-sp-3 · 12
--hz-sp-4 · 16gouttières de la grille
--hz-sp-5 · 24marge latérale de la zone de contenu
--hz-sp-6 · 32

Rayons et élévations

--hz-radius · 8px
boutons, champs, segments
--hz-radius-card · 12px
cartes et tableaux
--hz-radius-pill · 999
badges, recherche, avatars
--hz-shadow-card
0 1px 2px rgba(16,24,40,.06)
--hz-shadow-pop
menus, modales, panneaux

Compléments intégrés au système

Éléments ajoutés au même jeu de tokens (aucune valeur en dur ailleurs) pour couvrir tout l'écran de référence : fond de champ de saisie, hauteurs et rayons de contrôles, échelle typographique nommée, et couleurs de statut complètes des badges.

--hz-input-bg · #F7FAFF
Fond des champs de saisie (modale, formulaires)
--hz-input-h · 40px
Hauteur des champs
--hz-btn-h · 44px
Hauteur cible d'action principale (accessibilité)
--hz-radius-input · 8px
Rayon des champs et boutons
--hz-fs-cardtitle · 15/600Titre de carte (variante compacte)
--hz-fs-label · 13/500Libellé de champ / colonne
--hz-fs-caption · 11Légende, note de bas de carte

Couleurs de statut des badges (jeu complet)

Validé
success · #E7F6EE / #12805A
En cours
warning · #FEF0DB / #B54708
Planifié
info · #EAF1FE / #175CD3

Réconciliation avec les jetons client officiels

Le client fournit son propre jeu de jetons. Chaque jeton client est rattaché à un jeton --hz-*, seule source de vérité du code. Les écarts de valeur sont assumés et justifiés ligne par ligne : la maquette prime, le jeton client donne l'intention.

Jeton clientValeur clientJeton HORIZONValeur retenueÉcart
color.primary#1F3864--hz-primary-700#1F3B70Teinte relevée sur la maquette, plus claire de 3 points de bleu.
color.accent#2E75B6--hz-primary-500#2F6FEDAccent plus saturé, exigé par le contraste AA sur fond blanc.
color.chart.series2#9DC3E6--hz-versements#9AA7B8Gris neutre : la série « versements » ne doit pas concurrencer la courbe de capital.
color.surface#FFFFFF--hz-bg-card#FFFFFFIdentique.
color.surface.muted#F2F6FC--hz-bg-app#F5F7FAFond d'application légèrement moins bleuté, relevé sur la maquette.
color.input.bg#F7FAFF--hz-input-bg#F7FAFFIdentique.
color.border#D0D7E2--hz-border#E5E9F0Bordure plus discrète, conforme au rendu de la maquette.
color.text#1A1A1A--hz-text-strong#1C2A3ANoir bleuté, cohérent avec la primaire.
color.text.secondary#667085--hz-text-muted#6B7A90Écart imperceptible, contraste AA vérifié.
status.success#2E7D32 / #E7F4E8--hz-success-fg / -bg#12805A / #E7F6EEVert tirant sur le turquoise, relevé sur les badges de la maquette.
status.warning#B54708 / #FEF0E7--hz-warning-fg / -bg#B54708 / #FEF0DBTexte identique, fond légèrement plus ambré.
status.info#2E75B6 / #E7F0F9--hz-info-fg / -bg#175CD3 / #EAF1FEBleu plus soutenu pour le contraste du badge « Planifié ».
font.familyInter, Arial, sans-serif--hz-fontInter, system-ui, Segoe UI, Roboto, …Même famille, pile de repli élargie.
radius.input / radius.card8px / 12px--hz-radius / --hz-radius-card8px / 12pxIdentiques.
input.height / button.height40px / 44px--hz-input-h / --hz-btn-h40px / 44pxIdentiques.
space.base8px (4/8/16/24)--hz-sp-1..64/8/12/16/24/32Échelle étendue de deux crans pour les gouttières de grille.

États et adaptation à l'écran (exigés partout)

Chaque composant prévoit : champ normal / focus / erreur ; bouton normal / survol / chargement ; ligne de tableau normale / survolée / sélectionnée ; écran état initial (valeurs « — ») / résultat / vide / chargement (squelettes). Adaptation automatique à la fenêtre desktop, sans débordement : la mise en page remplit l'écran et se contracte de 1280 à 1920 px (tableau à défilement interne, graphiques en largeur 100 %)..

Grille et gabarit d'écran

Résolution de référence 1440 px, fonctionnelle dès 1280 px (RNF-23). Barre latérale fixe 232 px, barre supérieure 64 px, zone de contenu en grille 12 colonnes, gouttières 16 px, marge 24 px. Projection : 8 colonnes · Allocation : 4 colonnes ; échéancier pleine largeur. Sous 1280 px, l'allocation passe sous la projection.

232
Barre supérieure 64 px
8 colonnes · Projection
4 col. · Allocation