3D✨ Premium

Depth of Field

Trois plans à des « distances » différentes — arrière-plan en haut à gauche, sujet au centre, premier plan en bas à droite — dont un seul est net : survoler, toucher ou atteindre au clavier un plan y déplace la mise au point (flou CSS de 0 à 4 px et léger changement d'échelle), un clic l'y garde. La profondeur de champ d'un objectif, rendue avec trois boutons et un flou CSS.

CSSBlurHover

Mis à jour le

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

3 exemples d'usage

Comprendre la mise au point — page pédagogique d'un club photo — Depth of Field exemple 1

① Comprendre la mise au point — page pédagogique d'un club photo

QuandAtelier 3 du club : trois plans « Église au loin — 40 m », « Sujet : le banc — 4 m » et « Fleur au premier plan — 0,5 m ». Le membre survole un plan pour y voir passer la netteté, puis clique pour la garder, comme on tourne la bague de mise au point.
PourquoiLe flou qui se déplace d'un plan à l'autre est exactement ce que fait la bague de mise au point à grande ouverture ; les distances écrites sous chaque plan relient le geste à la règle. Aucun autre effet de la catégorie ne joue sur la netteté.
RéglagesRacine sans fond, scène de 540 × 360 px ; plans en position absolue et agrandis pour que la souris les traverse (église 250 × 96 px en haut à gauche, banc 184 × 84 px au centre, fleur 186 × 118 px en bas à droite) ; bascule raccourcie à 0,3 s (transition-duration) ; distance en <small> dans chaque bouton.
Les trois plans d'un paysage peint — médiation en ligne d'un musée des beaux-arts — Depth of Field exemple 2

② Les trois plans d'un paysage peint — médiation en ligne d'un musée des beaux-arts

QuandSous la reproduction d'un tableau de moisson, trois bandes « Lointain : les collines bleues », « Plan moyen : la ferme », « Premier plan : les moissonneurs ». Le visiteur clique un plan pour le regarder pendant que la notice en parle.
PourquoiRendre net un plan et flouter les autres guide l'œil comme le fait un médiateur, plan par plan. Les trois bandes couvrent tout le tableau : où que passe la souris, un plan répond.
RéglagesPlans redessinés en bandes peintes : collines en dégradés radiaux bleus (480 × 110 px), ferme ocre (320 × 72 px), blés en rayures repeating-linear-gradient or (480 × 98 px) ; coins carrés, cadre doré autour ; bascule à 0,3 s.
Mode concentration : seule la tâche en cours reste nette — appli d'organisation pour étudiants — Depth of Field exemple 3

③ Mode concentration : seule la tâche en cours reste nette — appli d'organisation pour étudiants

QuandÉcran « Aujourd'hui » avec le mode concentration activé : « Réviser le chapitre 4 » reste net au centre, « Message du groupe de TD » et « Rappel : bibliothèque 18 h » restent flous en marge. L'étudiant clique une tâche pour la remettre au net.
PourquoiLe flou relègue ce qui peut attendre sans le cacher : on garde le contexte en vue, à la différence d'un masquage, et un clic suffit pour changer de priorité.
RéglagesFond clair #f4f1ec ; plans en cartes blanches, bleu pâle et orange pâle, texte sombre aligné à gauche ; carte centrale bordée de vert #2f9e74 ; tâches de 196 × 94 px, message de 270 × 78 px, rappel de 178 × 116 px ; bascule à 0,3 s.

Comment ça marche

La racine .fx-0027-root (fond #0a0a0f, 300 px de haut au minimum) contient la scène .dof-scene (toute la largeur × 250 px) et trois boutons .dof-layer : « Background » posé à 20 px du coin haut gauche (indigo à 40 %), « Focus » au centre (dégradé #6366f1 → #8b5cf6, ombre, au-dessus des autres) et « Foreground » à 20 px du coin bas droit (rose à 50 %). L'attribut data-focus de la scène dit quel plan est net, et le CSS fait le reste. Au repos (mid) : sujet net, les deux autres à blur(3px), l'arrière-plan réduit à 90 % et le premier plan grossi à 105 %. Sur bg : arrière-plan net à 100 %, sujet à 2 px, premier plan à 4 px. Sur fg : premier plan net à 100 %, sujet à 2 px, arrière-plan à 4 px et réduit à 85 %. Chaque changement glisse en 0,6 s (transition sur filter et transform).

Le script ne touche à aucun style : il ne fait que changer data-focus. Survoler un plan (pointerenter, qui sert aussi au doigt et au stylet) ou lui donner le focus clavier affiche un aperçu de la mise au point sur ce plan ; le quitter (pointerleave, blur) revient au plan gardé. Un clic, un toucher, Entrée ou Espace font du plan le plan gardé et mettent à jour aria-pressed sur les trois boutons. Comme les états vivent dans le CSS et non dans des styles en ligne, survol, clic et clavier se combinent sans s'écraser. Mesuré dans Chromium 151, Firefox 153 et WebKit 26 : après un clic sur « Background », la souris qui sort laisse l'arrière-plan net (flous 0 / 2 / 4 px), le survol de « Foreground » passe à 4 / 2 / 0 px, la sortie revient à 0 / 2 / 4 px.

Une instance démarre par scène [data-dof] trouvée sous une racine .fx-0027-root : deux copies sur une page ont chacune leur plan gardé (mesuré : un clic sur la seconde ne change rien à la première). Au doigt, mesuré avec de vrais événements tactiles dans Chromium : toucher « Background » le rend net et l'y garde. Le flou n'est qu'une image de la profondeur : rien n'est en 3D, aucune perspective ; ce sont l'écart de netteté (0, 2, 3, 4 px) et l'écart d'échelle (85 à 105 %) qui font lire trois distances.

Accessibilité

  • Clavier : les trois plans sont de vrais <button>. Tab donne le focus au plan suivant et y déplace la mise au point (mesuré dans Chromium et Firefox), Entrée ou Espace la garde, un contour blanc de 2 px marque le focus. aria-pressed="true" annonce le plan gardé aux lecteurs d'écran. Dans Safari, Tab ne passe par les boutons qu'avec Option + Tab ou l'option « Appuyer sur Tab pour mettre en évidence chaque élément » (comportement mesuré dans WebKit).
  • Mouvement réduit : sous prefers-reduced-motion: reduce, un bloc limité à .fx-0027-root retire les transitions : la netteté et l'échelle changent d'un coup, sans glissement. Toutes les interactions restent (mesuré : mêmes flous après survol, clic et clavier, durée de transition 0 s).
  • Texte flou : un plan flou n'est pas lisible à l'œil, c'est le principe. Les lecteurs d'écran lisent les trois libellés normalement. Ne mettez dans un plan flou que ce qui peut attendre, et gardez le texte principal sur le plan net au repos.
  • Contraste : texte blanc sur le dégradé du plan net, calculé à 4,5:1 sur #6366f1 et 4,2:1 sur #8b5cf6, juste sous le seuil de 4,5:1 pour un texte de 16 px : foncez légèrement le dégradé si le libellé est long. Les deux autres plans, une fois nets, dépassent 6:1.

Compatibilité navigateur

CSS (filter: blur(), transform: scale(), transitions, sélecteurs d'attribut) + 22 lignes de JavaScript (événements pointer, focus, clic), aucune dépendance. Mesuré dans Chromium 151, Firefox 153 et WebKit 26 : mêmes flous dans tous les états, plan gardé après un clic, survol qui marche encore après le clic, deux copies indépendantes, transitions retirées en mouvement réduit. Toucher mesuré dans Chromium avec de vrais événements tactiles.

Chrome 55+✓ Complet
Firefox 59+✓ Complet
Safari 13+✓ Complet (Tab ne passe par les boutons qu'avec Option + Tab)
Edge 79+✓ Complet
Mobile iOS✓ Non vérifié sur un vrai appareil
Android Chrome✓ Complet

Sans JavaScript, la scène reste figée sur son état de départ (sujet net, deux plans flous) : les boutons ne font rien mais tout le texte reste dans la page. Sans filter (navigateur très ancien), les trois plans restent nets et seul le changement d'échelle marque le plan choisi.

Le code

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

index.html — structure
<div class="fx-0027-root">
  <div class="dof-scene" data-dof="" data-focus="mid">
    <button type="button" class="dof-layer dof-bg" data-plane="bg" aria-pressed="false">Background</button>
    <button type="button" class="dof-layer dof-mid" data-plane="mid" aria-pressed="true">Focus</button>
    <button type="button" class="dof-layer dof-fg" data-plane="fg" aria-pressed="false">Foreground</button>
  </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
Force du flou (CSS — blur(3px) au repos, blur(2px) et blur(4px) dans les règles [data-focus]) 3 px au repos ; 2 et 4 px quand la mise au point bouge Gardez un écart entre le plan voisin et le plan lointain (2 puis 4 px) : c'est lui qui donne l'idée de distance. Au-delà de 6 px, un texte de 13 px devient une tache ; sous 1,5 px, l'écart ne se voit plus.
Vitesse de bascule (CSS — transition de .dof-layer) 0,6 s 0,3 s rend l'aperçu au survol plus vif (c'est le réglage des scènes) ; 1 s donne une mise au point lente, façon cinéma. En mouvement réduit, la transition est retirée de toute façon.
Plan net au départ (HTML — data-focus et aria-pressed ; JS — var kept = 'mid') mid (le sujet) Pour ouvrir sur l'arrière-plan, mettez data-focus="bg" sur la scène, aria-pressed="true" sur « Background » (et false sur les autres) et 'bg' dans le script.
Place et taille des plans (CSS — .dof-bg, .dof-mid, .dof-fg) coin haut gauche, centre, coin bas droit Placez-les où vous voulez en position: absolute. Plus un plan est grand, plus il est facile à survoler ; le plan du milieu garde z-index: 2 pour passer devant les autres s'ils se chevauchent.
Échelle des plans (CSS — scale(.9), scale(1.05), scale(.85)) 90 % au fond, 105 % devant, 85 % pour un fond très flou L'échelle renforce la distance : un plan lointain un peu plus petit, un plan proche un peu plus gros. Restez entre 80 et 110 % pour que les libellés ne bougent pas trop.
Contenu des plans (HTML — texte des trois <button>) Background, Focus, Foreground Texte, petite image, ligne en <small> : tout ce qu'un bouton peut contenir. Pas de lien ni d'autre bouton à l'intérieur (HTML invalide, focus clavier confus).

FAQ

Non. Survoler un plan, ou y arriver au clavier, n'affiche qu'un aperçu : dès que la souris ou le focus le quitte, la netteté revient au plan gardé. Seuls un clic, un toucher, Entrée ou Espace changent le plan gardé. Mesuré dans Chromium, Firefox et WebKit : après un clic sur « Background », survoler « Foreground » le rend net, et sortir rend la netteté à « Background ».
Pour le clavier et les lecteurs d'écran sans rien ajouter : un <button> reçoit le focus, réagit à Entrée et à Espace, et aria-pressed annonce lequel est choisi. Les styles par défaut du bouton sont neutralisés dans le CSS (border: 0, police héritée) : visuellement, ce sont trois cartes.
Layered Parallax 3D fait bouger des calques en 3D selon la souris : la profondeur vient du déplacement. Depth of Field ne déplace rien : la profondeur vient de la netteté, comme sur une photo. Choisissez Depth of Field pour faire regarder un élément à la fois (une étape, un plan, une tâche) ; un effet de parallaxe pour donner du relief à une scène qu'on balaie du regard.