Glassmorphism✨ Premium

Frosted Aurora

Trois rubans d'aurore — vert, bleu, violet — dessinés en canvas comme des ondes sinusoïdales additionnées en mode lighter, adoucis par un flou CSS de 22 px, qui ondulent sans fin derrière un panneau de verre dépoli (flou 16 px, saturation 150 %) ; une seule image fixe si l'utilisateur réduit les animations.

Canvasbackdrop-filterAurora

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

Réserver une nuit en cabane de verre en Laponie — site d'une agence de voyage nordique — Frosted Aurora exemple 1

① Réserver une nuit en cabane de verre en Laponie — site d'une agence de voyage nordique

QuandPage du séjour : l'aurore ondule au-dessus de la forêt et de la coupole éclairée, la carte de verre donne les dates, le prix et le bouton de réservation.
PourquoiOn vend l'aurore : la voir bouger derrière le verre fait la promesse du voyage mieux qu'une photo, et le dépoli garde les chiffres lisibles sans cacher le ciel.
RéglagesPanneau de 296 px en haut à gauche, texte aligné à gauche ; ciel étoilé net sous le canvas (les étoiles deviennent des halos derrière le verre) ; forêt d'épicéas et coupole de verre éclairée au premier plan, entre le canvas et le panneau ; rubans accélérés ×3 dans la scène (facteur de vitesse du script) pour que le mouvement se lise sur la capture.
Écran d'attente avant le set d'un DJ ambient — salle de concert — Frosted Aurora exemple 2

② Écran d'attente avant le set d'un DJ ambient — salle de concert

QuandÉcran de la salle avant l'ouverture : le nom de l'artiste, l'heure de passage et la consigne d'écoute, l'aurore qui bouge lentement derrière.
PourquoiLe mouvement lent et lumineux convient à une musique ambient, et le texte reste fixe derrière le dépoli : lisible de loin, sans rien qui clignote.
RéglagesPanneau centré de 340 px, nom en 40 px graisse 200 espacé de 0,24 em ; lignes verticales fines sous le canvas pour donner de la matière au flou ; rubans accélérés ×3 pour la capture — sur un vrai écran de salle, gardez la vitesse d'origine.
Page de don d'une association de recherche polaire — Frosted Aurora exemple 3

③ Page de don d'une association de recherche polaire

QuandFormulaire de don sur fond d'aurore : trois montants, la réduction d'impôt calculée, don ponctuel ou mensuel, la station de recherche sur la banquise au premier plan.
PourquoiLe fond rappelle le terrain de recherche que le don finance ; le verre garde le formulaire lisible, et le repli de transparence réduite le rend plein pour qui le demande.
RéglagesPanneau de 262 px à droite ; montants en grille de trois, montant choisi en blanc plein ; banquise découpée en clip-path: polygon() au premier plan ; rubans accélérés ×3 pour la capture.

Comment ça marche

