Trois couches CSS clippées au texte composent une dorure holographique : gradient irisé arc-en-ciel, grain métallique et balayage spéculaire en boucle. Survol = shimmer accéléré.
CSSTypographyHoverHolographic
FOIL✦ PRO
Survolez ou cliquez la scène pour interagir
Cet effet est gratuit — la catégorie Cartes en contient 41 au total, dont 6 gratuits. Effect.Labs regroupe 811 effets vanilla. Découvrir la catégorie →
① Affiche ou générique — Titre de film, album ou événement premium
QuandEn-tête d'une landing page cinéma, musicale ou mode où le titre principal doit marquer visuellement dès la première image.
PourquoiSur des glyphes de grande taille (4–6 rem), le balayage spéculaire traverse toute la largeur des lettres et l'irisé arc-en-ciel devient pleinement lisible — l'effet ne révèle sa richesse que sur du grand texte.
Réglagesfont-size: 5rem, font-weight: 900, letter-spacing: 0.06em, fond #000, --fsh-speed: 4.5s pour un rythme lent et cinématique.
🏆
② Badge de tier — Étiquette « PRO » sur une carte tarifaire
QuandPage pricing ou tableau de fonctionnalités : le badge foil-border identifie le plan premium au premier coup d'œil, sans couleur de fond qui clasherait avec le reste de l'UI.
PourquoiLa variante pastille (.fsh-pill) tient en 2 px de padding et border-radius: 20px — parfaite pour un badge compact (≈ 70 × 28 px) qui ne prend pas la place d'un CTA.
Réglagesfont-size: 0.85rem, letter-spacing: 0.1em, .fsh-inner { background: #0f0c22 } pour coller au fond de la carte premium.
🚀
③ Hero e-commerce luxe — Titre « Édition Limitée » ou lancement de collection
QuandBloc hero d'une page produit capsule, collaboration ou drop limité où la rareté doit être signifiée avant le scroll.
PourquoiL'association grain métallique et irisé or–cyan–violet évoque une impression foil à chaud que ni un text-shadow ni une image statique ne reproduisent. Le shimmer lent renforce la perception de luxe.
Réglagesfont-size: 4rem, --fsh-speed: 5s (rythme lent = sophistication), fond #060610, texte en majuscules avec letter-spacing: 0.08em.
Comment ça marche
L'effet superpose trois background-image sur .fsh-text, tous attachés aux glyphes via background-clip: text et -webkit-text-fill-color: transparent. Cette technique remplace la couleur de texte par un fond rendu à l'intérieur des formes de lettres — sans canvas, sans SVG.
La troisième couche (blend normal) est le gradient irisé à 135° — or → rose → argent → cyan → violet → argent → or — étalé sur 300 % de largeur. La deuxième couche (blend overlay) est un repeating-linear-gradient à 104° de micro-hachures métalliques semi-transparentes (blanc à 7 % et or à 4 %, toutes les 1–4 px) qui simule le grain d'un film métallisé. La première couche (blend screen) est le balayage spéculaire : un biseau blanc translucide à 108° qui traverse le texte et produit l'éclat « hot-stamp ».
L'animation fsh-pan translate background-position en boucle linéaire sur le gradient irisé et le balayage, créant l'illusion d'une lumière qui se déplace sur la surface foil. La durée est pilotée par la variable CSS --fsh-speed (défaut 3.2s), surchargée à 0.7s au survol de .fsh-foil.
La variante pastille ajoute une bordure foil via un linear-gradient de fond sur .fsh-pill (padding 2 px, border-radius: 20px), animé par fsh-pan-border. L'élément .fsh-inner porte un fond sombre qui laisse transparaître uniquement la bordure animée.
Accessibilité
prefers-reduced-motion non géré dans le code fourni — l'animation tourne quelles que soient les préférences système. Ajoutez @media (prefers-reduced-motion: reduce) { .fsh-text { animation: none; } } si votre audience inclut des utilisateurs sensibles au mouvement.
Le texte reste dans le flux DOM normal (<span>) : les lecteurs d'écran lisent le contenu sans accéder au fond CSS.
-webkit-text-fill-color: transparent annule la couleur de secours du navigateur. Si background-clip: text n'est pas supporté, le texte devient invisible. Ajoutez color: gold (ou toute couleur lisible) sur .fsh-text comme repli explicite.
L'effet est purement décoratif et agit uniquement sur la vitesse au survol — aucune information n'est transmise par cet état seul. Convient pour des titres larges, pas pour du texte fonctionnel.
Contraste : sur fond très sombre (#000), les tons or et blanc de l'irisé dépassent 4,5:1 localement, mais la mesure WCAG d'un texte multicolore animé reste complexe. Réserver à des titres larges (≥ 1.5rem), jamais au corps de texte.
Compatibilité navigateur
Nécessite background-clip: text et background-blend-mode — supportés dans tous les navigateurs modernes depuis 2016–2018. Zéro JS, zéro dépendance.
Chrome 63+✓ Complet
Firefox 59+✓ Complet
Safari 8+✓ Complet
Edge 79+✓ Complet
Mobile iOS✓ Complet
Android Chrome✓ Complet
Sans background-clip: text, le dégradé s'affiche en fond derrière le texte (texte opaque coloré). Définissez color sur .fsh-text pour garder le texte lisible dans ce cas.
Le code
Copiez les trois blocs dans votre page. Aucune dépendance.
Variable CSS sur .fsh-foil : durée d'un cycle complet de shimmer. 5s = luxe lent, 1.5s = tech rapide.
--fsh-speed (hover)
0.7s
Vitesse accélérée au survol, définie dans .fsh-foil:hover .fsh-text { --fsh-speed: .7s }. Ajustez cette valeur pour doser l'intensité de la réaction.
gradient irisé (3e layer)
or → rose → argent → cyan → violet
Troisième couche de background-image sur .fsh-text. Remplacez les arrêts de couleur pour une palette argent monochrome, brand, ou arc-en-ciel intégral.
font-size sur .fsh-big
3.2rem
Taille du texte grand. L'effet foil n'est pleinement visible qu'à partir de 1,5 rem ; préférez 3 rem ou plus pour les titres.
background-size (1re valeur, sweep)
350%
Largeur du balayage spéculaire. Augmentez (ex. 500%) pour un balayage plus doux ; réduisez (200%) pour un éclat plus concentré.
.fsh-inner background
rgb(16,16,24)
Fond intérieur de la pastille. Adaptez à la couleur de fond de votre page pour que seule la bordure foil reste visible.
border-radius sur .fsh-pill
20px
Arrondi de la pastille. 20px = pilule arrondie ; 6px = badge quasi-rectangulaire.
FAQ
L'animation fsh-pan n'est pas dans le code fourni — comment l'ajouter ?
La règle @keyframes fsh-pan est absente du snippet. Ajoutez-la dans votre CSS : @keyframes fsh-pan { 0% { background-position: -120% 0, 0 0, 0% 50%; } 100% { background-position: 220% 0, 0 0, 300% 50%; } }. Sans elle, le shimmer reste statique mais le rendu foil de base reste visible.
Peut-on appliquer l'effet à n'importe quelle police ?
Oui — mais le grain et l'irisé ne sont vraiment lisibles que sur des glyphes larges. Préférez des polices bold (700–900) ou des condensed serif. Les polices fines ne montrent qu'une fine ligne irisée. Le rendu est optimal à partir de 3 rem et font-weight: 900.
L'effet fonctionne-t-il sans JavaScript ?
Oui — Foil Shimmer est 100 % CSS. Aucun JS n'est requis pour le shimmer ni pour la bordure foil animée de la pastille. Il s'intègre dans un template statique, un CMS ou un email HTML supportant les animations CSS.