Texte✨ Premium

Gradient Flow

Fait défiler en continu un dégradé multicolore sur n'importe quel texte — pur CSS, aucun JS, boucle sans saut grâce à l'arrêt de couleur répété.

CSSGradientLoop

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. Texte comprend 56 effets, dont 4 gratuits. Découvrir la catégorie →

3 exemples d'usage

Landing page SaaS — Accroche principale animée — Gradient Flow exemple 1

① Landing page SaaS — Accroche principale animée

QuandSur la landing page d'un produit, quand l'accroche doit capter l'attention immédiatement et signaler une offre différenciante sans animation intrusive.
PourquoiLe gradient qui défile sur un titre en très grande taille attire l'œil sans gêner la lecture ni écraser le CTA. Il fonctionne sur toute la largeur d'un hero, reste harmonieux sur fond sombre et se lit d'un seul coup d'œil.
Réglagesfont-size: clamp(2.5rem, 7vw, 5rem), font-weight: 900, palette alignée sur la charte (ex. violet #8b5cf6 → #06b6d4 → #8b5cf6), durée 4s pour un rythme calme.
Carte de tarification — Label du plan phare — Gradient Flow exemple 2

② Carte de tarification — Label du plan phare

QuandDans un tableau de prix, pour distinguer visuellement le plan premium (Pro, Elite, Business) des offres de base sans alourdir l'UI.
PourquoiUn court label animé (« PRO », « ELITE ») attire l'œil sur la carte à mettre en avant. L'animation reste discrète sur trois caractères et n'écrase pas le prix ni les features adjacentes.
RéglagesPalette dorée (#f59e0b → #fbbf24 → #f97316 → #f59e0b), durée 2s pour un rythme tonique, font-size: 2.5rem, letter-spacing: 0.06em.
Portfolio créateur — Signature de marque vivante — Gradient Flow exemple 3

③ Portfolio créateur — Signature de marque vivante

QuandSur un portfolio ou profil de créateur, artiste ou studio, pour signer son identité avec un prénom ou un nom de marque en gradient animé — là où le mouvement continu renforce l'image sans concurrencer un contenu textuel dense.
PourquoiLe contexte portfolio est conçu pour l'auto-présentation dynamique : la zone signature est isolée, le visiteur s'y attarde et le mouvement permanent devient une marque de fabrique plutôt qu'une distraction. L'effet est le plus spectaculaire sur un ou deux mots courts dans cette position isolée.
RéglagesPalette par défaut (#ff0080 → #ff8c00 → #40e0d0 → #ff0080), durée 3s, font-size: 2.5rem, font-weight: 800 — les valeurs de base de l'effet, qui donnent ici leur pleine mesure sur un nom court.

Comment ça marche

L'effet repose sur background-clip: text (et -webkit-text-fill-color: transparent) : le dégradé est positionné sur le fond de l'élément puis découpé à la forme exacte des glyphes, sans masque SVG ni pixel de canvas. L'arrière-plan de la page transparaît entre les caractères.

Le dégradé est déclaré 3× plus large que l'élément (background-size: 300% 100%). La @keyframes gradientFlowAnim fait glisser background-position de 0% 50% à 300% 50% en 3 s en mode linear, infinite : on parcourt exactement un cycle complet du dégradé à chaque itération, sans saut.

Pour un raccord invisible au bouclage, la première couleur (#ff0080) est répétée en dernier arrêt du linear-gradient. Quand la position revient à 0%, la teinte affichée est identique à celle du dernier pixel de l'itération précédente. Sans cette répétition, un flash de contraste brutal trahit la boucle.

L'effet est 100 % CSS, sans JS ni dépendance. Il s'applique à tout élément texte (<h1>, <span>, <a>, <button>) en ajoutant les deux classes ou en copiant directement les propriétés. Plusieurs instances sur la même page tournent indépendamment via la même @keyframes, sans conflit.

Accessibilité

  • prefers-reduced-motion absent : aucune media query n'interrompt l'animation quand l'OS signale une préférence réduite. Pour corriger, enveloppez la règle d'animation dans @media (prefers-reduced-motion: no-preference) { .text-gradient-flow { animation: … } }.
  • Contraste non garanti hors fond sombre : les couleurs par défaut (rose #ff0080, orange #ff8c00, turquoise #40e0d0) passent WCAG AA sur fond #0a0a0f, mais le ratio varie avec chaque arrêt — testez votre palette avec un outil de contraste avant de déployer sur fond clair ou saturé.
  • Pas d'attribut ARIA dans la structure minimale : l'élément texte reste dans le flux normal et est lu tel quel par les lecteurs d'écran. S'il est purement décoratif, ajoutez aria-hidden="true".
  • Aucune interaction clavier ni gestion de focus par l'effet : si le texte est un lien ou un bouton, définissez :focus-visible indépendamment.
  • L'animation ne produit ni clignotement ni flash (translation de fond continue, < 3 Hz) — elle respecte WCAG 2.3.1.

Compatibilité navigateur

Nécessite background-clip: text (CSS4) et -webkit-text-fill-color. La syntaxe shorthand background: … / 300% 100% text (clip en fin de valeur) requiert Chrome 116+ / Edge 116+ / Safari 16.4+ / Firefox 122+.

Chrome 116+✓ Complet
Firefox 122+✓ Complet
Safari 16.4+✓ Complet
Edge 116+✓ Complet
Mobile iOS 16.4+✓ Complet
Android Chrome✓ Complet

Sur les navigateurs plus anciens, <code>background-clip: text</code> est ignoré : le texte s'affiche avec sa couleur CSS héritée (blanc par défaut sur fond sombre). Aucun crash JS, la page reste lisible. Pour une compatibilité élargie, utilisez les propriétés longhand avec <code>-webkit-background-clip: text</code> et <code>-webkit-text-fill-color: transparent</code>.

Le code

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

index.html — structure
<div class="demo-preview">

  <!-- Texte avec dégradé animé -->
  <span class="demo-text text-gradient-flow">
    Votre texte ici
  </span>

</div>

<!-- Sans wrapper : directement sur n'importe quel élément -->
<h1 class="demo-text text-gradient-flow">Titre animé</h1>
🔒 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 du dégradé #ff0080, #ff8c00, #40e0d0, #ff0080 Modifiez les arrêts dans linear-gradient(90deg, …). Le 1er et le dernier arrêt doivent être identiques pour une boucle sans saut visible.
background-size: 300% 300% Largeur du dégradé par rapport à l'élément. Augmentez à 400–600% pour un cycle plus long avec plus de couleurs intermédiaires et des transitions plus douces.
animation-duration (3s) 3s Durée d'un cycle complet. 2s = rapide et énergique ; 6s = lent et élégant. Adaptez à l'ambiance visuelle de la page.
animation-timing-function (linear) linear linear pour un défilement régulier (recommandé en boucle infinie). ease-in-out crée un léger effet de pulsé — plus visible mais non linéaire au bouclage.
animation-direction (normal) normal Passez à reverse pour inverser le sens du défilement (droite → gauche). Utile pour créer un effet miroir entre deux éléments voisins.
font-size: 2.5rem 2.5rem Taille du texte sur .demo-text. L'effet est plus spectaculaire à grande taille (≥ 2rem) ; sur des textes petits ou fins, les couleurs du dégradé pâlissent visuellement.
font-weight: 800 800 Graisse sur .demo-text. Les graisses élevées (700–900) maximisent la surface de remplissage et rendent les couleurs plus intenses sur des fontes larges.

FAQ

Oui — ajoutez les classes demo-text text-gradient-flow à chaque élément. Étant 100 % CSS, chaque instance tourne indépendamment via la même @keyframes gradientFlowAnim ; aucun JS à initialiser, aucun conflit entre instances.
C'est la clé d'une boucle sans saut : quand background-position revient à 0%, la teinte affichée est identique à celle du dernier pixel de l'itération précédente. Sans cette répétition, un flash de contraste brutal trahit le bouclage — visible surtout à vitesse rapide.
background-clip: text laisse le fond de la page transparaître à travers les glyphes — il n'y a pas de fond de remplissage, seulement les couleurs du dégradé sur les caractères. Sur fond blanc, les couleurs par défaut (rose, orange, turquoise) restent visibles mais le contraste WCAG AA n'est pas garanti — testez votre palette avec un outil de contraste avant de déployer.