Documentation

Documentation - Popover.

Découvrez Marssel : un framework CSS intelligent, configuration minimale, conçu pour des interfaces rapides et une expérience développeur simplifiée.

Popover

Marssel propose un système de popover pour afficher du contenu contextuel dans une fenêtre flottante au clic sur un élément déclencheur. Idéal pour afficher des informations détaillées, formulaires ou actions supplémentaires.

Configuration de base

Le PopoverManager est automatiquement initialisé :

const marssel = new Marssel();
// Le PopoverManager est prêt à l'emploi

Structure HTML

Un popover se compose d'un déclencheur et d'un contenu :

Aperçu

Titre du popover

Contenu du popover avec des informations supplémentaires.

<!-- Déclencheur -->
<button data-popover-trigger="popover-1">
    Afficher le popover
</button>

<!-- Popover -->
<div id="popover-1" data-popover>
    <h4>Titre du popover</h4>
    <p>Contenu du popover avec des informations supplémentaires.</p>
</div>

Directions disponibles

Positionnez le popover avec data-popover-direction :

Aperçu
Contenu en bas
Contenu en haut
Contenu à gauche
Contenu à droite
<!-- En bas (défaut) -->
<button data-popover-trigger="popover-bottom">Bottom</button>
<div id="popover-bottom" data-popover data-popover-direction="bottom">
    Contenu en bas
</div>

<!-- En haut -->
<button data-popover-trigger="popover-top">Top</button>
<div id="popover-top" data-popover data-popover-direction="top">
    Contenu en haut
</div>

<!-- À gauche -->
<button data-popover-trigger="popover-left">Left</button>
<div id="popover-left" data-popover data-popover-direction="left">
    Contenu à gauche
</div>

<!-- À droite -->
<button data-popover-trigger="popover-right">Right</button>
<div id="popover-right" data-popover data-popover-direction="right">
    Contenu à droite
</div>

API JavaScript

Contrôlez les popovers programmatiquement :

// Récupérer un popover
const trigger = document.querySelector('[data-popover-trigger="popover-1"]');
const popoverData = marssel.popoverManager.popovers.get(trigger);

// Ouvrir un popover
marssel.popoverManager.openPopover(popoverData);

// Fermer le popover actif
marssel.popoverManager.closeActivePopover();

// Basculer un popover
marssel.popoverManager.togglePopover(trigger);

Personnalisation des styles

Stylez vos popovers avec les classes Marssel :

<div id="custom-popover"
        data-popover
        data-popover-direction="bottom"
        class="max-w-[400px] bg-[1f2937] c-[ffffff] border-[none] rounded-[12px] shadow-[0_8px_24px_rgba(0_0_0_0.3)] p-[20px]">
    <h4 class="m-[0_0_12px_0] c-[ffffff]">Popover personnalisé</h4>
    <p class="m-[0] c-[d1.5db]">Contenu avec styles personnalisés</p>
</div>

Positionnement automatique

Les popovers s'ajustent automatiquement pour rester visibles dans la fenêtre, même si la direction spécifiée les ferait sortir de l'écran.

Démo interactive

Testez les popovers en direct :

Aperçu

Cas d'usage

Créer un compte
<div class="popover-demo---[max-w-[800px]+mx-[auto]+p-[24px]+bg-[f8f9fa]+rounded-[8px]]">
    <div class="mb-[24px]">
        <h4 class="mb-[12px] font-weight-[600]">Cas d'usage</h4>
        <div class="d-[flex] gap-[12px] flex-flow-[wrap] items-[center]">
            <button data-popover-trigger="demo-form"
                    class="btn-demo-pop---[bg-[10b981]+c-[ffffff]+p-[10px_20px]+rounded-[6px]+border-[none]+cursor-[pointer]] btn-demo-pop----[bg-[059669]]:hover">
                <span class="icon-[user] icon-size-[small]"></span>
                Inscription
            </button>
            <div id="demo-form" data-popover data-popover-direction="bottom">
                <h5 class="m-[0_0_12px_0]">Créer un compte</h5>
                <input type="email" placeholder="Email"
                    class="w-[100%] p-[8px] mb-[8px] border-[1px_solid_ddd] rounded-[4px]">
                <button class="w-[100%] bg-[10b981] c-[fff] p-[8px] border-[none] rounded-[4px] cursor-[pointer]">
                    S'inscrire
                </button>
            </div>
        </div>
    </div>
</div>

Fermeture automatique

Le popover se ferme automatiquement :

  • Au clic en dehors du popover
  • Au clic sur le déclencheur (toggle)
  • Programmatiquement via l'API

Différences avec Tooltip

Caractéristique Tooltip Popover
Déclenchement Survol Clic
Contenu Texte court Contenu riche (HTML)
Interactif Non Oui
Persistance Temporaire Jusqu'à fermeture
Usage Info contextuelle Actions/Formulaires