Bibliothèque de composants SINESI
Tous les blocs UI utilisés dans le CRM. Copiez-collez depuis cette page pour garantir la cohérence visuelle. Toujours partir d'un composant existant avant d'en créer un nouveau.
Couleurs, typographie, espacement
Les tokens fondateurs du design system. Tous les composants en dépendent — ne jamais utiliser de couleur hard-codée hors de cette liste.
Palette de couleurs
Utiliser les tokens via Tailwind config (à venir dans le repo CRM)Couleurs de marque
Couleurs sémantiques
Neutres / Surfaces
Typographie
Police : Space Grotesk · Weights : 400, 500, 600, 700Espacement & rayons
Échelle multiple de 4px · rayons standards rounded-md/lg/xl/2xlPadding scale (Tailwind p-N)
Border radius
Variantes × tailles
Usages typiques
Formulaires
Inputs, selects, choices, toggles. Toujours utiliser React Hook Form + Zod pour la validation. Labels obligatoires, placeholders descriptifs.
Inputs texte
Variantes : default, with icon, disabled, errorTel qu'il apparaîtra sur les factures
L'adresse email n'est pas valide.
Textarea & mot de passe
Maximum 500 caractères
Radio & Checkbox
Espacement vertical 8px entre optionsToggle & Select
Multi-sélection autorisée
Badges, statuts & tags
Utilisés pour : statut de projet, priorité de tâche, type de secteur, état de facture, niveau d'alerte. Toujours utiliser le bon tone sémantique.
Tons sémantiques
Idle / actif / dotCas d'usage CRM
Avatars
Toujours afficher les initiales si pas de photo. Gradients variés pour éviter monotonie sur les listes d'utilisateurs.
Tailles & gradients
Cards
Tous les composants composites principaux : KPI, projet, message, facture, lead, alerte. Toujours dans des conteneurs bordés bg-white/[0.03].
KPI Cards (grille 4 colonnes)
Cards composites
- SINESI-2026-038 · Riad Arabella+12 j
- SINESI-2026-041 · Karam Distribution+3 j
- SINESI-2026-042 · Audibene+1 j
Tables & listes
Pour afficher des collections (clients, projets, factures, tâches). Toujours avec filtres + pagination + état vide.
Table standard
En-têtes en SCREAMING_CAPS · lignes hoverables · pagination en bas| Client | Type | Statut | Échéance | Progression | |
|---|---|---|---|---|---|
TM TRANS MOUHOUT | Transport | En cours | 12 juin | 35% | |
KD Karam Distribution | ERP | En revue | 28 mai | 78% | |
RM Rayonnage Maroc | BTP | Livré | Livré | 100% |
Progression & étapes
Barres de progression, anneaux circulaires, indicateurs d'étape (CDC wizard, projet pipeline).
Linear & step indicators
Steps wizard
États : vide, chargement, erreur
Tous les écrans CRM doivent gérer ces 3 états. Jamais d'écran vide sans illustration ou message.
Empty / Loading / Error
Vos projets apparaîtront ici une fois que vos clients auront soumis leur cahier de charges.
Le serveur ne répond pas. Vérifiez votre connexion ou réessayez dans un instant.
Toasts (notifications transitoires)
Modal / Dialog
TRANS MOUHOUT pour confirmer.Sidebars, top bars, page headers
Les conteneurs structurels. Réutilisés sur dashboard admin (sidebar+topbar) et portails client/apporteur (header simple).
Page header (titre + actions)
Snippets à réutiliser
Composants avancés (critiques V1)
Composants couramment utilisés à travers le CRM : tabs, dropdowns, tooltips, breadcrumbs, date pickers, command palette, filter pills, upload zones.
Tabs / Onglets
Border-bottom violet sur l'actif · 4px gap · icon optionnelleDropdown menu / Menu contextuel
Déclenché par bouton '...' ou chevron · max 220px wideTooltip
Délai 600ms avant apparition · pointer arrow · max 240px wideBreadcrumb
Séparateur chevron 12px · texte muted sauf dernier · cliquablesFilter pills
Filtres rapides au-dessus des listes · pill actif + violetDate picker / Range
Calendrier mini-mois + raccourcis · range = 2 datesCommand palette (⌘K)
Recherche globale + actions rapides · raccourcis claviers visiblesFile upload / Dropzone
Drag-drop + parcourir · preview + barre de progressionGlisser-déposer ou parcourir
PDF · DOCX · XLSX · PNG · JPG · jusqu'à 25 MB
Tag input
Tags multiples + input inline · supprimer au clicAppuyer sur Entrée pour valider · max 8 tags
Note : dans l'app réelle ce panneau est en position: absolute. Affiché ici en flow pour la démo.
Drawer / Side panel
Quick-view sans changer de page · slide depuis la droite · overlay scrimCombobox / Autocomplete
Sélection assistée avec filtre + section · idéal pour clients/projetsNote : dans l'app réelle ce panneau est en position: absolute. Affiché ici en flow pour la démo.
Banner / Alert
Bandeau pleine largeur en haut de page · 4 tons (info/warning/error/success)Confirmation dialog
Plus léger que le modal · destructif / informatif · centré, max 400pxSupprimer cette tâche ?
L'action est irréversible. La tâche et ses sous-tâches seront supprimées.
Envoyer le devis maintenant ?
Le devis sera envoyé par email à M. Karam Slaoui avec lien de validation Stripe.
Pagination avancée
Pages numérotées + jump-to · go-to-first/last · texte de résultatsSkeleton (chargement)
animate-pulse · bg-white/[0.06] · structures qui correspondent au contenu réelPour les stagiaires : ouvrez le fichier app/mockups/components/page.tsx du repo CRM pour copier-coller les composants. Toute nouvelle UI doit dériver de ce kit — pas de couleurs hard-codées hors palette, pas de tailles arbitraires, pas de variants non documentés. En cas de doute : poser la question avant de coder.