Backgrounds✨ Premium

Frosted

Glassmorphism réaliste en pur CSS : backdrop-filter, bord lumineux et grain SVG fractal superposé — aucune ligne de JavaScript.

CSSBackdropGrain

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. Backgrounds comprend 50 effets, dont 6 gratuits. Découvrir la catégorie →

3 exemples d'usage

Écran d'accueil — Onboarding premium — Frosted exemple 1

① Écran d'accueil — Onboarding premium

QuandL'utilisateur se connecte pour la première fois ou ouvre un espace personnel — application SaaS, espace client, dashboard mobile.
PourquoiLa carte givrée sur le dégradé animé crée une première impression premium immédiate sans JS ni canvas — l'effet ne requiert qu'un seul <code>div</code> conteneur.
Réglagesblur(20px) pour plus d'épaisseur, fond rgba(255,255,255,.10), dégradé indigo→violet→rose, durée 8 s pour un défilement lent.
Widget métriques — Dashboard analytics — Frosted exemple 2

② Widget métriques — Dashboard analytics

QuandUn tableau de bord SaaS affiche des KPI côte à côte — CA, uptime, NPS, sessions actives.
PourquoiPlusieurs cartes <code>.ng-frosted-glass</code> dans la même <code>.ng-frosted-scene</code> forment un « glassmorphism dashboard » sans CSS supplémentaire : chaque carte hérite automatiquement du flou et du grain.
Réglagesblur(12px), grain opacity: .08 pour un rendu plus discret sur fond sombre, dégradé cyan→bleu profond, animation 10 s.
Lecteur audio — Contrôles flottants sur artwork plein écran — Frosted exemple 3

③ Lecteur audio — Contrôles flottants sur artwork plein écran

QuandUn lecteur audio affiche la pochette album en plein cadre et superpose les contrôles de lecture (titre, artiste, boutons play/suivant) dans une carte givrée.
PourquoiLa carte givrée avec grain SVG flotte sur un fond riche en textures et couleurs saturées simulant une pochette : le grain <code>mix-blend-mode: overlay</code> réagit aux tons sous-jacents, rendant visible ce que <code>backdrop-filter</code> seul ne justifierait pas.
Réglagesblur(24px) pour un verre dense sur fond complexe, grain opacity: .18 accentué pour briller sur les textures d'artwork, border: 1px solid rgba(255,255,255,.28), dégradé violet→rose→orange simulant une pochette expressive, animation 9 s.

Comment ça marche

Le verre givré naît de la combinaison de deux propriétés CSS sur .ng-frosted-glass : backdrop-filter: blur(16px) floute tout ce qui est peint derrière l'élément dans l'ordre de composition, tandis que background: rgba(255,255,255,.08) ajoute la légère opacité laiteuse qui distingue le verre dépoli d'une simple transparence.

La texture de grain — le « Noise » du nom — provient du pseudo-élément ::after : un filtre SVG feTurbulence encodé en data URI génère un bruit fractal avec type="fractalNoise", baseFrequency="0.8" et 4 octaves. Ce grain est composé par mix-blend-mode: overlay à opacity: .12 : il brûle subtilement dans la surface sans écraser les couleurs du fond.

La scène (.ng-frosted-scene) porte un dégradé linéaire à trois teintes dont la position est animée par @keyframes ngFrostedShift — la background-position oscille de 0 50% à 100% 50% en 6 secondes en mode alternate. Ajouter background-size: 200% 200% sur la scène amplifie ce défilement en un vrai glissement chromatique visible.

Le liseré lumineux — border: 1px solid rgba(255,255,255,.15) sur un border-radius: 16px — simule la réflexion spéculaire visible sur du verre givré réel tenu sous la lumière. C'est ce détail qui donne au composant son apparence de matière tangible plutôt que d'une simple surcouche de flou.

