Design System
Composants UI du dashboard LaNotif — Reference visuelle et markup
Couleurs
Palette de couleurs utilisee dans tout le dashboard.
Primary (Indigo)
#eef2ff
#e0e7ff
#c7d2fe
#a5b4fc
#818cf8
#6366f1
#4f46e5
#4338ca
#3730a3
#312e81
Gray
#f9fafb
#f3f4f6
#e5e7eb
#d1d5db
#9ca3af
#6b7280
#4b5563
#374151
#1f2937
#111827
Couleurs semantiques
Success
green-500 #22c55e
Error
red-500 #ef4444
Warning
yellow-500 #eab308
Info
blue-500 #3b82f6
Typographie
Hierarchie typographique et styles de texte.
Font Family
-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif
System font stack — rendu natif sur chaque OS
text-2xl font-bold
Heading 1 — Titre principal
text-lg font-semibold
Heading 2 — Titre de section
text-base font-semibold
Heading 3 — Sous-titre
text-sm font-medium
Heading 4 — Label
text-sm text-gray-600
Body text — Le texte principal du dashboard utilise text-sm (14px) en gray-600 pour une lecture confortable.
text-xs text-gray-500
Small text — Utilise pour les labels secondaires, timestamps, et metadata.
text-xs text-gray-400
Muted text — Texte tres discret pour les hints et placeholders.
font-mono text-sm
Code / Token — ABCDEF123456
Cards
Conteneurs principaux du dashboard.
Basique
Titre de la card
Contenu de la card avec du texte descriptif.
Hoverable
Card interactive
Survolez pour voir l'effet d'ombre.
Danger Zone
Zone de danger
Actions irreversibles et destructives.
Stat Card
1,247
Abonnes actifs
<div class="bg-white rounded-xl shadow-sm p-5">
<div class="flex items-center justify-between mb-3">
<span class="text-xs font-semibold uppercase tracking-wider text-gray-500">Abonnes</span>
<svg class="w-5 h-5 text-primary-600" ...>...</svg>
</div>
<p class="text-3xl font-bold text-gray-900">1,247</p>
<p class="text-xs text-gray-500 mt-1">Abonnes actifs</p>
</div>
Formulaires
Champs de saisie et controles de formulaire.
L'URL vers laquelle l'utilisateur sera redirige en cliquant sur le lien.
<div> <label class="block text-sm font-medium text-gray-700 mb-1">Label</label> <input type="text" placeholder="..." class="w-full px-3 py-2 border border-gray-300 rounded-lg text-sm focus:outline-none focus:ring-2 focus:ring-primary-500 focus:border-transparent"> <p class="text-xs text-gray-400 mt-1">Hint text</p> </div>
Badges / Tags
Indicateurs visuels de statut, priorite et categorie.
Statut
<span class="inline-flex items-center px-2.5 py-0.5 rounded-full text-xs font-medium bg-green-100 text-green-800">Publie</span> <span class="... bg-blue-100 text-blue-800">Planifie</span> <span class="... bg-gray-100 text-gray-800">Brouillon</span> <span class="... bg-red-100 text-red-800">Annule</span>
Priorite
<span class="inline-flex items-center px-1.5 py-0.5 rounded text-xs font-medium bg-orange-100 text-orange-800">Haute</span>
Type et Plan
Tag avec couleur
Alertes
Messages contextuels pour informer l'utilisateur.
Notification envoyee avec succes a 1,247 abonnes.
Impossible de se connecter a la base de donnees. Verifiez vos identifiants.
Votre plan gratuit est limite a 5 flux. Passez au plan Pro pour en creer davantage.
Les notifications planifiees seront envoyees a l'heure definie, selon le fuseau horaire du serveur.
<div class="bg-green-50 border border-green-200 rounded-lg p-4">
<div class="flex">
<svg class="w-5 h-5 text-green-400 mr-2 flex-shrink-0" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 12l2 2 4-4m6 2a9 9 0 11-18 0 9 9 0 0118 0z"/>
</svg>
<p class="text-sm text-green-700">Message de succes.</p>
</div>
</div>
Toasts
Notifications ephemeres en haut a droite de l'ecran.
<!-- Container (fixe en haut a droite) --> <div id="toastContainer" class="fixed top-4 right-4 z-[9999] space-y-2"></div> <!-- Toast Success --> <div class="bg-green-600 text-white px-4 py-3 rounded-lg shadow-lg text-sm font-medium"> Notification envoyee avec succes </div> <!-- Toast Error --> <div class="bg-red-600 text-white px-4 py-3 rounded-lg shadow-lg text-sm font-medium"> Une erreur est survenue </div> <!-- Toast Info --> <div class="bg-blue-600 text-white px-4 py-3 rounded-lg shadow-lg text-sm font-medium"> Flux cree avec succes </div>
Modals
Fenetres modales pour les confirmations et formulaires.
Modal standard
Modal de confirmation (danger)
<!-- Overlay -->
<div class="fixed inset-0 bg-black bg-opacity-50 z-[9998] flex items-center justify-center p-4">
<!-- Modal -->
<div class="bg-white rounded-2xl shadow-xl max-w-lg w-full max-h-[90vh] overflow-y-auto">
<div class="p-6">
<h3 class="text-lg font-semibold text-gray-900 mb-4">Titre</h3>
<p class="text-sm text-gray-600 mb-6">Description</p>
<div class="flex justify-end gap-3">
<button class="px-4 py-2 text-sm font-medium text-gray-700 bg-gray-100 rounded-lg">Annuler</button>
<button class="px-4 py-2 text-sm font-medium text-white bg-primary-600 rounded-lg">Confirmer</button>
</div>
</div>
</div>
</div>
Etats speciaux
Empty states, loading, skeletons, et erreurs.
Empty State
Aucun flux pour le moment.
Creez votre premier flux pour commencer.
Loading Spinner
Skeleton Loading
Error Banner
Erreur de chargement
Impossible de charger les donnees. Veuillez reessayer.
<div class="text-center py-12"> <svg class="w-12 h-12 text-gray-300 mx-auto mb-4" ...>...</svg> <p class="text-sm text-gray-500">Aucun flux pour le moment.</p> <p class="text-xs text-gray-400 mt-1">Creez votre premier flux.</p> <button class="... mt-4">Creer un flux</button> </div> <!-- Skeleton --> <div class="bg-white rounded-xl shadow-sm p-5 animate-pulse"> <div class="h-3 bg-gray-200 rounded w-20 mb-3"></div> <div class="h-8 bg-gray-200 rounded w-16 mb-2"></div> <div class="h-3 bg-gray-200 rounded w-28"></div> </div>
Icones
Icones SVG utilisees dans le dashboard. Toutes utilisent fill="none" stroke="currentColor" viewBox="0 0 24 24".
Home
Bell
Flux
Link
Chart
Settings
Plus
Send
Close
Menu
Logout
Copy
Refresh
Users
Alert
Back
Grilles
Patterns de layout responsifs utilises dans le dashboard.
1 colonne
2 colonnes — grid grid-cols-1 md:grid-cols-2 gap-4
3 colonnes — grid grid-cols-1 md:grid-cols-3 gap-4
4 colonnes — grid grid-cols-2 md:grid-cols-4 gap-4
Breakpoints responsifs
| Prefix | Largeur min | Usage |
|---|---|---|
| (default) | 0px | Mobile |
| sm: | 640px | Small tablet |
| md: | 768px | Tablet |
| lg: | 1024px | Desktop (sidebar visible) |
| xl: | 1280px | Large desktop |
LaNotif Design System — Reference pour le dashboard