COMPOSANTS

Navigation

Navbar (app interne — fond foncé)

Utilisée dans les apps Rails (prodspe, ERP, catalogue admin). Fond neutral (= mc-navy), liens visibles à plat — jamais dans un dropdown pour la nav principale.

<nav class="navbar bg-neutral text-neutral-content shadow-sm rounded-lg">
  <div class="navbar-start gap-3">
    <div class="bg-mc-green rounded px-2 py-1">
      <span class="text-white font-accent font-bold text-xs">MC</span>
    </div>
    <span class="font-accent font-bold text-sm">Catalogue</span>
  </div>
  <div class="navbar-center hidden md:flex gap-6">
    <a href="#" class="text-sm text-neutral-content font-accent font-bold">Produits</a>
    <a href="#" class="text-sm text-neutral-content/60 hover:text-neutral-content transition-colors">Fournisseurs</a>
    <a href="#" class="text-sm text-neutral-content/60 hover:text-neutral-content transition-colors">Commandes</a>
  </div>
  <div class="navbar-end gap-2">
    <button class="btn btn-ghost btn-sm text-neutral-content/60 hover:text-neutral-content">NJ</button>
  </div>
</nav>

État actif des liens (top nav)

Dans la navbar (niveau 1, fond foncé), l'état actif utilise un léger fond blanc semi-transparent bg-white/10. La sidebar contextuelle (niveau 2), elle, est sur fond clair : son actif est bg-mc-green-50 text-mc-navy font-bold (voir Architecture → Navigation).

<!-- Lien actif -->
<a class="text-sm font-accent font-bold text-neutral-content bg-white/10 px-3 py-1.5 rounded">Produits</a>

<!-- Lien inactif -->
<a class="text-sm font-accent text-neutral-content/70 hover:text-neutral-content hover:bg-white/10 px-3 py-1.5 rounded transition-colors">Fournisseurs</a>

Fil d'Ariane (breadcrumb)

Toujours présent dans les apps internes pour la navigation retour. Jamais remplacer par un bouton "← Retour" ou window.history.back().

Niveau 2
Niveau 3
<nav class="text-sm text-base-content/40 mb-3">
  <a href="/commandes" class="hover:text-base-content transition-colors">Commandes</a>
  <span class="mx-1.5">/</span>
  <a href="/commandes/241" class="hover:text-base-content transition-colors">CMD-0241</a>
  <span class="mx-1.5">/</span>
  <span class="text-base-content/70">Édition</span>
</nav>

Onglets (tabs)

Pour alterner entre les vues liées au même objet. Toujours afficher l'onglet actif avec tab-active. Un compteur peut s'afficher dans le label d'onglet.

Contenu de l'onglet actif
<div class="tabs tabs-bordered">
  <a class="tab tab-active">Détails</a>
  <a class="tab">Articles (12)</a>
  <a class="tab">Historique</a>
  <a class="tab">Documents</a>
</div>

Pagination

Placée sous le tableau, centrée. Indiquer le numéro de page courant et le total.

<div class="flex justify-center gap-2 mt-4">
  <a href="?page=1" class="btn btn-ghost btn-sm">← Précédent</a>
  <span class="btn btn-ghost btn-sm no-animation pointer-events-none">Page 2 / 10</span>
  <a href="?page=3" class="btn btn-ghost btn-sm">Suivant →</a>
</div>

Menu déroulant (dropdown)

Pour regrouper des actions secondaires sur un enregistrement. Toujours utiliser dropdown-end si le bouton est en bord droit d'écran. Séparer les actions destructives avec un hr.

<div class="dropdown dropdown-end">
  <button tabindex="0" class="btn btn-ghost btn-sm">Options ▾</button>
  <ul tabindex="0" class="dropdown-content menu bg-base-100 rounded-box shadow-lg w-48 p-2 z-40 border border-base-200">
    <li><a class="text-sm">Modifier</a></li>
    <li><a class="text-sm">Dupliquer</a></li>
    <li><hr class="my-1 border-base-200"></li>
    <li><a class="text-sm text-error">Supprimer</a></li>
  </ul>
</div>

Règles

Utiliser le fil d'Ariane pour la navigation retour — jamais un bouton "← Retour".
Liens nav visibles dans la navbar — jamais cachés dans un dropdown pour la navigation principale.
Lien actif : font-bold text-neutral-content — pas de soulignement.
Jamais plus de 2 niveaux de profondeur dans la navigation (groupe → items).
Jamais window.history.back() à la place d'un fil d'Ariane structuré.