BackgroundsGratuit

Mesh Gradient

Six gradients radiaux en CSS pur qui dérivent lentement sur un fond sombre et se fondent en une nappe de couleur organique — aucun JavaScript requis.

CSSGradientOrganic
Mesh
Survolez ou cliquez la scène pour interagir

Cet effet est gratuit — la catégorie Backgrounds en contient 50 au total, dont 6 gratuits. Effect.Labs regroupe 811 effets vanilla. Découvrir la catégorie →

Exemples d'usage

Plateforme développeur nouvelle génération

Créez des produits plus intelligents,
plus vite que jamais

Une plateforme ouverte combinant IA, automatisation et analytics temps réel — sans dépendance.

① Page d'accueil dark-mode — fond héro plein écran

QuandUne app SaaS, une bibliothèque open-source ou un portfolio créatif a besoin d'un fond animé pour habiller toute la surface visible au-dessus de la ligne de flottaison.
PourquoiLes six halos couvrent chaque coin du viewport et leur dérive lente (20 s) anime la page sans attirer l'attention sur elle-même. Un scrim léger suffit à rendre l'overlay texte lisible sur n'importe quelle zone du fond.
RéglagesDurée 30 s pour un déplacement cinématique ; couleurs ajustées à la palette brand (ex. bleu nuit + violet profond + cyan) ; transparent 45% pour resserrer les halos et accentuer les intersections sombres.
Qui nous sommes

Nous façonnons des expériences
digitales qui marquent

Studio créatif à la croisée du design et de la technologie, basé à Paris depuis 2017.

80+ Projets
7 Ans
24 Clients
A
M
C
Rencontrer l'équipe →

② Section « À propos » plein écran — studio créatif

QuandUn studio de design, une agence digitale ou un cabinet de conseil ouvre sa page « À propos » avec une grande zone sombre sur laquelle reposent identité, valeurs et portraits d'équipe.
PourquoiSur une surface plein écran, les six halos couvrent chaque quadrant et leurs trajectoires croisées incarnent l'identité créative mieux qu'une image fixe. La dérive lente (25 s) donne vie à la page sans jamais concurrencer le contenu posé dessus.
RéglagesDurée 25 s pour un mouvement imperceptible à la lecture ; palette par défaut (indigo + violet + cyan) ; transparent 50% pour des nappes larges qui se fondent naturellement sur toute la surface.

③ Page de connexion — app SaaS dark mode

QuandUn écran d'authentification plein écran a besoin d'une atmosphère premium sans charger d'images ni de librairies — le mesh gradient est le seul fond, déclaré en CSS pur.
PourquoiLe mélange organique des couleurs remplace l'image hero habituelle tout en restant CSS pur (0 requête réseau, 0 JS). Un formulaire centré sur un fond animé renvoie un sentiment de qualité et de soin que les fonds plats ou les dégradés simples n'atteignent pas.
RéglagesDurée 20 s (défaut) ; palette resserrée (indigo + violet + rose) ; transparent 45% pour des halos plus définis qui soulignent les zones sombres autour du formulaire.

Comment ça marche

Le fond est construit avec une seule propriété background empilant six radial-gradient() définis chacun par une position absolue (at x% y%) : chaque halo part d'une couleur saturée au centre et s'estompe vers le transparent sur 50 % du conteneur. La couleur de base rgb(10, 10, 15), placée en dernier dans le raccourci, joue le rôle de fond de scène — elle est visible aux intersections où tous les gradients sont transparents.

L'animation repose sur @keyframes meshMove, qui anime la propriété background-position des six couches indépendamment. À 0 % et 100 %, les halos occupent leurs positions de départ (0% 0%, 100% 0%…) ; à 50 %, ils basculent vers les positions opposées (100% 100%, 0% 100%…). Ce croisement fait voyager chaque centre de couleur vers le coin opposé, créant un effet de respiration sur un cycle de 20 secondes avec une accélération douce (ease).

Le mélange visuel est entièrement géré par la composition CSS native : les couches de gradients se superposent, les zones transparentes laissent apparaître les couches inférieures et la couleur de base. Aucun canvas, aucun calcul JS — le navigateur gère l'interpolation GPU des positions, ce qui maintient l'animation légère même sur de grandes surfaces.

