Design System

Composants UI du dashboard LaNotif — Reference visuelle et markup

Couleurs

Palette de couleurs utilisee dans tout le dashboard.

Primary (Indigo)

50

#eef2ff

100

#e0e7ff

200

#c7d2fe

300

#a5b4fc

400

#818cf8

500

#6366f1

600

#4f46e5

700

#4338ca

800

#3730a3

900

#312e81

Gray

50

#f9fafb

100

#f3f4f6

200

#e5e7eb

300

#d1d5db

400

#9ca3af

500

#6b7280

600

#4b5563

700

#374151

800

#1f2937

900

#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

Boutons

Tous les styles de boutons utilises dans le dashboard.

Variantes

HTML
<button class="px-4 py-2 bg-primary-600 text-white text-sm font-medium rounded-lg hover:bg-primary-700">Primary</button>
<button class="px-4 py-2 text-sm font-medium text-gray-700 bg-gray-100 rounded-lg hover:bg-gray-200">Secondary</button>
<button class="px-4 py-2 text-sm font-medium text-red-600 bg-red-50 rounded-lg hover:bg-red-100">Danger</button>
<button class="px-4 py-2 text-sm font-medium text-gray-700 border border-gray-200 rounded-lg hover:bg-gray-50">Outline</button>

Tailles

HTML
<button class="px-3 py-1.5 text-xs ...">Small</button>
<button class="px-4 py-2 text-sm ...">Medium</button>
<button class="px-6 py-2.5 text-base ...">Large</button>

Etats

HTML
<button class="... opacity-50 cursor-not-allowed" disabled>Disabled</button>
<button class="...">
  <div class="animate-spin rounded-full h-4 w-4 border-b-2 border-white mr-2"></div>
  Loading
</button>

Avec icone

HTML
<button class="inline-flex items-center px-4 py-2 bg-primary-600 text-white text-sm font-medium rounded-lg">
  <svg class="w-4 h-4 mr-2" fill="none" stroke="currentColor" viewBox="0 0 24 24">
    <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 4v16m8-8H4"/>
  </svg>
  Nouveau flux
</button>

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

Abonnes

1,247

Abonnes actifs

HTML — Stat Card
<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.

HTML — Input Field
<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

Publie Planifie Brouillon Annule Actif Inactif
HTML
<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

Normale Haute Urgente
HTML
<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

Public Prive Proprietaire Pro

Tag avec couleur

Promo Breaking Eco

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.

HTML — Alerte Success
<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.

Notification envoyee avec succes
Une erreur est survenue
Flux cree avec succes
HTML
<!-- 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)

HTML — Modal Structure
<!-- 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.

HTML — Empty State
<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

1/1

2 colonnes — grid grid-cols-1 md:grid-cols-2 gap-4

1/2
2/2

3 colonnes — grid grid-cols-1 md:grid-cols-3 gap-4

1/3
2/3
3/3

4 colonnes — grid grid-cols-2 md:grid-cols-4 gap-4

1/4
2/4
3/4
4/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