Navigation✨ Premium

Tooltip Fade

Infobulle positionnée au-dessus du déclencheur qui apparaît en fondu sur le survol — deux variantes : fond neutre ou gradient indigo avec flèche CSS.

CSSHoverFade

Vous aurez accès à la démo interactive avec un compte gratuit.

Cet effet fait partie d'Effect.Labs — 811 effets vanilla, une partie gratuite, une partie premium. Navigation comprend 36 effets, dont 4 gratuits. Découvrir la catégorie →

3 exemples d'usage

Barre d'actions avec infobulles icônes — Tooltip Fade exemple 1

① Barre d'actions avec infobulles icônes

QuandUne barre d'outils compacte réunit des boutons iconiques (Copier, Partager, Supprimer, Paramètres) sans libellé visible — l'espace est trop court pour du texte permanent.
PourquoiL'infobulle fade-in révèle le nom de chaque action à la demande sans encombrer la barre. Le gradient indigo de la variante <code>tooltip-arrow</code> renforce la cohérence visuelle avec les CTA du produit.
RéglagesVariante .tooltip-arrow, gradient conservé, durée de transition 0.25s pour une réactivité accrue, bottom: calc(100% + 8px) pour coller davantage au bouton.
Tableau de métriques avec définitions au survol — Tooltip Fade exemple 2

② Tableau de métriques avec définitions au survol

QuandUn tableau de bord analytique affiche des sigles ou abréviations (CAC, LTV, MRR) que les utilisateurs non techniques ne maîtrisent pas forcément.
PourquoiL'infobulle neutre (fond sombre) apparaît directement sous le curseur, sans quitter la page — exactement là où l'utilisateur regarde. La transition douce évite la rupture visuelle d'un pop-up abrupt.
RéglagesVariante .tooltip standard, white-space: normal; max-width: 200px pour autoriser le retour à la ligne, font-size: .8rem, padding: 6px 12px.
Grille de comparaison d'offres avec critères annotés — Tooltip Fade exemple 3

③ Grille de comparaison d'offres avec critères annotés

QuandUn tableau comparatif de trois offres SaaS présente 8–10 critères (performance, sécurité, prix, support…) — chaque libellé de critère est survolé plusieurs fois par l'utilisateur pendant qu'il arbitre son choix entre les plans.
PourquoiLe fondu discret laisse la grille lisible entre les survols : aucun décalage de mise en page, aucune interruption de lecture. Le contexte de comparaison répété rend le fade perceptible et utile, car l'utilisateur revient naturellement plusieurs fois sur les mêmes lignes.
RéglagesVariante .tooltip standard (fond sombre neutre), white-space: normal; max-width: 180px; line-height: 1.4, font-size: .8rem, position calée à gauche (left: 0; transform: none) pour rester dans la largeur de la colonne.

Comment ça marche

L'effet repose entièrement sur CSS, sans une seule ligne de JavaScript. Le déclencheur .tooltip-trigger est un position: relative qui sert de point d'ancrage. L'infobulle enfant .tooltip est positionnée en position: absolute; bottom: calc(100% + 10px) — elle flotte donc exactement au-dessus, centrée horizontalement par left: 50%; transform: translateX(-50%).

La disparition et l'apparition reposent sur la combinaison opacity + visibility : opacity: 0; visibility: hidden au repos, opacity: 1; visibility: visible sur :hover. Les deux propriétés sont déclarées ensemble dans transition: opacity .3s, visibility .3s. visibility masque l'élément aux clics et au lecteur d'écran quand il est invisible ; opacity seule laisserait l'infobulle cliquable même à zéro opacité.