Accessibilité

  • prefers-reduced-motion : absent du code. L'animation CSS tourne systématiquement, quelle que soit la préférence système. Ajoutez @media (prefers-reduced-motion: reduce) { .demo-preview.bg-mesh { animation: none; } } avant tout déploiement.
  • Le conteneur .bg-mesh n'a pas de role ni d'aria-label — il est purement décoratif. Le contenu textuel à superposer doit être dans un élément frère ou enfant pour rester lisible par les lecteurs d'écran.
  • Le .bg-label (texte « Mesh » centré) est positionné en absolu avec un text-shadow semi-transparent. Aucun ratio de contraste WCAG n'est garanti : le fond est dynamique. À remplacer ou masquer en production.
  • Aucune interaction clavier ou pointeur n'est définie — l'effet est 100 % passif et ne capte pas les événements. L'accessibilité dépend du contenu posé par-dessus.

Compatibilité navigateur

Nécessite les animations CSS (@keyframes) et la syntaxe background multi-couches avec position — supportés dans tous les navigateurs modernes depuis 2013.

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

Sans support des <code>@keyframes</code> (IE 9 et antérieurs) : les six gradients s'affichent statiquement sur la couleur de fond — rendu cohérent, pas d'animation. Sur IE 8, la propriété <code>background</code> multi-couches est ignorée et seule la couleur de base <code>rgb(10, 10, 15)</code> s'affiche.

Le code

Copiez les trois blocs dans votre page. Aucune dépendance.

HTML
<div class="bg-mesh" style="width:100%;min-height:300px;">
  <span class="bg-label">Mesh</span>
</div>
CSS
@keyframes meshMove  {
   
  0%, 100%  {
   background-position: 0% 0%, 100% 0%, 0% 100%, 100% 50%, 0% 100%, 100% 100%;
   }
  50%  {
   background-position: 100% 100%, 0% 100%, 100% 0%, 0% 50%, 100% 0%, 0% 0%;
   }
}

.bg-label  {
   position: absolute;
   top: 50%;
   left: 50%;
   transform: translate(-50%, -50%);
   font-weight: 700;
   font-size: 1.5rem;
   color: white;
   text-shadow: rgba(0, 0, 0, 0.5) 0px 2px 10px;
   z-index: 10;
   }
JavaScript (fx-0051)
// Effet CSS pur — pas de JavaScript nécessaire

Personnaliser

Options passées à l'API ou attributs data-* :

Option / propriétéDéfautEffet
Couleurs des radial-gradient() (dans le CSS) indigo · fuchsia · cyan · violet · indigo · rose Remplacez les 6 valeurs rgb() dans les radial-gradient(). Chaque gradient correspond à une zone du fond — modifiez-les indépendamment pour coller à votre palette brand.
animation-duration (20s) 20s Durée d'un cycle complet dans la propriété animation. 10 s = mouvement perceptible ; 40 s = dérive très lente, quasi imperceptible. Changez uniquement cette valeur dans le raccourci animation.
animation-timing-function (ease) ease Remplacez ease par linear pour un mouvement constant ou cubic-bezier(0.45,0,0.55,1) pour un effet de respiration plus marqué aux extrémités.
Couleur de base (rgb(10, 10, 15)) rgb(10, 10, 15) Dernière valeur du raccourci background : teinte visible aux intersections transparentes. Passez à #fff pour un thème clair — les gradients se comportent différemment sur fond blanc (tons pastel recommandés).
Rayon de chaque gradient (transparent 50%) 50% La valeur 50% dans chaque radial-gradient(…, transparent 50%) contrôle la taille du halo. 30 % = halos distincts et contrastés ; 70 % = nappes larges qui se fondent presque complètement.
animation-play-state running Passez à paused via JS (el.style.animationPlayState = 'paused') pour stopper proprement l'animation — utile pour un bouton Pause ou pour respecter prefers-reduced-motion côté JavaScript.

FAQ

Mesh Gradient nécessite-t-il du JavaScript ?

Non — c'est du CSS pur. Copiez le bloc HTML et le CSS, c'est prêt. Aucune dépendance, aucun bundle. Compatible avec tous les frameworks (React, Vue, Svelte, Angular) : enveloppez le <div class="bg-mesh"> dans un composant, les styles s'appliquent immédiatement sans configuration.

Comment adapter l'effet à un thème clair ?

Remplacez la couleur de base rgb(10, 10, 15) par #ffffff (ou une teinte claire) en fin du raccourci background, puis utilisez des couleurs pastel pour les gradients (rgba() avec haute transparence ou HSL à faible saturation). Sur fond blanc, les gradients transparents se fondent doucement — le rendu change radicalement par rapport au mode sombre.

Peut-on superposer du texte lisible sur le fond animé ?

Oui, à condition d'ajouter un scrim entre le fond et le texte : un <div> en position absolue (inset: 0) avec background: linear-gradient(to bottom, rgba(0,0,0,0.45), rgba(0,0,0,0.25)) suffit. Le texte blanc gagne alors un ratio de contraste WCAG AA fiable, même quand les gradients traversent des zones claires.