Backgrounds✨ Premium

Noise/Grain Texture

Texture grain cinématographique en CSS pur — un pseudo-élément ::after incruste un bruit SVG feTurbulence sur n'importe quelle surface, sans JS ni canvas.

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

Héro noir — Landing page cinématographique — Noise/Grain Texture exemple 1

① Héro noir — Landing page cinématographique

QuandUne section plein écran (film, jeu, documentaire, agence créative) où le fond doit évoquer la pellicule argentique ou le noir profond d'un écran de cinéma.
PourquoiLe grain statique donne de la profondeur à un fond sombre uni sans ajouter de bruit visuel — il fait paraître la surface vivante sans jamais distraire du message.
RéglagesbaseFrequency='0.65', numOctaves='3', opacity: 0.15 (défaut). Fond #0d0d0d pour un noir pur cinéma.
Bloc citation — Magazine numérique avec texture analogique — Noise/Grain Texture exemple 2

② Bloc citation — Magazine numérique avec texture analogique

QuandUne section éditoriale (citation mise en valeur, chapeau d'article, point clé) qui doit se démarquer visuellement du reste de la page sans animation.
PourquoiLa texture grain évoque le papier mat d'un magazine imprimé — elle segmente visuellement le contenu et donne une identité à la section, sans image ni JS.
Réglagesopacity: 0.12 (léger), fond #1c1c2a pour un bleuté éditorial, numOctaves='4' pour un grain plus fin et complexe.
Pochette vinyl — Lecteur audio vintage — Noise/Grain Texture exemple 3

③ Pochette vinyl — Lecteur audio vintage

QuandUn lecteur audio, une carte album ou une vignette de podcast où le visuel doit rappeler la photographie argentique ou le vinyle.
PourquoiUn grain plus appuyé transforme un simple fond coloré en surface quasi-photographique — sans charger le bundle d'un seul pixel d'image externe.
Réglagesopacity: 0.28 pour un grain marqué, baseFrequency='0.55' pour un grain légèrement plus gros (style photo argentique), fond ambré (#1a1200).

Comment ça marche

L'effet repose sur un pseudo-élément ::after positionné en inset: 0 sur le conteneur. Ce pseudo-élément reçoit un background-image pointant vers un filtre SVG encodé en data URI : ni canvas, ni image serveur, ni JS — une seule règle CSS suffit.

L'URI embarque un <filter> SVG avec une primitive <feTurbulence> en mode fractalNoise. Le paramètre baseFrequency='0.65' fixe la granularité (densité proche du grain 35 mm) et numOctaves='3' superpose trois niveaux de détail fractals pour un rendu organique plutôt que mécanique. Un <rect> couvre 100 % du viewport SVG avec ce filtre appliqué.

stitchTiles='stitch' demande au moteur SVG de raccorder les bords de la tuile : le bruit se répète de façon invisible, quelle que soit la taille du conteneur. L'opacity à 0.15 rend le grain très discret — il s'ajoute à la couleur de fond #1a1a2e sans l'écraser. pointer-events: none laisse tous les clics traverser le pseudo-élément.

Aucun JS n'est impliqué, aucun requestAnimationFrame ne tourne — le grain est statique, calculé une seule fois par le moteur de rendu. Le coût CPU après le premier paint est nul. L'effet est compatible avec n'importe quel contenu HTML positionné par-dessus (z-index supérieur).

Accessibilité

  • Pas de prefers-reduced-motion à gérer : l'effet est entièrement statique, aucune animation ne tourne.
  • Le pseudo-élément ::after est invisible aux technologies d'assistance par nature — les lecteurs d'écran ne traversent pas les pseudo-éléments CSS.
  • pointer-events: none est posé sur le calque de grain : aucune interaction n'est capturée, les éléments cliquables sous-jacents fonctionnent normalement.
  • Le texte de démonstration (.bg-label, blanc #fff) sur fond #1a1a2e dépasse le ratio de contraste WCAG AA (4,5:1).
  • L'effet est purement décoratif ; si le conteneur ne porte aucun contenu textuel, ajoutez aria-hidden="true" pour l'exclure explicitement de l'arbre d'accessibilité.

Compatibilité navigateur

Nécessite le support des filtres SVG feTurbulence et des data URI en background-image — disponibles dans tous les navigateurs modernes.

Chrome 87+✓ Complet
Firefox 87+✓ Complet
Safari 14.1+✓ Complet
Edge 87+✓ Complet
Mobile iOS✓ Complet
Android Chrome✓ Complet

Si le navigateur ne supporte pas les filtres SVG en data URI, le <code>::after</code> n'affiche aucune texture — le fond reste <code>#1a1a2e</code>, aucune erreur JS, la page reste fonctionnelle.

Le code

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

index.html — structure
<div class="bg-noise-new" style="width:100%;min-height:300px;">
  <!-- Contenu par-dessus la texture (le conteneur doit être en position relative) -->
  <span class="bg-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
baseFrequency (SVG) 0.65 Granularité du bruit : 0,3 = grain épais (grande pellicule), 0,65 = 35 mm, 0,9 = grain très fin / poussière. Modifiez la valeur dans l'URI SVG encodée.
numOctaves (SVG) 3 Niveaux de détail fractals. 1 = texture plate et uniforme, 4-5 = très organique. Valeurs utiles : 2 (léger), 3 (défaut), 4 (riche).
.bg-noise-new::after { opacity } 0.15 Intensité visible du grain. 0,08 = hint subtil, 0,20 = grain visible, 0,35 = texture pelliculaire marquée.
.bg-noise-new { background } #1a1a2e Couleur de surface sous le grain. Changez-la sans toucher au pseudo-élément — le grain s'applique par-dessus n'importe quel fond ou dégradé.
type (SVG feTurbulence) fractalNoise Mode du bruit SVG. fractalNoise = grain argentique doux. turbulence = motif nuageux plus contrasté, effet horreur ou brutalisme.
viewBox SVG (200 200) 200 200 Taille de la tuile de base avant répétition. Réduire à 100 100 double la taille apparente du grain ; augmenter à 400 400 l'affine davantage.

FAQ

Entièrement statique. La primitive feTurbulence génère un bruit déterministe calculé une seule fois par le moteur SVG — aucun requestAnimationFrame, aucun JS ne tourne. Le grain ne change pas entre deux frames, ce qui lui donne un côté photo argentique plutôt que TV-noise.
Oui. Modifiez .bg-noise-new { background } avec n'importe quelle couleur ou un linear-gradient. Pour un fond clair, réduisez opacity à 0,06–0,10 et envisagez d'ajouter mix-blend-mode: multiply sur le ::after pour un rendu plus naturel sur fond blanc.
Non, grâce à stitchTiles='stitch' dans la primitive SVG. Le moteur calcule le bruit de façon à ce que les bords de la tuile se raccordent — la répétition est imperceptible même sur une bannière plein écran.