Aller au contenu
Design system

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

Sept principes guident chaque arbitrage d’interface (DESIGN_SYSTEM §2).
  1. 1

    Efficacité métier avant l’effet visuel

    Densité d’information maîtrisée, actions principales évidentes, zéro décoration gratuite.

  2. 2

    Un écran = une intention

    Un seul bouton principal par écran ; les actions secondaires vont dans un menu.

  3. 3

    Le statut est toujours visible

    Badge de statut et prochaine action attendue dans l’en-tête de chaque document.

  4. 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. 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. 6

    Accessible par défaut

    WCAG 2.2 AA, clavier complet, focus visible, cibles tactiles ≥ 44 px sur le terrain.

  7. 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

Trois niveaux : les primitives (palette brute), les rôles sémantiques (seuls autorisés dans le code) et les utilitaires Tailwind générés depuis ces rôles.

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 interdites

Sommaire

Fondations, composants regroupés par famille, puis écrans d’exemple.

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.