Backgrounds✨ Premium

Noise Mesh

Dégradé maillé de 5 spots radiaux floutés, animé en CSS pur et recouvert d'une texture feTurbulence — fond organique et texturé sans une seule ligne de JS.

CSSSVGTexture

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

Site de marque artisanale — Hero café de spécialité — Noise Mesh exemple 1

① Site de marque artisanale — Hero café de spécialité

QuandSection hero d'un site e-commerce ou vitrine pour une marque café, cosmétique naturel ou mode indépendante, où la matière et l'authenticité du fait-main sont des valeurs de marque.
PourquoiLa texture feTurbulence sur le dégradé maillé évoque le grain du papier kraft, la toile de jute ou la poudre de café — la matière visuelle renforce le positionnement artisanal sans aucune image externe, là où un fond uni lisse serait contradictoire.
Réglageswidth:100%; height:100vh, border-radius:0 ; palette chaude (terracotta, ambre, ocre, brun) ; blur(36px) ; opacity:.45 sur le grain ; baseFrequency='0.65' dans le SVG pour un grain grossier évoquant le papier.
Affiche de festival numérique — Couverture éditoriale — Noise Mesh exemple 2

② Affiche de festival numérique — Couverture éditoriale

QuandFond pleine surface d'une affiche de festival digital, d'une couverture de magazine en ligne ou d'un header de newsletter premium, où l'effet occupe toute la surface disponible.
PourquoiLa texture feTurbulence n'est lisible et visuellement impactante que sur une grande surface — en pleine page, le grain respire et apporte la profondeur d'une impression offset sans aucun fichier image ; une surface réduite (carte 320×220) étouffe l'effet.
Réglageswidth:100%; height:100%, border-radius:0 ; palette froide (indigo, cyan, émeraude, violet) ; blur(36px) ; opacity:.40 sur le grain ; baseFrequency='0.75' pour un grain fin et serré.
Vignette d'article — Blog ou newsletter — Noise Mesh exemple 3

③ Vignette d'article — Blog ou newsletter

QuandThumbnail ou en-tête d'article sans photo disponible, dans un blog technique ou une newsletter design.
PourquoiLe rendu texturé donne un aspect premium aux contenus sans image — le grain SVG et les couleurs multiples rendent chaque vignette distincte si l'on varie la palette d'un article à l'autre.
Réglages640×400px, border-radius:8px ; animation-duration:20s pour une animation plus douce ; baseFrequency réduit à 0.65 dans le SVG pour un grain plus grossier.

Comment ça marche

Le fond coloré est construit à partir de 5 radial-gradient empilés dans le pseudo-élément ::before, chacun ancré à un point différent (at 30% 20%, at 70% 35%, at 45% 75%, at 80% 70%, at 15% 60%). Ce pseudo-élément déborde de 25 % sur chaque bord (inset: -25%) afin d'éviter les bords nets lors de l'animation. Un filter: blur(28px) fusionne les 5 spots en un dégradé maillé continu.

L'animation @keyframes noiseFloat applique au ::before une combinaison de translate + scale + rotate sur 12 s en mode alternate (aller-retour automatique) — le fond respire en boucle sans accroc ni saut. Seul le pseudo-élément se déplace ; le conteneur et son contenu restent immobiles.

La couche de grain est un <div class="noise-mesh-grain"> positionné en inset:0, z-index:1, qui affiche en fond tuilé (128×128 px) un SVG inline en data URI contenant un filtre <feTurbulence type="fractalNoise" baseFrequency="0.85" numOctaves="4" stitchTiles="stitch">. mix-blend-mode: overlay à opacity: 0.35 le fondent sur le dégradé sans l'écraser — le résultat est une texture organique subtile sans image externe.

L'effet est 100 % CSS, zéro JavaScript. Aucun requestAnimationFrame, aucune dépendance — intégrable dans un composant statique, un e-mail HTML ou un générateur de site statique sans modification.

