COMPOSANTS
Recherche
Recherche simple (avec icône)
L'icône loupe est positionnée en absolu à gauche. Le padding pl-8 compense pour ne pas chevaucher le texte saisi.
<div class="relative w-72">
<input type="text" placeholder="Rechercher un produit..."
class="input input-bordered input-sm w-full pl-8">
<svg class="absolute left-2.5 top-1/2 -translate-y-1/2 w-4 h-4 text-base-content/40"
fill="none" viewBox="0 0 24 24" stroke="currentColor">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
d="M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z"/>
</svg>
</div> Recherche avec bouton
Quand la recherche est déclenchée manuellement (pas en async). Le bouton est accolé à l'input via rounded-r-none / rounded-l-none.
<div class="flex w-96">
<input type="text" placeholder="Référence, nom, fournisseur..."
class="input input-bordered input-sm flex-1 rounded-r-none">
<button class="btn btn-sm btn-primary rounded-l-none">Rechercher</button>
</div> Recherche avec chargement async
Le spinner remplace ou complète l'icône loupe pendant la requête. Toujours debouncer à 300ms pour éviter les requêtes excessives.
<div class="relative w-72">
<input type="text" placeholder="Rechercher..."
class="input input-bordered input-sm w-full pl-8 pr-8">
<svg class="absolute left-2.5 top-1/2 -translate-y-1/2 w-4 h-4 text-base-content/40"
fill="none" viewBox="0 0 24 24" stroke="currentColor">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
d="M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z"/>
</svg>
<!-- Spinner visible during search -->
<span class="loading loading-spinner loading-xs absolute right-2.5 top-1/2 -translate-y-1/2 text-primary"></span>
</div> Barre de recherche dans la navbar
Version compacte pour les navbars sur fond mc-navy. L'input est transparent par défaut et devient blanc au focus pour maximiser la lisibilité.
<div class="relative">
<input type="text" placeholder="Rechercher..."
class="input input-sm w-48 pl-7 bg-white/10 text-white placeholder-white/40
border-white/20 focus:bg-white focus:text-mc-navy
focus:placeholder-gray-400 focus:border-transparent transition-all">
<svg class="absolute left-2 top-1/2 -translate-y-1/2 w-4 h-4 text-white/40"
fill="none" viewBox="0 0 24 24" stroke="currentColor">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
d="M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z"/>
</svg>
</div> ✓ Toujours afficher une icône loupe à gauche (
pl-8 pour compenser).✓ Debounce 300ms pour la recherche async (évite les requêtes excessives).
✗ Ne jamais lancer la recherche à chaque keystroke sans debounce.
✗ Jamais de recherche sans feedback d'état vide si aucun résultat.