La variante .tooltip-arrow ajoute un gradient indigo-violet linear-gradient(135deg, #6366f1, #8b5cf6), un box-shadow coloré, et une flèche triangulaire via le pseudo-élément ::after (technique des bordures CSS : border-color: #8b5cf6 transparent transparent). Elle anime aussi transform pour une montée de 5 px sur l'apparition (translateY(-5px)), ce qui donne un sentiment de légèreté supplémentaire.

Pour afficher plusieurs infobulles côte à côte, la classe .tooltip-scene fournit un display: flex; gap: 32px; flex-wrap: wrap — chaque bouton reste autonome, aucun JS de coordination n'est nécessaire.

Accessibilité

  • prefers-reduced-motion absent : le code n'inclut pas de règle @media (prefers-reduced-motion: reduce). La transition de 0,3 s reste active même si l'utilisateur a désactivé les animations — à ajouter manuellement si nécessaire (transition: none !important).
  • L'infobulle n'est pas déclenchée au focus clavier : seul :hover est écouté. Les utilisateurs au clavier ne verront pas le contenu. Pour l'accessibilité complète, ajoutez :focus-within .tooltip { opacity: 1; visibility: visible; } ou utilisez l'attribut aria-describedby avec un élément toujours visible.
  • Le texte blanc sur le fond sombre de .tooltip (rgba(30,30,40,.95)) est quasi-noir — contraste excellent, bien au-dessus de 7:1 WCAG AAA.
  • Le texte blanc sur le gradient indigo de .tooltip-arrow (couleur de base #6366f1) affiche un ratio d'environ 5,9:1 — conforme WCAG AA (seuil 4,5:1).
  • L'infobulle n'a pas de rôle ARIA explicite dans le code livré. Pour une accessibilité complète, ajoutez role="tooltip" sur le <span> et aria-describedby sur le déclencheur.

Compatibilité navigateur

Effet 100 % CSS — pas de JavaScript. Compatible partout où CSS Transitions sont disponibles.

Chrome 49+✓ Complet
Firefox 44+✓ Complet
Safari 9+✓ Complet
Edge 16+✓ Complet
Mobile iOS✓ Hover absent — infobulle jamais visible
Android Chrome✓ Hover absent — infobulle jamais visible

Sur mobile (pas de <code>hover</code>), l'infobulle reste masquée. Pour les appareils tactiles, privilégiez un clic ou un <code>focus</code> pour déclencher l'affichage.

Le code

Structure HTML à coller dans votre page (CSS + JS disponibles avec un compte premium) :

index.html — structure
<div class="tooltip-scene">
  <!-- Variante standard : fond sombre neutre -->
  <button class="tooltip-trigger">
    Label
    <span class="tooltip">Texte de l'infobulle</span>
  </button>

  <!-- Variante gradient avec flèche CSS -->
  <button class="tooltip-trigger">
    Label
    <span class="tooltip-arrow">Texte stylisé</span>
  </button>
</div>
🔒 Débloquer le code complet — à partir de 2,99 € le 1er mois

HTML + CSS + JS complet, prêt à coller — avec des centaines d'effets premium.

Personnaliser

Options passées à l'API ou attributs data-* :

Option / propriétéDéfautEffet
transition: opacity .3s 0.3s Durée du fondu — réduisez à 0.15s pour une réactivité immédiate, augmentez à 0.5s pour un effet plus doux.
bottom: calc(100% + 10px) 10px de gap Distance verticale entre l'infobulle et son déclencheur. Augmentez à 16px pour plus d'air, réduisez à 6px pour une infobulle collée.
background (tooltip) rgba(30,30,40,.95) Couleur de fond de la variante standard — remplacez par n'importe quelle couleur brand (ex. rgba(15,23,42,.95) pour navy).
linear-gradient(135deg, #6366f1, #8b5cf6) Indigo → Violet Gradient de la variante .tooltip-arrow — remplacez les deux stops hex pour adapter au design system (ex. #0ea5e9, #06b6d4 pour un thème cyan).
border-color: #8b5cf6 #8b5cf6 Couleur de la flèche CSS (::after) — doit correspondre à la couleur de fin du gradient pour un rendu cohérent.
translateY(-5px) -5px Hauteur de la montée d'apparition sur .tooltip-arrow — mettez -8px pour un effet plus dynamique, 0px pour supprimer le mouvement.
font-size: .85rem .85rem Taille du texte dans les deux variantes. Passez à .8rem pour les infobulles denses (tableaux) ou .9rem pour les infobulles pédagogiques.

FAQ

Par défaut, white-space: nowrap force une seule ligne. Pour autoriser le retour à la ligne, retirez cette règle et ajoutez max-width: 220px sur .tooltip ou .tooltip-arrow — le navigateur gérera les coupures automatiquement.
Non dans le code livré — seul :hover est écouté. Pour les utilisateurs clavier, ajoutez le sélecteur .tooltip-trigger:focus-within .tooltip { opacity: 1; visibility: visible; }. Pour une accessibilité complète, associez role="tooltip" sur le <span> et aria-describedby sur le bouton déclencheur.
Le CSS :hover ne se déclenche pas sur un simple tap sur iOS/Android. La solution la plus légère en JS : au click sur le déclencheur, basculez une classe is-visible qui applique opacity: 1; visibility: visible à l'infobulle, et fermez-la au clic suivant. Aucune dépendance externe requise.