Hover✨ Premium

Tilt 3D

Un élément bascule de 10° en avant et 10° à gauche au survol — inclinaison 3D fixe CSS, sans JavaScript, identique quelle que soit la position du curseur dans l'élément.

CSS3D

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

Onglets de navigation — tableau de bord analytics — Tilt 3D exemple 1

① Onglets de navigation — tableau de bord analytics

QuandOnglets de sélection de vue (Aperçu, Trafic, Conversions) dans le header d'un tableau de bord SaaS Trelvix ; chaque onglet s'incline au survol pour signaler la vue sélectionnable.
PourquoiL'inclinaison 3D sur un élément de navigation plat renforce la lisibilité du focus sans animation distrayante — le geste physique suffit à indiquer que l'onglet est cliquable.
RéglagesPetits onglets en ligne dans un header sombre ; texte de navigation ; fond quasi-noir ; effet sur petits blocs de navigation.
Vignette d'artiste — interface de streaming musical — Tilt 3D exemple 2

② Vignette d'artiste — interface de streaming musical

QuandCartes d'artistes (Luna Vega, Nox Drift, Fera, Orka) dans la grille de découverte d'Omnyl ; chaque vignette s'incline au survol pour inviter au clic vers la page artiste.
PourquoiLa perspective 3D sur une vignette musicale rappelle le geste de retourner un vinyle : elle distingue l'état survol sans changer la couleur ni ajouter d'overlay.
RéglagesCartes modérées dans une grille ; icône d'artiste et genre musical ; lecteur en pied de page ; fond sombre.
Carte de plan tarifaire — page de sélection d'abonnement SaaS — Tilt 3D exemple 3

③ Carte de plan tarifaire — page de sélection d'abonnement SaaS

QuandCartes de plans (Découverte, Pro, Équipe) sur la page de tarifs de Yolnex ; chaque plan s'incline au survol pour signaler la sélection possible sans modifier la mise en page.
PourquoiL'inclinaison 3D d'une pricing card donne une impression de relief sans changer les couleurs ni masquer le prix affiché — l'utilisateur comprend immédiatement qu'il peut cliquer.
RéglagesGrandes cartes verticales dans une grille à 3 colonnes ; prix, fonctionnalités et badge de plan ; fond sombre indigo.

Comment ça marche

La racine .fx-0352-root centre un bloc .hover-box.hover-tilt de 200 × 200 px sur fond #0a0a0f. La propriété transform-style: preserve-3d autorise le contexte 3D ; la transition transform .3s adoucit l'entrée et la sortie du survol.

Au survol (ou au focus), la règle .hover-tilt:hover applique transform: perspective(1000px) rotateX(10deg) rotateY(-10deg) : l'élément bascule de 10° vers le bas et de 10° vers la gauche, avec la perspective définie à 1 000 px. L'angle est identique quelle que soit la position du curseur dans l'élément — contrairement à un tilt interactif comme fx-0003 qui suit précisément la souris. overflow: hidden retaille le contenu si l'élément grossissait au survol, mais ici le transform seul est utilisé.

La transition inverse joue à la sortie du survol. Mesuré dans Chromium 151 : entrée en 300 ms, sortie en 300 ms, l'angle reste constant quelle que soit la position d'entrée de la souris, deux copies sur une page — seule celle survolée s'incline. Le WebKit de Playwright aplatit toute 3D CSS : le rendu sur un vrai Safari n'a pas été vérifié.

Accessibilité

  • Mouvement réduit : sous prefers-reduced-motion: reduce, le CSS supprime la transition et annule le transform au survol et au focus — l'élément reste à plat. L'état survol reste visible via l'outline de focus et le curseur pointer.
  • Clavier : l’élément est un <button> nativement focusable. La règle :focus-visible déclenche le même transform 3D qu’au survol, avec un contour de 2 px indigo.
  • Toucher : :hover reste actif sur un premier toucher sur mobile ; l'inclinaison s'affiche puis reste jusqu'au prochain toucher. L'effet n'est pas annulé sur touchend — comportement CSS natif.
  • Contenu : l'inclinaison 3D est purement décorative. Le contenu textuel de l'élément reste lisible dans toutes les positions.

Compatibilité navigateur

CSS pur (perspective, rotateX, rotateY, transform-style: preserve-3d, :focus-visible, prefers-reduced-motion), aucun JavaScript. Mesuré dans Chromium 151 : angle constant, deux copies indépendantes, mouvement réduit actif. Le WebKit de Playwright aplatit toute 3D CSS : le vrai Safari n'a pas été vérifié.

Chrome 36+✓ Complet (mesuré)
Firefox 16+✓ Complet
Safari✓ Non vérifié (WebKit Playwright aplatit la 3D CSS)
Edge 79+✓ Complet (moteur Chromium)
Mobile iOS✓ Non vérifié (Safari)
Android Chrome 36+✓ Complet (moteur Chromium)

Sans perspective ou transform-style: preserve-3d (navigateurs très anciens), l'élément reste plat et rien ne se passe au survol — le contenu reste accessible.

Le code

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

index.html — structure
<div class="fx-0352-root">
  <button class="hover-box hover-tilt" 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
Angle de bascule (CSS — rotateX et rotateY) 10 ° et −10 ° Augmentez pour un effet plus prononcé (20deg), réduisez pour un effet subtil (5deg). Mettez rotateY(10deg) (positif) pour basculer à droite au lieu de la gauche.
Distance de perspective (CSS — perspective(1000px)) 1 000 px Réduire à 400–600 px accentue la déformation ; au-dessus de 2 000 px l'inclinaison devient quasiment imperceptible.
Durée de la transition (CSS — transition: transform .3s) 300 ms .2s rend l'effet plus vif, .5s le rend plus doux. Ajoutez la propriété d'accélération : ease-out rend l'arrivée plus naturelle.
Profondeur du box-shadow (CSS — ajouter à .hover-tilt:hover) aucune ombre Ajoutez box-shadow: 0 20px 40px rgba(0,0,0,.4) pour renforcer l'impression de lévitation de la carte.
Taille de l'élément (CSS — width / height) 200 × 200 px L'inclinaison s'applique quelle que soit la taille. Sur des éléments larges (> 400 px), considérez réduire rotateX et rotateY à 5–8° pour éviter une déformation trop forte aux coins.

FAQ

fx-0003 suit la position précise de la souris dans l'élément : l'angle varie en temps réel. fx-0352 applique un angle fixe (10° × −10°) identique quelle que soit l'entrée du curseur — plus prévisible, moins de JavaScript, adapté aux sites institutionnels.
Le WebKit de Playwright aplatit toute la 3D CSS, donc le rendu sur un vrai Safari n'a pas été mesuré. Les propriétés perspective, rotateX et rotateY sont supportées depuis Safari 9 sur macOS et iOS 9.
Oui. Chaque copie du code est autonome dans sa propre .fx-0352-root. Aucun JavaScript n'est utilisé, donc il n'y a pas de risque de conflit entre plusieurs instances.