SYNAPSE · @synapse/ui
Design system
La référence vivante de l’interface SYNAPSE : chaque exemple ci-dessous est rendu avec les vrais composants du paquet @synapse/ui, dans le thème choisi. Les données sont fictives (tenant SYNAPSE RICE DEMO, rizerie du Sourou).
- Tokens sémantiques
- 68
- par thème (clair et sombre)
- Couleurs primitives
- 72
- jamais utilisées directement
- Paires de contraste
- 41
- vérifiées × 2 thèmes en CI
- Pages documentées
- 13
- fondations et composants
Principes de design
- 1
Efficacité métier avant l’effet visuel
Densité d’information maîtrisée, actions principales évidentes, zéro décoration gratuite.
- 2
Un écran = une intention
Un seul bouton principal par écran ; les actions secondaires vont dans un menu.
- 3
Le statut est toujours visible
Badge de statut et prochaine action attendue dans l’en-tête de chaque document.
- 4
Le flux plutôt que le module
Chaque document montre ses documents liés (commande → BL → facture → paiement → écriture) et y mène en un clic.
- 5
Calme et lisibilité pour 8 h par jour
Fonds neutres, contraste élevé du texte, couleur réservée au sens : statut, alerte, action.
- 6
Accessible par défaut
WCAG 2.2 AA, clavier complet, focus visible, cibles tactiles ≥ 44 px sur le terrain.
- 7
Repris d’AGB, validé par un vrai client
Espaces par rôle, accueil « Aujourd’hui », onglets de statut avec compteurs, fiche 360°, toast après succès, confirmation seulement pour l’irréversible, motif obligatoire au refus.
Utiliser les tokens
Primitives
--sy-navy-900, --sy-mint-500
Palette brute de la charte. Jamais référencée par un composant.
Sémantiques
--sy-bg-surface, --sy-fg-muted, --sy-primary
68 rôles, redéfinis en mode sombre : un composant n’a jamais à connaître le thème.
Utilitaires Tailwind
bg-bg-surface text-fg-muted
Générés depuis les rôles (theme.css). La palette Tailwind par défaut est désactivée.
// ✅ Rôles sémantiques : correct dans les deux thèmes
<div className="rounded-xl border border-border-default bg-bg-surface p-4 shadow-xs">
<p className="text-sm text-fg-muted">Encours client</p>
<MoneyText value="94800000" currency="XOF" className="text-2xl font-semibold" />
</div>
// ❌ Interdit (refusé par pnpm --filter @synapse/ui lint) :
// valeurs hexadécimales, palette Tailwind par défaut (gris, bleu… numérotés),
// styles inline de couleur ou de fond
// Outillage
pnpm tokens # régénère tokens.css, theme.css, tokens.generated.ts
pnpm --filter @synapse/ui contrast # 41 paires × 2 thèmes (WCAG AA)
pnpm --filter @synapse/ui lint # couleurs codées en dur interditesSommaire
Fondations
Marque
Logo, symbole, déclinaisons et règles d’usage.
Couleurs
Tokens sémantiques, primitives et contrastes calculés en direct.
Typographie
Échelle 2xs → 3xl, General Sans et Inter, chiffres tabulaires.
Espacements & formes
Grille de 4 px, rayons, ombres, dimensions de mise en page et sauts de page à l’impression.
Icônes
lucide-react : tailles, trait et accessibilité.
Mouvement
Durées, courbe d’accélération et mouvement réduit.
Composants
Boutons
Variantes, tailles (dont tactile), icônes, chargement, raccourcis.
Formulaires
Champs texte, nombres, montants, dates, fichiers, lignes de document.
Sélection
Listes, recherche de tiers, cases, boutons radio, interrupteurs.
Retours & surimpressions
Fenêtres, tiroirs, menus, notifications, états vides et erreurs.
Données & tableaux
Statuts, montants, tableau de données, filtres, historique, flux.
Graphiques & KPI
Indicateurs clés, sparklines, barres, courbes, anneau.
Navigation
Onglets, fil d’Ariane, étapes, palette de commandes, sociétés.
Gabarits (écrans d’exemple)
- Aujourd’hui (accueil)Tableau de bord par rôle, tuiles à traiter, indicateurs.
- Liste des commandesOnglets de statut, filtres, tableau, actions en masse.
- Fiche commandeEn-tête document, statut, flux, onglets, historique.
- Nouvelle commandeFormulaire de saisie avec lignes de document.
- Terminal atelierPRD-170 · Écran terrain tactile du poste opérateur : production, arrêts, sorties matières.