Accessibilité

  • prefers-reduced-motion non géré dans le code : l'animation ngFrostedShift tourne sans condition. Sur une page réelle, ajouter @media (prefers-reduced-motion: reduce) { .ng-frosted-scene { animation: none } } pour arrêter le défilement.
  • Le contenu de .ng-frosted-glass (balises h3, p et tout HTML natif) est lisible par les lecteurs d'écran sans balisage supplémentaire — aucun aria-hidden n'est appliqué à tort.
  • Aucune interaction au clavier n'est requise (composant 100 % CSS) — ni tabindex ni gestionnaire de focus à ajouter sur l'effet lui-même.
  • Le contraste texte/fond dépend du gradient animé sous-jacent. Ajouter text-shadow: 0 1px 8px rgba(0,0,0,.5) sur les textes ou abaisser la luminosité du fond (filter: brightness(.85) sur .ng-frosted-scene) si le dégradé contient des tons très clairs.
  • Si la carte .ng-frosted-glass est un composant autonome significatif (modale, alerte, région), lui ajouter role="dialog" ou role="region" et un aria-label descriptif.

Compatibilité navigateur

Repose sur backdrop-filter, les animations CSS et les filtres SVG en data URI — pris en charge dans tous les navigateurs modernes depuis 2022.

Chrome 76+✓ Complet
Firefox 103+✓ Complet
Safari 9+✓ Complet
Edge 79+✓ Complet
Mobile iOS✓ Complet
Android Chrome✓ Complet

Sans support <code>backdrop-filter</code> (Firefox < 103, anciens Android), la carte affiche son fond semi-transparent blanc (<code>rgba(255,255,255,.08)</code>) sans le flou givré — encore lisible et visuellement cohérent.

Le code

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

index.html — structure
<div class="ng-frosted-scene">
  <!-- Arrière-plan : gradient animé (ou image/vidéo en position:absolute derrière) -->

  <div class="ng-frosted-glass">
    <!-- Contenu de la carte : h3, p, button… -->
    <!-- La couche de grain SVG est appliquée automatiquement par ::after -->
  </div>
</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
backdrop-filter: blur(…) blur(16px) Intensité du flou givré. blur(8px) = verre fin et transparent ; blur(28px) = verre épais très dépoli. Au-delà de 30 px, des artéfacts peuvent apparaître sur certains navigateurs.
rgba(255,255,255, .08) — fond .ng-frosted-glass .08 Opacité de remplissage de la carte. Monter vers .18 pour un verre plus opaque ; descendre à .04 pour un verre quasi invisible.
rgba(255,255,255, .15) — border .15 Intensité du liseré lumineux. Entre .10 (discret) et .35 (très marqué) selon le contraste avec le fond.
opacity: .12 — ::after (grain) .12 Intensité de la texture grain. .06 = grain quasi invisible ; .22 = grain photographique prononcé.
mix-blend-mode — ::after (grain) overlay Mode de fusion du grain. overlay = contraste naturel ; soft-light = grain plus doux ; multiply = grain foncé uniquement.
gradient de .ng-frosted-scene linear-gradient(135deg, #06b6d4, #8b5cf6, #ec4899) Couleurs du fond animé. Remplacez par votre palette brand — 2 à 4 teintes suffisent pour un résultat propre.
durée de l'animation (6s) 6s Vitesse du défilement chromatique. 4s = dynamique ; 12s = glissement lent ; animation: none pour un fond fixe sans défilement.
border-radius: 16px 16px Arrondi des coins de la carte. 8px = card moderne ; 24px = bulle arrondie ; 0 = carte pleine largeur angulaire.

FAQ

Oui — l'effet est intégralement en CSS, aucune ligne de JavaScript n'est utilisée. Copiez le HTML et le CSS, c'est immédiatement opérationnel. Compatible avec tous les frameworks front-end (React, Vue, Angular, Svelte) : enveloppez .ng-frosted-scene dans un composant, l'effet ne modifie rien en dehors de ses propres éléments.
Remplacez .ng-frosted-scene par n'importe quel conteneur position: relative; overflow: hidden contenant une image ou une vidéo en position: absolute; inset: 0; object-fit: cover. Placez ensuite .ng-frosted-glass par-dessus avec un z-index supérieur — backdrop-filter floute automatiquement le média peint derrière dans le même contexte d'empilement.
backdrop-filter est pris en charge nativement depuis Firefox 103 (juillet 2022), couvrant environ 94 % des sessions Firefox actives. Sur Firefox < 103, la carte affiche le fond semi-transparent (rgba(255,255,255,.08)) sans flou givré — le composant reste lisible et fonctionnel. Pas de préfixe -webkit- nécessaire pour les cibles modernes.