Backgrounds✨ Premium

Gradient Wave

Un dégradé diagonal de 4 teintes se déplace en boucle sur une surface 4× plus large que le conteneur — pur CSS, zéro dépendance.

CSSGradientSmooth

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

Landing plein écran — Hero SaaS — Gradient Wave exemple 1

① Landing plein écran — Hero SaaS

QuandPremière section d'une landing page ou d'une app marketing où le dégradé animé remplace une image hero et couvre toute la hauteur du viewport.
PourquoiLa grande surface laisse la vague diagonale se déployer sur plusieurs secondes avant de se répéter — l'effet est fluide et cinématique, sans jamais distraire du texte posé par-dessus grâce à un scrim léger.
RéglagesDurée 20 s pour un rendu calme, couleurs remplacées par la palette brand (ex. #0ea5e9, #6366f1, #a855f7), background-size: 400% 400% conservé.
En-tête de carte tarifaire — Section Pricing — Gradient Wave exemple 2

② En-tête de carte tarifaire — Section Pricing

QuandLa zone supérieure d'une pricing card affiche le nom du plan et le prix sur un fond animé, les détails (liste de fonctionnalités, CTA) restant sur fond sombre sous la carte.
PourquoiLimiter le dégradé à l'en-tête (~120 px de hauteur) crée une hiérarchie visuelle forte — le plan est immédiatement identifiable par sa couleur — tout en gardant une charge visuelle légère sur le reste de la page.
RéglagesDurée 12 s pour une animation plus vive sur un composant compact, angle changé en 120deg pour une direction montante, couleurs réduites à 3 arrêts brand.
Hero e-commerce — Lancement de collection capsule — Gradient Wave exemple 3

③ Hero e-commerce — Lancement de collection capsule

QuandUne page produit ou une landing de collection utilise le dégradé diagonal en fond plein écran : nom de la collection et CTA centrés par-dessus — aucune image ni vidéo requise.
PourquoiLa surface totale 540×360 et le <code>background-size: 400% 400%</code> laissent la vague traverser l'intégralité du cadre sur plusieurs secondes avant de se répéter ; le mouvement en boucle fluide de 18 s anime la page sans aucun asset externe et renforce l'impression premium.
RéglagesDurée 18 s pour un glissement régulier et perceptible, background-size: 400% 400% conservé, palette resserrée sur 3 arrêts profonds (ex. #312e81, #7c3aed, #be185d) pour un rendu élégant orienté mode.

Comment ça marche

Le principe repose sur une seule propriété animée : background-position. Le dégradé est déclaré en linear-gradient(-45deg, …) — direction diagonale bas-gauche → haut-droit — avec quatre arrêts de couleur (indigo #6366f1, violet #8b5cf6, fuchsia #d946ef, cyan #06b6d4). Un background-size: 400% 400% étend la surface peinte à 4× la largeur et 4× la hauteur de l'élément : le navigateur dispose d'une large palette à faire défiler.

Le @keyframes gradientWave déplace cette surface de 0 50% à 100% 50% puis revient à 0 50% en 15 secondes. L'axe Y reste fixe à 50 % : seul l'axe X oscille, ce qui maintient la diagonale centrée verticalement et évite toute dérive perceptible. La fonction ease donne une accélération naturelle à chaque extrémité du balancement.

Parce que le dégradé est diagonal (−45°) et que la surface défilée couvre ¾ de la largeur totale (de 0 % à 100 % d'un fond 4× plus large), chaque teinte traverse l'écran en diagonale à tour de rôle, donnant l'impression d'une vague colorée continue. Modifier l'angle (135deg inverse la direction), le nombre d'arrêts ou le background-size change radicalement l'amplitude et la cadence de la vague.

L'animation est entièrement gérée par le thread compositeur du navigateur : aucun JavaScript n'est requis, aucun reflow n'est déclenché. L'élément .bg-wave accepte du contenu overlay — il suffit d'ajouter position: relative via votre CSS pour positionner les enfants en absolu par-dessus le fond animé.

Accessibilité

  • prefers-reduced-motion absent : aucune règle @media (prefers-reduced-motion: reduce) n'est présente dans le CSS fourni — l'animation tourne sur tous les systèmes, y compris ceux qui demandent moins de mouvement. À ajouter soi-même : @media (prefers-reduced-motion: reduce) { .bg-wave { animation: none; } }.
  • L'élément .bg-wave est purement décoratif dans la plupart des usages : ajoutez aria-hidden="true" si aucun de ses enfants n'est destiné aux lecteurs d'écran.
  • Texte superposé et contraste : les tons indigo/violet (#6366f1, #8b5cf6) sur fond animé donnent un contraste texte blanc ≈ 4,6:1 en phase froide — mais le cyan clair (#06b6d4, luminosité ≈ 52 %) descend sous 3:1. Un scrim semi-transparent derrière le texte garantit WCAG AA quelle que soit la phase de l'animation.
  • Pas d'interactivité native : aucun élément focusable dans l'effet, aucune gestion clavier requise pour le fond seul.
  • Si .bg-wave couvre la zone principale de la page (hero), envisagez role="region" et un aria-label descriptif pour les lecteurs d'écran.

Compatibilité navigateur

CSS linear-gradient, background-size et @keyframes sont supportés dans tous les navigateurs modernes depuis 2013. Aucun préfixe vendeur requis.

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

Si les animations CSS sont désactivées ou non supportées, <code>.bg-wave</code> affiche le dégradé statique en position <code>0 50%</code> (dominante indigo/violet). Aucune erreur JS, aucune ressource réseau requise.

Le code

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

index.html — structure
<div class="bg-wave">

  <!-- Contenu overlay optionnel -->
  <!-- Ajouter position:relative au sélecteur .bg-wave dans votre CSS -->
  <!-- pour positionner les enfants par-dessus le fond animé.          -->

  <span class="bg-label">Votre texte centré</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
animation-duration sur .bg-wave 15s Vitesse du cycle complet. 8 s = dynamique, 25 s = calme et quasi-statique à la lecture.
Angle dans linear-gradient -45deg Direction de la diagonale. 135deg inverse le sens du défilement ; 90deg donne une vague horizontale pure.
Arrêts de couleur dans linear-gradient #6366f1, #8b5cf6, #d946ef, #06b6d4 Palette de la vague. 3 couleurs = transitions plus douces, 5+ = kaléidoscope. Collez votre palette brand.
background-size sur .bg-wave 400% 400% Amplitude du panoramique. 200% = vague courte et marquée, 600% = glissement très progressif.
animation-timing-function sur .bg-wave ease linear supprime l'accélération pour un défilement régulier ; ease-in-out accentue les pauses aux extrémités.
background-position Y dans les keyframes 50% Décalage vertical de la vague. 0% ou 100% révèle les bords haut/bas du dégradé étendu — crée un léger mouvement vertical complémentaire.

FAQ

Non, Gradient Wave est 100 % CSS — aucun script, aucune dépendance npm. Copiez le bloc @keyframes gradientWave et la règle .bg-wave dans votre feuille de style, ajoutez la classe à votre div, et c'est prêt. Compatible avec tous les frameworks (React, Vue, Svelte, Angular) et les générateurs de sites statiques.
Ajoutez position: relative à .bg-wave, puis insérez vos enfants en position: absolute ou dans un flux normal. Pour garantir le contraste à toutes les phases de l'animation, ajoutez un scrim (ex. background: linear-gradient(to bottom, rgba(0,0,0,0.55), rgba(0,0,0,0.20)) en position: absolute; inset: 0 avec z-index: 1) et placez le texte en z-index: 2.
Non. Animer background-position sur un dégradé CSS déclenche uniquement l'étape de composite du navigateur — aucun reflow, aucun repaint du DOM. La charge GPU est négligeable même sur mobile. Pour les utilisateurs ayant activé Réduire le mouvement, ajoutez @media (prefers-reduced-motion: reduce) { .bg-wave { animation: none; } } : le dégradé reste visible, statique.