Glassmorphism✨ Premium

Glass Notification

Une pile de trois notifications de verre — succès, information, alerte — qui entrent en glissant de 30 px avec 0,15 s de décalage, chacune avec son icône teintée, sa pastille qui pulse et sa croix ; CSS pur, entrée réglée pour ne pas clignoter avant de glisser.

CSSToastUI

Mis à jour le

Cet effet fait partie d'Effect.Labs — 840 effets vanilla, une partie gratuite, une partie premium. Glassmorphism comprend 47 effets, dont 6 gratuits. Découvrir la catégorie →

3 exemples d'usage

Retours d'une imprimante 3D sur le flux caméra — interface d'un atelier de fabrication — Glass Notification exemple 1

① Retours d'une imprimante 3D sur le flux caméra — interface d'un atelier de fabrication

QuandL'opérateur surveille une impression longue : le flux de la caméra occupe l'écran, les messages (couche terminée, filament bas, plateau chaud) s'empilent en verre.
PourquoiLes toasts translucides ne masquent pas la pièce en cours d'impression ; les trois couleurs trient d'un coup d'œil ce qui est normal de ce qui demande d'agir. Posée à droite, la pile laisse la buse et la pièce visibles à gauche.
RéglagesFlux caméra peint en CSS (cadre, plateau en perspective, pièce orange en cours, tête qui va et vient, incrustations REC et horodatage, barre de progression) ; pile de l'effet à droite, toasts de 290 px d'origine ; halos de l'effet masqués, le flux vidéo suffit à colorer le verre ; entrée rejouée toutes les 3,6 s par un script de démonstration, comme si de nouveaux messages arrivaient.
Alertes de vent et de marée sur la carte côtière — appli de voile légère — Glass Notification exemple 2

② Alertes de vent et de marée sur la carte côtière — appli de voile légère

QuandLe chef de base nautique suit son plan d'eau : la carte côtière en fond, les alertes (rafales, renverse de courant, bouée déplacée) arrivent en pile.
PourquoiLa carte reste lisible sous les messages — la côte, le parcours balisé, les flèches de vent ; la pastille qui pulse distingue l'alerte encore active de l'information simple. Le message résolu (bouée replacée) passe en vert, en haut.
RéglagesCarte peinte (côte, isobathes, parcours en pointillés, bouées, flèches de vent animées) ; pile à droite sur la mer, toasts d'origine ; halos masqués ; textes courts pour tenir sur deux lignes en 10,4 px ; entrée rejouée toutes les 3,6 s.
Annonces de quai sur le plan du réseau — appli d'un réseau de tramway — Glass Notification exemple 3

③ Annonces de quai sur le plan du réseau — appli d'un réseau de tramway

QuandLe voyageur suit son trajet : le plan du réseau en fond, les toasts annoncent correspondance confirmée, travaux, rame retardée.
PourquoiLes trois niveaux (succès, info, avertissement) couvrent exactement les messages d'un trajet, et le verre garde le plan visible : les lignes colorées passent floutées sous les toasts sans les rendre illisibles.
RéglagesPlan en mode sombre (trois lignes, stations calculées le long de chaque ligne, position du voyageur qui pulse) ; pile à droite, toasts d'origine, halos masqués ; textes des annonces en deux lignes ; entrée rejouée toutes les 3,6 s.

Comment ça marche

