Hover✨ Premium

Shutter Reveal

Un voile coloré (dégradé indigo-violet) recouvre l'élément au repos ; au survol il s'efface en 500 ms et révèle le texte sur fond sombre. Aucun JavaScript, deux pseudo-éléments.

CSSReveal

Mis à jour le

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

3 exemples d'usage

Liens de menu plein écran — navigation hamburger d'un studio créatif — Shutter Reveal exemple 1

① Liens de menu plein écran — navigation hamburger d'un studio créatif

QuandLiens de navigation (Projets, À propos, Services, Contact) dans le menu hamburger ouvert plein écran de Vaulta ; au survol de chaque lien, le volet se soulève et révèle le texte.
PourquoiLe dévoilement progressif dans un menu plein écran transforme une navigation banale en moment de découverte — l'effet Shutter Reveal crée une attente qui rend chaque item mémorable.
RéglagesLiens grands format plein largeur ; couleur d'accent indigo ; fond sombre ; effet sur éléments de grande taille.
Vignette de collection — boutique de mode capsule minimaliste — Shutter Reveal exemple 2

② Vignette de collection — boutique de mode capsule minimaliste

QuandCartes de collection (Printemps 26, Hiver 25, Automne 25) dans la grille boutique de Kalvert Studio ; au survol, le volet opaque se soulève et révèle le nom de la pièce.
PourquoiL'effet Shutter Reveal sur une vignette produit mode mime le geste d'ouvrir un boîte : il crée une micro-interaction précieuse sans surcharger l'interface minimaliste.
RéglagesPetites cartes dans une grille ; fond de couleur unie par collection ; nom de pièce révélé au survol ; esthétique fashion épurée.
Option de livraison — étape de paiement d'une boutique en ligne — Shutter Reveal exemple 3

③ Option de livraison — étape de paiement d'une boutique en ligne

QuandCartes d'options de livraison (Standard, Express, Click & Collect) dans le formulaire de commande de Zindrel ; au survol, le volet révèle le délai et les détails.
PourquoiRévéler les détails au survol réduit la charge visuelle initiale du checkout : l'acheteur voit d'abord le prix, puis les détails sur demande — friction réduite, décision plus rapide.
RéglagesOptions de taille intermédiaire dans un formulaire de commande ; prix et délai mis en valeur ; fond sombre ; effet sur cartes de sélection.

Comment ça marche

La racine .fx-0353-root centre un bloc .hover-box.hover-shutter de 200 × 200 px sur fond #0a0a0f. L'élément principal a un fond sombre var(--bg-card). Un pseudo-élément ::before positionné en inset: 0 recouvre l'élément d'un dégradé linear-gradient(135deg, #6366f1, #d946ef) avec opacity: 1 au repos.

Au survol (ou au focus), deux transitions jouent simultanément : le ::before passe de opacity: 1 à opacity: 0 en 500 ms, révélant le fond sombre de l'élément ; le span passe de opacity: 0 à opacity: 1 avec un délai de 200 ms pour apparaître après le début de la disparition du voile. Le texte a un z-index: 1 supérieur au pseudo-élément (z-index: 0).

Mesuré dans Chromium 151 : voile visible au repos, texte visible au survol, deux copies sur la même page fonctionnent indépendamment. L'effet est une disparition par opacité — aucun clip-path, aucun volet réel.

Accessibilité

  • Mouvement réduit : sous prefers-reduced-motion: reduce, toutes les transitions sont annulées ; le voile reste en place au survol et le texte ne s'anime pas. Le changement d'état est absent sous mouvement réduit — pour un usage critique (bouton d'action), prévoir un texte alternatif visible au repos.
  • Clavier : l’élément est un <button> nativement focusable. La règle :focus-visible déclenche le même effet qu’au survol (voile disparaît, texte visible), avec un contour indigo.
  • Contenu caché au repos : le texte sous le voile est dans le DOM et lisible par les lecteurs d'écran même s'il est invisible à l'œil. Ne pas mettre dans le span une information indispensable sans alternative.
  • Toucher : sur mobile, le premier toucher déclenche le survol CSS et révèle le texte.

Compatibilité navigateur

CSS pur (opacity, linear-gradient, ::before, transition, :focus-visible, prefers-reduced-motion), aucun JavaScript. Mesuré dans Chromium 151 : voile, révélation, deux copies indépendantes. Fonctionne dans tous les navigateurs modernes.

Chrome 60+✓ Complet (mesuré)
Firefox 55+✓ Complet
Safari 10.1+✓ Complet
Edge 79+✓ Complet (moteur Chromium)
Mobile iOS 10.3+✓ Complet
Android Chrome 60+✓ Complet (moteur Chromium)

Sans opacity (navigateurs très anciens), le voile reste toujours visible et le texte n'apparaît jamais. Sans transition, le changement est instantané mais fonctionnel.

Le code

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

index.html — structure
<div class="fx-0353-root">
  <button class="hover-box hover-shutter" type="button">
    <span>…</span>
  </button>
</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
Couleur du voile (CSS — background du ::before) linear-gradient(135deg, #6366f1, #d946ef) Remplacez le dégradé par une couleur unie (#10b981) ou un autre dégradé. La couleur du voile peut coder une catégorie (vert = finance, bleu = tech).
Durée du fondu (CSS — transition: opacity .5s) 500 ms .3s rend la révélation plus vive, .8s la rend plus dramatique. Le délai du span (transition: opacity .3s .2s) maintient le texte caché pendant le début du fondu.
Délai d'apparition du texte (CSS — deuxième valeur de transition sur span) 200 ms .4s retarde davantage l'apparition du texte, créant un effet en deux temps ; 0s fait apparaître le texte en même temps que le voile disparaît.
Fond de l'élément (CSS — background de .hover-shutter) var(--bg-card) (sombre) Un fond blanc (#fff) révèle le texte sombre sur fond blanc au lieu de fond sombre — inversez aussi la couleur du texte du span.
Forme de l'élément (CSS — border-radius) var(--radius-xl) = 1 rem 50% pour une révélation sur un élément circulaire (avatar, badge) ; 0 pour un rectangle franc.

FAQ

Oui. Le span est dans le DOM avec opacity: 0, pas display: none : les lecteurs d'écran le lisent. Si l'information du texte est critique, prévoyez également un texte visible au repos dans l'élément.
Oui. Mettez l'image en background-image sur .hover-shutter ou imbriquez un avec z-index: 0. Vérifiez que le ::before (z-index 0) reste devant l'image (z-index −1).
L'effet utilise une disparition par opacité — le voile ne se fend pas en lames. Pour de vrais volets (clip-path en bandes), il faudrait plusieurs pseudo-éléments ou un SVG, ce qui dépasse la portée de cet effet.