Distorsion✨ Premium

Iridescent Surface

Un anneau fin aux reflets nacrés (rose, orange, turquoise) qui coulent en boucle autour d'un contenu : un mot, un chiffre, une photo de profil.

CSSAnimationOrganic

Mis à jour le

Cet effet fait partie d'Effect.Labs — 840 effets vanilla, une partie gratuite, une partie premium. Distorsion comprend 31 effets, dont 5 gratuits. Découvrir la catégorie →

3 exemples d'usage

Profils connectés dans une appli de rencontres (Lumivelle) — Iridescent Surface exemple 1

① Profils connectés dans une appli de rencontres (Lumivelle)

QuandDans la liste « Près de chez vous », seuls les profils en ligne ont l'anneau irisé autour de leur photo ; les autres gardent un simple contour gris et l'heure de leur dernière visite.
PourquoiLe mouvement des teintes attire l'œil sur les personnes disponibles maintenant, sans badge ni pastille verte de plus.
RéglagesAnneau de 50 px, liseré de 3 px, --irs-inner = couleur de la ligne (#1a1622), fond de racine transparent, avatar de 40 px placé dans .irs-ring à la place du mot.
Minuteur d'une séance de respiration guidée (Halenna) — Iridescent Surface exemple 2

② Minuteur d'une séance de respiration guidée (Halenna)

QuandPendant un exercice de cohérence cardiaque, l'anneau entoure le temps restant ; à côté, la consigne alterne entre « Inspirez » et « Expirez » et une barre montre le cycle en cours.
PourquoiUne boucle lente et régulière accompagne le rythme de la respiration sans le dicter ; le chiffre au centre profite du même dégradé.
RéglagesAnneau de 210 px, liseré de 5 px, mot remplacé par le temps (2,7 rem) suivi d'une ligne « restant ». Le décompte et la consigne sont gérés par la page, pas par l'effet.
Grand anneau de décor derrière un pendentif en nacre (Atelier Quessanthe) — Iridescent Surface exemple 3

③ Grand anneau de décor derrière un pendentif en nacre (Atelier Quessanthe)

QuandSur le haut de page clair d'une créatrice de bijoux, un anneau de 330 px déborde du bord droit et encadre la photo du pendentif ; titre, texte et bouton occupent la gauche.
PourquoiLes reflets qui coulent rappellent l'irisation de la nacre ; agrandi et affiné, l'anneau devient un décor de page plutôt qu'un objet.
Réglages--irs-size: 330px, liseré de 3 px, teintes adoucies (#e07aa8, #e9a65c, #49b9ae), --irs-inner = fond crème #f5f0ea, boucle ralentie à 6 s.

Comment ça marche

La pastille .irs-ring est un disque peint d'un dégradé à 45° (rose #ff0080, orange #ff8c00, turquoise #40e0d0) trois fois plus grand que lui. L'animation irsFlow fait glisser ce dégradé d'un bord à l'autre puis le ramène, en 4 secondes : les teintes semblent couler le long du cercle.

Ce n'est pas un vrai trou : un pseudo-élément ::before recouvre le disque d'une pastille pleine de la couleur --irs-inner, en retrait de --irs-ring (4 px). Il ne reste visible que le liseré. Le centre doit donc avoir la couleur du fond sur lequel l'anneau est posé.

Tout ce que vous placez dans .irs-ring passe au-dessus de cette pastille et reste centré. Le mot fourni, .irs-text (« IRIS »), reprend le même dégradé découpé dans les lettres, animé en sens inverse. C'est du vrai texte dans le HTML : vous le changez sans toucher au CSS.

Accessibilité

  • Texte réel : le mot central est dans le HTML (il était auparavant écrit dans le CSS, hors de portée des lecteurs d'écran). Une photo ou une icône placée au centre garde son propre texte alternatif.
  • Mouvement réduit : avec prefers-reduced-motion: reduce, les deux animations s'arrêtent ; l'anneau et le mot restent affichés avec le milieu du dégradé (mesuré : 4 animations en boucle → 0 pour deux copies).
  • Pas de clignotement : seules les teintes glissent, lentement (4 s par aller-retour), sans variation brusque de luminosité.
  • Contraste : sur le fond par défaut #0a0a0f, les trois teintes du mot atteignent 5,2:1 (rose), 8,5:1 (orange) et 12:1 (turquoise). Sur un fond clair, choisissez des teintes plus sombres.
  • Aucune interaction : rien ne réagit au survol, au clic ni au clavier ; l'anneau ne demande donc aucun équivalent tactile ou clavier.

Compatibilité navigateur

CSS seul, aucun JavaScript. Mesuré dans Chromium 151, Firefox 153 et le WebKit 26.5 de Playwright : 0 erreur, deux copies indépendantes, rien qui déborde à 390 px, animations coupées en mouvement réduit. Version minimale fixée par aspect-ratio (anneau qui reste rond quand il rétrécit).

Chrome 88+✓ Complet (mesuré)
Firefox 89+✓ Complet (mesuré)
Safari 15+✓ Complet (mesuré dans le WebKit de Playwright)
Edge 88+✓ Complet (moteur Chromium)
Safari iOS 15+✓ Complet (même moteur que Safari)
Chrome Android 88+✓ Complet (moteur Chromium)

Sans aspect-ratio, la pastille ne prend que la hauteur de son contenu et l'anneau devient ovale : ajoutez height:var(--irs-size) sur .irs-ring pour les navigateurs plus anciens.

Le code

Structure HTML à coller dans votre page (le CSS + JS sont inclus avec votre achat) :

index.html — structure
<div class="fx-0262-root">
  <div class="irs-ring">
    <span class="irs-text">IRIS</span>
  </div>
</div>

Paiement unique, sans abonnement — le code est à toi pour toujours

Personnaliser

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

Option / propriétéDéfautEffet
--irs-size 250px Diamètre de l'anneau. Il ne dépasse jamais la largeur de son conteneur et reste rond.
--irs-ring 4px Épaisseur du liseré visible.
--irs-c1, --irs-c2, --irs-c3 #ff0080, #ff8c00, #40e0d0 Les trois teintes du dégradé, utilisées par l'anneau et par le mot.
--irs-inner #0a0a0f Couleur de la pastille qui couvre le centre : mettez celle du fond sur lequel l'anneau est posé.
--irs-speed 4s Durée d'un aller-retour des reflets.
--irs-font 1.5rem Taille du mot .irs-text.
--irs-bg et --irs-min-h #0a0a0f et 300px Fond et hauteur minimale de la racine ; transparent et 0 pour poser l'anneau dans votre mise en page.
Contenu de .irs-ring <span class="irs-text">IRIS</span> Remplacez le mot par un chiffre, une photo ronde ou une icône : tout enfant passe au-dessus du centre.

FAQ

Oui. Placez l'image (ronde, un peu plus petite que l'anneau) dans .irs-ring à la place de .irs-text. Elle passe au-dessus de la pastille centrale et l'anneau reste visible autour.
Le centre n'est pas évidé : c'est une pastille de la couleur --irs-inner, sombre par défaut. Donnez-lui la couleur exacte de votre fond (par exemple --irs-inner: #f5f0ea).
Oui : --irs-size: 100% le fait suivre la largeur du conteneur, et sa hauteur suit grâce à aspect-ratio. Pensez à --irs-min-h: 0 pour que la racine n'impose plus 300 px.