Une colonne .glass-notif-scene de 340 × 200 px (flex, écart de 10 px) qui empile trois .glass-notif de 290 px, posées sur deux halos fixes floutés à 50 px (cyan #22d3ee de 120 px en haut à droite, violet #a855f7 de 100 px en bas à gauche, à 50 % d'opacité). Chaque toast est un blanc à 7 % avec backdrop-filter: blur(20px) et son préfixe -webkit-, bordure blanche à 10 %, coins de 12 px, marges de 12 × 14 px, et trois colonnes : une icône dans un carré de 32 px teinté à 15 % de sa couleur (✓ vert #22c55e, ⓘ cyan #06b6d4, ⚠ ambre #f59e0b), un titre de 12 px graisse 600 et un texte de 10,4 px à 50 % de blanc, et une croix de 20 px. Une pastille de 6 px à la couleur du type, avec son halo, pulse dans le coin haut droit (notifPulse, 2 s, opacité 1 → 0,4 → 1).

L'entrée : notifSlideIn fait glisser chaque toast de 30 px vers la gauche en passant de transparent à opaque, en 0,5 s ease-out. Le premier part tout de suite, les deux autres attendent 0,15 et 0,3 s (délais posés en ligne dans le HTML), ce qui produit la cascade. Au survol, un toast se décale de 4 px vers la droite en 0,3 s (mesuré dans Chromium et Firefox), et la croix s'éclaircit quand on la survole elle-même. L'animation se joue une fois, quand le toast apparaît dans la page : au chargement, ou plus tard si vous l'insérez par script — c'est ainsi qu'une vraie notification arrive.

L'entrée utilise animation-fill-mode: backwards, et ce réglage est le cœur de la cascade. Sans remplissage (none), les toasts 2 et 3 s'afficheraient à pleine opacité pendant leur délai, puis disparaîtraient d'un coup au démarrage de l'animation avant de glisser — mesuré, opacité 1 à 100 ms pour le deuxième et à 250 ms pour le troisième. Avec backwards, chaque toast garde son état de départ (transparent, décalé de 30 px) pendant son délai : opacité 0 aux mêmes instants. Pas both non plus : garder l'état final appliqué après l'animation écraserait le décalage de 4 px du survol (mesuré : survol bloqué à 0 px avec both). Le flou a sa forme -webkit-backdrop-filter pour Safari avant 18. Aucun JavaScript : la croix ne ferme rien (voir la FAQ).

Accessibilité

  • Annonce aux lecteurs d'écran : rien n'est déclaré. Une notification qui apparaît doit être annoncée : placez la pile dans un conteneur role="status" (ou aria-live="polite") présent dès le chargement, et insérez-y les toasts par script ; pour une alerte urgente, role="alert" sur le toast. Les icônes ✓ ⓘ ⚠ sont lues telles quelles : ajoutez aria-hidden="true" et laissez le titre porter le sens (« Succès », « Attention »).
  • Croix de fermeture : un div de 20 px avec « ✕ » à 40 % de blanc — contraste mesuré entre 2,6:1 et 3,1:1, sous le seuil de 3:1 des éléments d'interface, et hors de portée du clavier. Remplacez-la par <button type="button" aria-label="Fermer">, montez sa couleur à 70 % et agrandissez sa zone cliquable à 24 px au moins.
  • Contraste du texte : titres 13,8 à 15,6:1, texte de 10,4 px entre 4,7 et 5,0:1 (mesuré). Le texte passe, mais 10,4 px est petit : 12 px améliore la lecture sans changer la mise en page. La couleur n'est pas seule à porter le type de message : l'icône et le titre le disent aussi.
  • prefers-reduced-motion absent du code : l'entrée glissée et la pulsation des pastilles continuent sous l'émulation. Ajoutez @media (prefers-reduced-motion: reduce) { .glass-notif { animation: none } .glass-notif-dot { animation: none } } : les toasts apparaissent directement, les pastilles restent allumées.

Compatibilité navigateur

CSS seul : backdrop-filter (+ -webkit-), filter: blur(), @keyframes avec animation-fill-mode: backwards et délais en ligne, flexbox. Zéro JavaScript, zéro dépendance. Flou d'arrière-plan : Chrome 76+, Edge 79+, Firefox 103+, Safari 9+ préfixé (préfixe présent dans le code), sans préfixe depuis Safari 18. Mesuré dans Chromium 151 et Firefox 153 : mêmes opacités d'entrée aux mêmes instants (0 → 0,31 → 0,68 → 1), décalage de survol de 4 px, pastilles qui pulsent. Le flou n'est peint que dans les captures de Chromium ; Firefox et WebKit 26.5 sous Playwright le calculent (blur(20px)) sans le dessiner, même sur un test minimal.

Chrome 76+✓ Complet
Firefox 103+✓ Complet (flou non vérifiable en capture automatisée)
Safari 9+✓ Complet (préfixe -webkit- fourni)
Edge 79+✓ Complet
Mobile iOS 9+✓ Complet, décalage de survol au toucher
Android Chrome 76+✓ Complet

Sans flou d'arrière-plan, chaque toast reste un voile blanc à 7 % sur le fond : sur un flux vidéo ou une carte détaillée, le texte se lit moins bien. Prévoyez une teinte plus opaque (rgba(20,22,30,.75)) dans @supports not (backdrop-filter: blur(1px)).

Le code

Structure HTML à coller dans votre page (le CSS + JS sont inclus avec Premium) :

index.html — structure
<div class="demo-preview">
  <div class="glass-notif-scene">
    <div class="glass-notif-orb glass-notif-orb--1"></div>
    <div class="glass-notif-orb glass-notif-orb--2"></div>
    <div class="glass-notif glass-notif--success">
      <span class="glass-notif-dot"></span>
      <div class="glass-notif-icon">✓</div>
      <div class="glass-notif-body">
        <h4>…</h4>
        <p>…</p>
      </div>
      <div class="glass-notif-close">✕</div>
    </div>
    <div class="glass-notif glass-notif--info" style="animation-delay: 0.15s;">…</div>
    <div class="glass-notif glass-notif--warning" style="animation-delay: 0.3s;">…</div>
  </div>
</div>
Débloquer le code complet — 9,90 € TTC/mois

Le code complet HTML + CSS + JS de Glass Notification, prêt à coller — et les 840 effets. Ou 299 € TTC une fois, accès à vie.

Personnaliser

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

Option / propriétéDéfautEffet
Cascade d'entrée (HTML — style="animation-delay: 0.15s", 0.3s) 0, 0,15 et 0,3 s Gardez animation-fill-mode: backwards (dans le raccourci animation) si vous changez les délais : sans lui, un toast en attente s'affiche plein avant de glisser. Pour un toast ajouté seul par script, supprimez le délai.
Glissement (CSS — @keyframes notifSlideIn { 0% { transform: translateX(30px); opacity: 0 } }) 30 px depuis la droite, 0,5 s ease-out Pour une pile en haut de l'écran, entrez par le haut (translateY(-16px)) ; pour une pile à gauche, translateX(-30px) et un survol en translateX(-4px).
Types de message (CSS — .glass-notif--success, --info, --warning) vert #22c55e, cyan #06b6d4, ambre #f59e0b Chaque type règle la teinte de l'icône (fond à 15 %, bordure à 20 %) et la pastille. Ajoutez un type erreur sur le même modèle : .glass-notif--error .glass-notif-icon { background: rgba(239,68,68,.15); border-color: rgba(239,68,68,.2) } et sa pastille en #ef4444.
Pastille (CSS — .glass-notif-dot, notifPulse 2s) 6 px, opacité 1 → 0,4, 2 s, sur les trois toasts Réservez la pulsation aux messages qui demandent une action : .glass-notif--success .glass-notif-dot { animation: none }. Une pastille qui pulse sur tout ne distingue plus rien.
Verre (CSS — background: rgba(255,255,255,.07), backdrop-filter: blur(20px)) blanc à 7 %, 20 px Sur un flux vidéo clair ou une carte lumineuse, passez à rgba(20,22,30,.45). Montez le flou à 28 px au-dessus d'un fond très détaillé (plan, texte).
Largeur et position de la pile (CSS — .glass-notif { width: 290px }, .glass-notif-scene) 290 px, colonne centrée de 340 × 200 px En application, placez la colonne en position: fixed; right: 16px; top: 16px avec height: auto, et laissez les halos de côté : la page derrière colore le verre.

FAQ

Le code vendu ne contient aucun JavaScript : la croix ne fait rien et les trois toasts sont écrits dans le HTML. Pour ajouter un message, clonez un .glass-notif et insérez-le dans la colonne : l'animation d'entrée se joue toute seule à l'insertion. Pour fermer, remplacez la croix par un <button> qui retire son toast (btn.closest('.glass-notif').remove()) ; pour une fermeture automatique, un setTimeout de 5 à 8 s sur les messages de succès, jamais sur une alerte. Et pensez au conteneur role="status" pour que l'arrivée soit annoncée.
Parce que c'est la seule valeur qui évite le clignotement sans bloquer le survol. Pendant son délai de 0,15 ou 0,3 s, un toast n'est pas encore animé : avec none, il prend son style normal, pleinement visible, puis l'animation démarre à opacité 0 et décalée de 30 px — il disparaît et revient en glissant (mesuré : opacité 1 à 100 ms pour le deuxième toast, 0 avec backwards). backwards applique l'état de départ pendant le délai. both ferait la même chose, mais garderait aussi l'état final après l'animation, ce qui écrase le décalage de 4 px au survol. Si vous changez l'animation, gardez backwards dans la ligne animation de .glass-notif.
Confirmation interrompt : un voile flou sur toute la zone, une boîte au centre, une question à laquelle il faut répondre. Glass Notification informe sans interrompre : des messages empilés dans un coin, que l'on peut ignorer, et le contenu derrière reste utilisable. Utilisez une notification pour dire ce qui s'est passé ou ce qui arrive, une confirmation seulement pour une décision à prendre.