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">
    <!-- le menu du compte : voir « Menu du compte » -->
  </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)

Seulement s'il porte un lien absent du reste de la page : la règle est dans Architecture › Navigation. Une app à deux niveaux (liste → fiche) n'en a pas.

<nav class="text-sm text-base-content/40 mb-3">
  <a href="/catalogue" class="hover:text-base-content transition-colors">Catalogue</a>
  <span class="mx-1.5">/</span>
  <a href="/marques/stanley-stella" class="hover:text-base-content transition-colors">Stanley/Stella</a>
  <span class="mx-1.5">/</span>
  <span class="text-base-content/70">Creator 2.0</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-border">
  <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>

Menu du compte

Tout à droite de la navbar de chaque app interne. L'adresse de la personne connectée l'ouvre ; il regroupe les réglages de l'app (Accès, Notifications) sous « Administration » et finit toujours sur Déconnexion. Les réglages ne sont jamais dans la navbar elle-même. En Rails : account_menu(email, sign_out_path:) { account_menu_item(…) }.

<%= account_menu current_user.email_address, sign_out_path: session_path do %>
  <%= account_menu_item "Accès", access_path, icon: "key" %>
  <%= account_menu_item "Notifications", notifications_path, icon: "bell" %>
<% end %>

Règles

✓ Le retour vers une page parente suit Architecture › Navigation (Breadcrumb).
✓ Liens nav visibles dans la navbar — jamais cachés dans un dropdown pour la navigation principale.
✓ Réglages de l'app (Accès, Notifications) et déconnexion dans le menu du compte, tout à droite, jamais dans la navbar.
✓ Lien actif : font-bold text-neutral-content — pas de soulignement.
✗ Jamais plus de 2 niveaux de profondeur dans la navigation (groupe → items).