Backgrounds✨ Premium

Noise Texture

Grain cinématographique en CSS pur — un pseudo-élément, un filtre SVG feTurbulence inline et toute surface gagne une texture grain sans une ligne de JavaScript.

CSSTextureFilm

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

Hero dark cinéma — Fond texturé plein écran — Noise Texture exemple 1

① Hero dark cinéma — Fond texturé plein écran

QuandUn hero ou une landing page à fond sombre doit sortir de l'ordinaire sans image lourde ni animation.
PourquoiLe grain <code>feTurbulence</code> sur un dégradé sombre donne instantanément la profondeur d'un écran de cinéma argentique — il s'adapte à toute résolution et ne coûte rien en réseau.
RéglagesClasse .bg-noise sur le conteneur hero, baseFrequency='0.8', opacity: 0.12, fond linear-gradient(135deg, #0d0d1a, #1a1a2e).
Carte UI dark premium — Widget de dashboard — Noise Texture exemple 2

② Carte UI dark premium — Widget de dashboard

QuandUne carte produit ou un panneau de statistiques doit évoquer une qualité haut de gamme sans bordure ni ombre excessive.
PourquoiLe grain en overlay sur un fond navy crée un effet « matière » qui différencie les cards premium des zones plates — une couche de texture suffit à changer la perception.
RéglagesClasse .bg-noise-new sur la carte, baseFrequency='0.65', numOctaves='3', opacity: 0.15, fond #1e2a3a.
Section portfolio — Esthétique pellicule argentique — Noise Texture exemple 3

③ Section portfolio — Esthétique pellicule argentique

QuandUne section de portfolio dark, un bloc citation ou un écran de chargement doit afficher l'esthétique d'une revue imprimée.
PourquoiLa texture grain évoque le papier mat ou la pellicule argentique — elle construit une identité visuelle forte sans images de fond, en un seul sélecteur CSS.
RéglagesClasse bg-noise sur <body> pour un overlay position: fixed sur toute la page, baseFrequency='0.9', opacity: 0.08 pour la discrétion.

Comment ça marche

L'effet repose sur un pseudo-élément CSS (::before ou ::after) positionné en position: absolute; inset: 0 sur le conteneur. Sa propriété background-image reçoit un SVG inline encodé en data URI contenant un filtre <feTurbulence> et un <rect> qui l'applique sur toute la surface — le générateur de bruit est entièrement embarqué dans le CSS, sans requête réseau.

Le primitif feTurbulence utilise type='fractalNoise' (bruit de Perlin lissé, plus organique que turbulence). baseFrequency pilote la densité des grains (0,65 → grain large, 0,9 → grain très fin). numOctaves empile des couches de fréquences (3–4) pour enrichir la texture. stitchTiles='stitch' raccorde les bords de la tuile sans couture visible, même sur de grandes surfaces.

Trois variantes coexistent dans le CSS. .bg-noise utilise ::before (fréquence 0,8 / 4 octaves / opacité 0,15). .bg-noise-new utilise ::after (fréquence 0,65 / 3 octaves / opacité 0,15) — pratique quand ::before est déjà occupé par un autre effet. Ajouter bg-noise directement sur <body> génère un overlay position: fixed qui couvre toute la page (fréquence 0,9 / opacité 0,08 / z-index: 0).

L'effet est entièrement statique — aucun requestAnimationFrame, aucun canvas, aucune ligne de JavaScript. Le rendu est délégué au moteur SVG natif du navigateur. Le pseudo-élément porte pointer-events: none sur .bg-noise-new::after et body.bg-noise::after, ce qui garantit qu'il n'intercepte ni les clics ni le toucher.

Accessibilité

  • prefers-reduced-motion : sans objet — l'effet est statique, aucune animation ne tourne. Aucune adaptation de mouvement n'est nécessaire ni présente dans le code.
  • Les pseudo-éléments ::before/::after sont purement décoratifs et invisibles aux lecteurs d'écran ; ils n'émettent aucun nœud dans l'arbre d'accessibilité.
  • Aucun nouvel élément focusable n'est introduit : le grain n'affecte pas la navigation au clavier.
  • Contraste : à opacity 0.08–0.15, le grain n'altère pas significativement le ratio de contraste du contenu placé par-dessus. Vérifier avec un outil de contraste si l'opacité dépasse 0,25.
  • Le pseudo-élément porte pointer-events: none (.bg-noise-new::after, body.bg-noise::after) — les zones cliquables du contenu ne sont pas masquées.

Compatibilité navigateur

Nécessite les pseudo-éléments CSS et les SVG data URI — supportés dans tous les navigateurs modernes depuis plus de dix ans. Zéro dépendance externe.

Chrome 88+✓ Complet
Firefox 87+✓ Complet
Safari 15+✓ Complet
Edge 88+✓ Complet
Mobile iOS✓ Complet
Android Chrome✓ Complet

Si les pseudo-éléments CSS ne sont pas supportés (IE 9 et inférieurs), le fond uni de l'élément s'affiche sans grain — aucune erreur JS, le contenu reste intact.

Le code

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

index.html — structure
<div class="bg-noise">
  <!-- Contenu au-dessus du grain -->
</div>

<!-- Variante ::after (quand ::before est déjà pris) -->
<div class="bg-noise-new">
  <!-- Contenu -->
</div>

<!-- Overlay grain sur toute la page : ajouter la classe sur body -->
<!-- <body class="bg-noise"> -->
🔒 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
baseFrequency (SVG, .bg-noise::before) 0.8 Densité des grains du pseudo-élément principal. < 0,5 = texture grossière type papier, > 1,0 = grain ultra-fin type pellicule.
numOctaves (SVG, .bg-noise::before) 4 Couches de bruit empilées. 2 = grain lisse et uniforme, 5 = texture très détaillée (légèrement plus coûteux pour le rendu GPU).
opacity (.bg-noise::before) 0.15 Intensité visible du grain sur .bg-noise. 0,05 = quasi imperceptible, 0,30 = effet prononcé — ne pas dépasser 0,40 pour conserver la lisibilité.
baseFrequency (SVG, .bg-noise-new::after) 0.65 Variante .bg-noise-new : fréquence plus basse pour un grain plus large, style papier vintage ou surface brossée.
numOctaves (SVG, .bg-noise-new::after) 3 Couches de la variante .bg-noise-new. Réduire à 2 pour un grain très lisse, monter à 4 pour plus de détail.
opacity (body.bg-noise::after) 0.08 Overlay pleine page : très discret par défaut. Monter à 0,12 pour un look cinéma plus marqué — vérifier la lisibilité du contenu.
background (.bg-noise / .bg-noise-new) linear-gradient(135deg,#1a1a2e,#16213e) Fond visible sous le grain — changez la couleur ou le gradient ; le grain s'applique par-dessus n'importe quelle teinte ou image.

FAQ

Oui, l'effet est 100 % CSS. Il n'y a pas la moindre ligne de JS — le navigateur génère le bruit avec son moteur SVG natif (feTurbulence). Vous pouvez l'utiliser dans un email HTML, un générateur de site statique (Astro, Hugo, Eleventy) ou toute UI sans bundler — il suffit de coller le CSS.
Oui. Ajoutez la classe bg-noise sur <body> pour l'overlay page entière (position: fixed, opacity 0,08), et appliquez .bg-noise ou .bg-noise-new sur vos éléments pour un grain plus intense. Les deux pseudo-éléments fonctionnent de façon indépendante et se combinent sans conflit de sélecteur.
Non, grâce à stitchTiles='stitch' dans le filtre SVG : le navigateur recalcule les bords de chaque tuile pour qu'ils raccordent sans couture, même sur de très grandes surfaces. La texture est continue quelle que soit la taille du conteneur.