Cartes✨ Premium

Content Reveal

Titre affiché, contenu caché : au survol, le titre glisse vers le haut et le panneau de texte monte depuis le bas — effet 100 % CSS, aucun JavaScript.

CSSHoverReveal

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. Cartes comprend 41 effets, dont 6 gratuits. Découvrir la catégorie →

3 exemples d'usage

Catalogue produit — Détails révélés au survol — Content Reveal exemple 1

① Catalogue produit — Détails révélés au survol

QuandDans une grille de produits e-commerce ou SaaS, le nom et l'image sont toujours visibles ; prix, description courte et bouton d'action apparaissent au survol de chaque carte.
PourquoiLa grille reste épurée et scan­nable au premier regard. Le survol révèle les informations d'achat au moment où l'intention est déjà là, sans surcharger l'interface.
RéglagesFond blanc ou #f8f9fa pour un style e-commerce clair, --radius-xl: 0.75rem, transition à .3s pour une réaction plus vive.
Portfolio créatif — Description de projet au survol — Content Reveal exemple 2

② Portfolio créatif — Description de projet au survol

QuandDans une grille de projets ou un portfolio en ligne, le titre du projet est affiché en permanence ; les outils utilisés et la description courte s'affichent au survol.
PourquoiLa grille reste visuelle et compacte ; le détail s'affiche à la demande sans quitter la page, incitant à parcourir plusieurs projets successivement.
RéglagesFond linear-gradient(135deg, #1a1a2e, #16213e), titre centré en blanc, .card-content contenant une liste <ul> des technologies, --radius-xl: 1.5rem.
Landing page SaaS — Cartes fonctionnalités avec détail au survol — Content Reveal exemple 3

③ Landing page SaaS — Cartes fonctionnalités avec détail au survol

QuandSur une page d'accueil, chaque fonctionnalité est représentée par une carte avec icône + nom court ; le texte explicatif se révèle au survol.
PourquoiLa section reste synthétique au premier regard et laisse le visiteur explorer les détails selon ses centres d'intérêt, sans scroll supplémentaire.
Réglages3 à 4 cartes en CSS Grid (repeat(auto-fit, minmax(200px, 1fr))), hauteur fixe 200–240 px, couleur d'accentuation différente par fonctionnalité.

Comment ça marche

La carte (`.card-content-reveal`) utilise overflow: hidden couplé à position: relative. Le panneau .card-content est positionné en absolute sur le bord bas de la carte avec bottom: 0 et commence à translateY(100%) — entièrement sous le bord inférieur, invisible car rogné par le overflow.

Au survol (:hover), deux transitions transform .4s s'activent simultanément : le titre (.card-reveal-title, avec z-index: 1) monte de 30 px (translateY(-30px)) pour libérer la zone basse ; le panneau de contenu revient à translateY(0) et remonte depuis le bas de la carte.

Le panneau de contenu porte un background: linear-gradient(transparent, rgba(0,0,0,.9)) qui garantit la lisibilité du texte quel que soit le fond de la carte. Ce dégradé transparent-vers-sombre ne masque rien avant le survol.

L'effet est 100 % CSS déclaratif — le champ js de cet effet est vide. Il s'applique directement via des classes CSS dans n'importe quel framework (React, Vue, Svelte) ou CMS générant du HTML statique.

Accessibilité

  • prefers-reduced-motion absent : le code ne contient pas de bloc @media (prefers-reduced-motion: reduce). Les transitions continuent même si l'OS demande à réduire le mouvement. Ajoutez manuellement @media (prefers-reduced-motion: reduce) { .card-content-reveal .card-reveal-title, .card-content-reveal .card-content { transition: none } } dans votre CSS.
  • Navigation clavier absente : la révélation ne se déclenche que sur :hover. Une <div> n'est pas focusable par défaut. Ajoutez tabindex="0" sur le conteneur et dupliquez les règles :hover sous :focus-within pour les utilisateurs clavier.
  • Contenu masqué lisible par les lecteurs d'écran : le texte dans .card-content (en translateY(100%)) est dans le DOM et n'est ni display:none ni visibility:hidden — il reste accessible aux technologies d'assistance même à l'état masqué.
  • Contraste du panneau : le dégradé rgba(0,0,0,.9) sur texte blanc assure un ratio ≥ 7:1 (WCAG AAA) sur le panneau révélé.
  • Structure sémantique : le conteneur est une <div> sans rôle. Remplacez-la par un <article> ou <li> selon le contexte et ajoutez un aria-label ou aria-labelledby pointant vers .card-reveal-title.

Compatibilité navigateur

Utilise exclusivement CSS Transitions et position absolute — pas de JavaScript, pas de Canvas, aucune API récente requise.

Chrome 49+✓ Complet
Firefox 44+✓ Complet
Safari 9+✓ Complet
Edge 79+✓ Complet
Mobile iOS✓ Tap → 1er tap révèle, 2e masque
Android Chrome✓ Tap → 1er tap révèle, 2e masque

Sans support des CSS Transitions, la carte affiche son état de repos (titre centré, fond dégradé bleu). Le contenu dans .card-content reste dans le DOM mais n'est pas accessible visuellement au survol — aucune erreur JS, la page reste fonctionnelle.

Le code

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

index.html — structure
<div class="card-demo card-content-reveal">
  <span class="card-reveal-title">Titre visible</span>

  <!-- Contenu révélé au survol -->
  <div class="card-content">
    <p>Texte ou HTML quelconque</p>
  </div>
</div>
<!-- Note : card-demo fournit les dimensions 280×180 px de la démo.
     En production, remplacez-la par votre propre classe de dimensionnement. -->
🔒 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
--bg-card #12121a Couleur de fond de la carte quand aucun dégradé n'est défini. Modifiez cette variable CSS au niveau de la carte pour un rendu monochrome.
--radius-xl 1rem Rayon des coins arrondis de la carte. Passez à 0 pour des angles droits ou 1.5rem pour des coins très arrondis.
background (`.card-content-reveal`) linear-gradient(135deg, #3b82f6, #1d4ed8) Dégradé bleu de fond de la carte. Remplacez par vos couleurs brand, une couleur unie ou une image CSS.
transition duration (`.card-reveal-title`, `.card-content`) .4s Durée de l'animation de révélation. .2s = réponse immédiate, .6s = fondu lent et cinématique.
translateY (`:hover .card-reveal-title`) -30px Amplitude de montée du titre au survol. Ajustez en fonction de la taille de police et de la hauteur de votre carte (ex. -40px pour une carte plus haute).
background (`.card-content`) linear-gradient(transparent, rgba(0,0,0,.9)) Scrim du panneau révélé. Réduisez l'opacité finale (rgba(0,0,0,.6)) pour un fond plus transparent sur une carte de couleur claire.
padding (`.card-content`) 20px Espacement interne du panneau de contenu révélé. Augmentez à 28px pour plus d'air, réduisez à 12px sur de petites cartes.

FAQ

Sur les appareils tactiles, le premier tap déclenche l'état :hover et le second le désactive. Cela fonctionne mais peut sembler peu intuitif. Pour une meilleure expérience mobile, ajoutez en JS un écouteur touchstart qui bascule une classe .is-revealed sur la carte, et dupliquez les règles :hover sous .card-content-reveal.is-revealed.
Ajoutez tabindex="0" sur le conteneur .card-content-reveal, puis dans votre CSS remplacez les sélecteurs :hover par :hover, :focus-within. La carte se révèle alors au clic ou au focus clavier, sans JavaScript supplémentaire.
Oui. Étendez la propriété transition : ajoutez opacity .4s sur .card-content, posez opacity: 0 à l'état de repos et opacity: 1 au survol. Le fondu se superpose à la translation pour une révélation plus douce.