Deux couches dans une scène en 16/10 (.fa-scene, coins de 14 px, fond #05060f). Dessous, un <canvas class="fa-canvas"> qui occupe toute la scène. Au-dessus, le panneau .fa-glass : min(70%, 320px) de large, coins de 22 px, dégradé blanc de 14 % à 4 %, liseré blanc à 25 %, backdrop-filter: blur(var(--fa-blur, 16px)) saturate(150%), ombre portée et reflet intérieur, texte centré à ombres portées. Le flou de 16 px est fort : derrière le panneau, l'aurore n'est plus qu'une lumière diffuse, c'est le « dépoli ».

Le script dessine trois rubans. Chacun a une couleur (60,220,170, 90,150,255, 180,110,255), une hauteur (42, 52 et 60 % de la scène), une amplitude (10, 13 et 9 %), une fréquence (2,1, 1,6 et 2,6 ondes sur la largeur) et une vitesse (0,18, 0,13 et 0,22 radian par seconde). Pour chaque image, il trace le bord haut du ruban comme une sinusoïde par pas de max(6, largeur ÷ 48) px, revient par un bord bas décalé de 22 % de la hauteur, et remplit d'un dégradé vertical transparent → 55 % → transparent. Les trois rubans sont additionnés (globalCompositeOperation = "lighter") : là où vert et bleu se croisent, la lumière s'éclaircit comme une vraie aurore. Les vitesses différentes font que la figure ne se répète presque jamais ; à ces vitesses, une ondulation complète prend 29 à 48 s, un mouvement lent, presque imperceptible d'une seconde à l'autre.

Le flou des rubans est un filter: blur(22px) CSS posé sur le canvas, et pas un ctx.filter dans le dessin : WebKit ignore ctx.filter sans erreur — mesuré dans WebKit 26 (moteur de Safari), on n'obtiendrait que trois bandes ondulées à bords nets au lieu d'une aurore. En CSS, le rendu est le même dans Chromium, l'aurore est douce dans WebKit, et Firefox n'a pas à recalculer le flou dans le canvas à chaque image (sans écran, 23 images par seconde avec ctx.filter, 121 avec le filtre CSS). Changer la taille d'un canvas l'efface : en mouvement réduit, le gestionnaire de redimensionnement redessine donc l'image fixe. Quand l'utilisateur demande moins de transparence, ou si le navigateur ne connaît pas backdrop-filter, le script ajoute .fa-solid à la scène ; -webkit-backdrop-filter sert Safari avant la version 18. Le script lance une boucle par .fa-canvas, chacune à sa taille : plusieurs aurores cohabitent dans une page (retirez les id faScene et faCanvas en dupliquant le bloc). Une variante plus ancienne de cette aurore existe aussi dans la catégorie.

Accessibilité

  • Mouvement réduit : sous prefers-reduced-motion, le script dessine une seule image (temps 0) et ne lance pas la boucle — mesuré, deux relevés du canvas à une seconde d'écart sont identiques. L'aurore reste visible, figée, y compris après un redimensionnement de la fenêtre (un téléphone qui pivote) : le script redessine alors l'image fixe, mesuré dans Chromium et Firefox.
  • Transparence réduite et absence de flou : le script pose .fa-solid quand prefers-reduced-transparency: reduce répond ou quand ni backdrop-filter ni sa forme préfixée ne sont connus. Mesuré sous émulation dans Chromium : panneau plein #11142a, liseré à 40 %, aurore baissée à 35 % d'opacité. Firefox 153 et WebKit 26 ne connaissent pas encore ce réglage de transparence.
  • Contraste : sur ce fond sombre, le texte blanc tient bien. Sans ses ombres portées, mesuré sur le panneau à six instants : 8,81:1 en valeur médiane, 3,18:1 sur la zone la plus claire, quand le ruban vert passe derrière. Le texte de 13 px passe donc sous 4,5:1 par endroits : gardez les ombres (text-shadow à 55 %) ou montez le dégradé du panneau à 25 % de noir.
  • Sémantique : le canvas est décoratif — ajoutez-lui aria-hidden="true" pour qu'il ne soit pas annoncé comme une image vide. Le panneau est un div avec un h3 et un paragraphe : remplacez-les par la structure réelle de votre contenu (formulaire, lien, titre de page).

Compatibilité navigateur

Canvas 2D + CSS (filter, backdrop-filter) + 2,1 Ko de JavaScript, aucune dépendance. Mesuré dans Chromium 151, Firefox 153 et WebKit 26 : mêmes rubans, même animation, même image figée sous mouvement réduit ; aurore douce partout grâce au flou en CSS. Le dépoli du panneau s'affiche dans les trois (capture d'écran réelle pour Firefox et WebKit, dont les captures automatiques n'affichent jamais backdrop-filter). Le canvas est dimensionné à la taille de la scène au chargement et à chaque redimensionnement de la fenêtre, sans tenir compte de la densité de l'écran : sur un écran Retina il est agrandi deux fois, ce que le flou de 22 px rend invisible.

Chrome 76+✓ Complet
Firefox 103+✓ Complet
Safari 13+✓ Complet (préfixe -webkit-)
Edge 79+✓ Complet
Mobile iOS 13+✓ Complet
Android Chrome 76+✓ Complet

Sans backdrop-filter, le script pose .fa-solid : panneau plein bleu nuit, aurore atténuée derrière, texte toujours lisible. Sans JavaScript, le canvas reste vide et la scène garde son fond #05060f : le panneau reste lisible sur un fond uni, sans aurore. Sans filter CSS (navigateurs très anciens), les rubans s'affichent à bords nets.

Le code

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

index.html — structure
<div class="demo-preview">
  <div class="fa-scene">
    <canvas class="fa-canvas"></canvas>
    <div class="fa-glass">
      <h3>…</h3>
      <p>…</p>
    </div>
  </div>
</div>
Débloquer le code complet — 9,90 € TTC/mois

Le code complet HTML + CSS + JS de Frosted Aurora, 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
Vitesse (JS — i(o, (r - n) / 1e3 * 1)) × 1 : une ondulation en 29 à 48 s Remplacez * 1 par * 3 pour une aurore vivante (c'est le réglage des scènes), * 0.5 pour un fond presque immobile.
Couleurs des rubans (JS — color: "60,220,170"…) vert, bleu, violet Trois composantes rouge, vert, bleu sans espace. Pour une aurore rose : "255,110,170". En mode lighter, deux couleurs complémentaires qui se croisent virent au blanc.
Forme des rubans (JS — y, amp, freq, spd, phase) hauteurs 0,42 / 0,52 / 0,6, amplitudes 0,1 / 0,13 / 0,09 y place le ruban (0 = haut), amp règle la hauteur des vagues, freq leur nombre sur la largeur. Ajoutez un quatrième objet au tableau pour un quatrième ruban.
Épaisseur des rubans (JS — l = .22 * i) 22 % de la hauteur de la scène 0,12 donne des voiles fins, 0,35 des nappes larges qui couvrent la scène.
Flou de l'aurore (CSS — .fa-canvas { filter: blur(22px) }) 22px 12 px laisse voir les crêtes des vagues, 40 px fond les rubans en lueur. Le flou CSS est calculé par la carte graphique, pas par le script.
Dépoli du panneau (CSS — --fa-blur) 16px 8 px laisse deviner les rubans derrière le texte, 24 px n'en garde que la couleur. La variable sert aux deux déclarations, avec et sans préfixe.
Repli opaque (CSS — .fa-scene.fa-solid) panneau #11142a, aurore à 35 % Pour forcer le repli sur une page précise (impression, mode économie), ajoutez vous-même fa-solid à .fa-scene.

FAQ

Le script redessine le canvas à chaque image tant que la page est ouverte, même si la scène est hors de l'écran — les navigateurs ne suspendent la boucle que dans un onglet en arrière-plan. Chaque image trace trois polygones de quelques dizaines de points : c'est léger, et le flou, en CSS, est appliqué par la carte graphique au lieu d'être recalculé dans le canvas. Sur une page longue, arrêtez la boucle quand la scène sort de l'écran avec un IntersectionObserver qui bascule un drapeau lu au début de chaque image.
Le canvas prend la taille de la scène au chargement et ne la recalcule que sur l'évènement resize de la fenêtre. Si la scène change de largeur sans que la fenêtre bouge (barre latérale, onglets, accordéon), le dessin est étiré. Remplacez window.addEventListener("resize", t) par un ResizeObserver sur le canvas : new ResizeObserver(t).observe(r).
Aurora Glass est une version plus ancienne, en CSS seul, sans page dédiée : trois grands dégradés deux fois plus grands que la scène, floutés à 40 px, dérivent et tournent sur des boucles de 10, 12 et 14 s sous une carte de verre. Frosted Aurora dessine ses trois rubans dans un canvas : des vagues sinusoïdales qui ondulent en continu, floutées à 22 px. Elle tient compte de deux réglages de l'utilisateur qu'Aurora Glass ignore : une image fixe s'il réduit les animations, un panneau opaque s'il réduit la transparence — et son flou porte aussi la forme -webkit- pour Safari avant 18. Préférez Frosted Aurora pour une aurore qui ondule vraiment ; Aurora Glass reste plus léger si vous voulez zéro JavaScript.