Accessibilité

  • prefers-reduced-motion : aucune règle présente dans le code — l'animation tourne en permanence. Ajoutez @media (prefers-reduced-motion: reduce) { .noise-mesh::before { animation: none; } } si l'effet couvre une grande surface visible.
  • Aucun aria-hidden ni role="img" sur le conteneur dans le HTML fourni : si le fond est purement décoratif, ajoutez aria-hidden="true" sur .noise-mesh.
  • Le texte .noise-mesh-label (blanc 85 % sur dégradé coloré) a un contraste variable selon la couleur sous-jacente — vérifiez le ratio WCAG AA (≥ 4,5:1) dans votre contexte avant déploiement.
  • L'effet ne contient aucune interaction clavier ni événement souris — aucun focus, aucun gestionnaire d'événements à gérer par les technologies d'assistance.
  • La couche grain porte pointer-events: none — elle ne capture aucun clic et n'interfère pas avec les éléments cliquables superposés.

Compatibilité navigateur

Requiert filter: blur() sur les pseudo-éléments et mix-blend-mode — supportés dans tous les navigateurs modernes depuis 2021.

Chrome 110+✓ Complet
Firefox 110+✓ Complet
Safari 16+✓ Complet
Edge 110+✓ Complet
Mobile iOS✓ Complet
Android Chrome✓ Complet

Sans <code>filter: blur()</code> sur pseudo-éléments (navigateurs très anciens), les 5 spots de couleur s'affichent sans fusion — le rendu est plus dur mais lisible. Si <code>mix-blend-mode</code> est absent, le grain s'affiche en mode <code>normal</code> et voile légèrement le fond sans l'altérer.

Le code

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

index.html — structure
<div class="noise-mesh">
  <div class="noise-mesh-grain"></div>

  <!-- Contenu overlay facultatif -->
  <span class="noise-mesh-label">Votre texte</span>
</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
Couleurs des 5 spots (rgba dans ::before background) rose, bleu, vert, ambre, violet Modifiez les 5 rgba() dans la propriété background du ::before pour adapter la palette à votre identité visuelle. Conservez des opacités entre 0,4 et 0,7 pour que les spots se fondent correctement après le blur.
filter: blur(28px) 28px Contrôle la douceur de la fusion entre les spots. Augmentez (40px+) pour un rendu plus abstrait, réduisez (12px) pour des transitions plus nettes et des couleurs plus distinctes.
animation-duration: 12s (dans animation du ::before) 12s Durée d'un cycle aller (la direction s'inverse automatiquement). 20s = très doux et subtil, 6s = plus dynamique.
opacity: .35 (sur .noise-mesh-grain) 0.35 Intensité de la couche de grain. 0 = sans grain, 0.6 = grain très marqué qui domine le dégradé.
baseFrequency='0.85' (SVG feTurbulence dans background-image de .noise-mesh-grain) 0.85 Granularité de la texture dans le data URI SVG. Autour de 0.5 = grain grossier et visible, 1.2 = grain très fin et serré.
background-size: 128px 128px (sur .noise-mesh-grain) 128px 128px Taille des tuiles de grain. 64px = grain plus fin et répété, 256px = tuile agrandie avec des motifs plus larges.
mix-blend-mode: overlay (sur .noise-mesh-grain) overlay Mode de fusion du grain sur le dégradé. Essayez soft-light pour un effet plus doux ou screen pour un rendu plus lumineux.
border-radius: 16px (sur .noise-mesh) 16px Arrondi du conteneur. 0 = plein écran sans bord, valeur élevée = pilule ; 50% = cercle si width = height.

FAQ

Oui, l'effet est 100 % CSS — aucun script, aucune dépendance npm. Copiez le HTML et le CSS, et c'est immédiatement fonctionnel dans n'importe quel contexte : site statique, e-mail HTML, framework CSS-in-JS ou générateur de site comme Astro ou Next.js.
Modifiez les 5 rgba(r,g,b,.xx) dans la propriété background du ::before. Chaque valeur correspond à un spot ancré à une position différente (at 30% 20%, at 70% 35%…). Conservez des opacités entre 0,4 et 0,7 pour que le blur(28px) fusionne correctement les spots.
Ajoutez @media (prefers-reduced-motion: reduce) { .noise-mesh::before { animation: none; } }. Le dégradé maillé s'affiche alors de façon statique — la texture de grain reste visible, seule l'animation est désactivée.