Documentation - Tooltips.
Découvrez Marssel : un framework CSS intelligent, configuration minimale, conçu pour des interfaces rapides et une expérience développeur simplifiée.
Démarrage
Concepts de base
Utilitaires
Tooltips
Marssel propose un système de tooltips (infobulles) léger et personnalisable pour afficher des informations contextuelles au survol d'éléments. Les tooltips supportent plusieurs positions, thèmes et animations.
Configuration de base
Le TooltipManager est automatiquement initialisé :
const marssel = new Marssel();
// Le TooltipManager est prêt à l'emploi
Utilisation simple
Ajoutez l'attribut data-tooltip à n'importe quel élément :
<!-- Tooltip simple -->
<button data-tooltip="Cliquez pour enregistrer">
Enregistrer
</button>
<!-- Tooltip sur un lien -->
<a href="#" data-tooltip="En savoir plus sur cette fonctionnalité">
Documentation
</a>
<!-- Tooltip sur une icône -->
<span class="icon-[star] icon-size-[medium]"
data-tooltip="Information importante">
</span>
Positions disponibles
Définissez la position avec data-tooltip-position :
<!-- En haut (défaut) -->
<button data-tooltip="Tooltip en haut"
data-tooltip-position="top">
Top
</button>
<!-- En bas -->
<button data-tooltip="Tooltip en bas"
data-tooltip-position="bottom">
Bottom
</button>
<!-- À gauche -->
<button data-tooltip="Tooltip à gauche"
data-tooltip-position="left">
Left
</button>
<!-- À droite -->
<button data-tooltip="Tooltip à droite"
data-tooltip-position="right">
Right
</button>
Classes personnalisées
Ajoutez vos propres styles avec data-tooltip-class :
<button data-tooltip="Tooltip personnalisé"
data-tooltip-class="bg-[red] c-[white]">
Custom
</button>
Options combinées
Combinez plusieurs options pour des tooltips avancés :
<button data-tooltip="Tooltip personnalisé avec plusieurs options"
data-tooltip-position="bottom"
data-tooltip-theme="light"
data-tooltip-animation="scale"
data-tooltip-max-width="350"
class="bg-[2563eb] c-[ffffff] p-[12px_24px] rounded-[6px] border-[none] cursor-[pointer]">
Complet
</button>
API JavaScript
Créez et gérez des tooltips programmatiquement :
// Créer un tooltip
const button = document.querySelector('#my-button');
marssel.tooltipManager.createTooltip(button, 'Nouveau tooltip', {
position: 'bottom',
theme: 'light',
animation: 'scale',
maxWidth: 300
});
// Mettre à jour un tooltip existant
marssel.tooltipManager.updateTooltip(button, 'Contenu mis à jour', {
position: 'top',
theme: 'dark'
});
// Supprimer un tooltip
marssel.tooltipManager.removeTooltip(button);
// Afficher un tooltip manuellement
marssel.tooltipManager.showTooltip(button);
// Masquer un tooltip manuellement
marssel.tooltipManager.hideTooltip(button);
Tooltips dynamiques
Créez des tooltips à la volée :
// Ajouter un tooltip lors d'un événement
document.querySelector('#dynamic-btn').addEventListener('click', (e) => {
const newElement = document.createElement('span');
newElement.textContent = 'Nouvel élément';
marssel.tooltipManager.createTooltip(newElement, 'Tooltip dynamique', {
position: 'right',
theme: 'dark'
});
document.body.appendChild(newElement);
});
Tooltips dynamiques
Créez des tooltips à la volée :
<!-- Le tooltip se repositionnera automatiquement s'il sort de l'écran -->
<button data-tooltip="Ce tooltip sera toujours visible, même sur mobile"
data-tooltip-position="top"
data-tooltip-max-width="250"
class="pos-[fixed] top-[10px] right-[10px]">
Coin supérieur droit
</button>
Démo interactive
Testez les tooltips en direct :
Positions
Thèmes
Animations
Largeurs personnalisées
Cas d'usage
<div class="tooltip-demo---[max-w-[800px]+mx-[auto]+p-[24px]+bg-[f8f9fa]+rounded-[8px]]">
<!-- Positions -->
<div class="mb-[24px]">
<h4 class="h4-tooltip---mb-[12px]+font-weight-[600]">Positions</h4>
<div class="wrapper-tooltip---[d-[flex]+gap-[12px]+flex-flow-[wrap]+justify-[center]]">
<button data-tooltip="Tooltip en haut"
data-tooltip-position="top"
class="tooltip1---bg-[6366f1]+c-[ffffff]+p-[10px_20px]+rounded-[6px]+border-[none]+cursor-[pointer] tooltip1---[bg-[4f46e5]]:hover">
Top
</button>
<button data-tooltip="Tooltip en bas"
data-tooltip-position="bottom"
class="tooltip1">
Bottom
</button>
<button data-tooltip="Tooltip à gauche"
data-tooltip-position="left"
class="tooltip1">
Left
</button>
<button data-tooltip="Tooltip à droite"
data-tooltip-position="right"
class="tooltip1">
Right
</button>
</div>
</div>
<!-- Thèmes -->
<div class="mb-[24px]">
<h4 class="h4-tooltip">Thèmes</h4>
<div class="wrapper-tooltip">
<button data-tooltip="Thème sombre par défaut"
data-tooltip-theme="dark"
class="tootlip-dark---[bg-[1f2937]+c-[ffffff]+p-[10px_20px]+rounded-[6px]+border-[none]+cursor-[pointer]] tooltip-dark---[bg-[111827]]:hover">
Dark
</button>
<button data-tooltip="Thème clair avec bordure"
data-tooltip-theme="light"
class="tootlip-light---[bg-[f3f4f6]+c-[1f2937]+p-[10px_20px]+rounded-[6px]+border-[1px_solid_e5e7eb]+cursor-[pointer]] tooltip-light---[bg-[e5e7eb]]:hover">
Light
</button>
</div>
</div>
<!-- Animations -->
<div class="mb-[24px]">
<h4 class="h4-tooltip">Animations</h4>
<div class="wrapper-tooltip">
<button data-tooltip="Animation fade"
data-tooltip-animation="fade"
class="tooltip-animate---[bg-[8b5cf6]+c-[ffffff]+p-[10px_20px]+rounded-[6px]+border-[none]+cursor-[pointer]] tooltip-animate---[bg-[7c3aed]]:hover">
Fade
</button>
<button data-tooltip="Animation scale"
data-tooltip-animation="scale"
class="tooltip-animate">
Scale
</button>
</div>
</div>
<!-- Largeurs -->
<div class="mb-[24px]">
<h4 class="h4-tooltip">Largeurs personnalisées</h4>
<div class="wrapper-tooltip">
<button data-tooltip="Court"
data-tooltip-max-width="100"
class="tootlip-width---[bg-[ec4899]+c-[ffffff]+p-[10px_20px]+rounded-[6px]+border-[none]+cursor-[pointer]] tootlip-width---[bg-[db2777]]:hover">
Petit (100px)
</button>
<button data-tooltip="Largeur moyenne pour un texte normal"
data-tooltip-max-width="200"
class="tootlip-width">
Moyen (200px)
</button>
<button data-tooltip="Ce tooltip a une largeur maximale de 400px ce qui permet d\'afficher beaucoup plus de contenu et de texte explicatif"
data-tooltip-max-width="400"
class="tootlip-width">
Large (400px)
</button>
</div>
</div>
<!-- Exemples pratiques -->
<div>
<h4 class="h4-tooltip">Cas d'usage</h4>
<div class="wrapper-tooltip align-items-[center]">
<span class="icon-[star] icon-size-[large] c-[0B63F3] cursor-[pointer]"
data-tooltip="Information complémentaire"
data-tooltip-position="right">
</span>
<span class="icon-[caret-right] icon-size-[large] c-[f59e0b] cursor-[pointer]"
data-tooltip="Besoin d'aide ?"
data-tooltip-position="top"
data-tooltip-theme="light">
</span>
<span class="icon-[calendar-solid] icon-size-[large] c-[D41212] cursor-[pointer]"
data-tooltip="Attention : action irréversible"
data-tooltip-position="bottom"
data-tooltip-max-width="200">
</span>
<img src="https://placehold.co/40x40""
alt="Avatar"
class="w-[40px] h-[40px] rounded-[50%] cursor-[pointer]"
data-tooltip="John Doe - Développeur"
data-tooltip-position="right">
</div>
</div>
</div>
Variables CSS personnalisables
Personnalisez globalement les tooltips avec des variables CSS :
:root {
--tooltip-z-index: 1000;
--tooltip-max-width: 300px;
--tooltip-offset: 8px;
}