Texte✨ Premium

Letter Spacing

Un texte bold dont l'espacement entre lettres passe de 0 à 8 px au survol par transition CSS native — zéro JavaScript, applicable à tout élément texte.

CSSHoverSpacing

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. Texte comprend 56 effets, dont 4 gratuits. Découvrir la catégorie →

3 exemples d'usage

Titre display plein écran — Landing page ou portfolio — Letter Spacing exemple 1

① Titre display plein écran — Landing page ou portfolio

QuandLe visiteur arrive sur une home page et découvre un grand titre bold en capitales — le survol fait exploser l'espacement et révèle le dynamisme de la marque.
PourquoiSur un corps de 5–8 rem, les 8 px d'expansion sont très visibles et créent une aération spectaculaire sans aucun décalage de layout si le conteneur a une largeur fixée.
Réglagesfont-size: 5rem, espacement cible 18px, transition .5s ease-out pour une inertie douce.
Navigation horizontale — Header de site ou menu principal — Letter Spacing exemple 2

② Navigation horizontale — Header de site ou menu principal

QuandLes items d'un menu s'écartent légèrement au survol pour signaler l'interactivité sans animation distrayante.
PourquoiLe pattern letter-spacing hover sur les navs est un classique du web design haut de gamme. L'expansion reste contenue (3–4 px) pour ne pas décaler les items adjacents.
Réglagesfont-size: .75rem, font-weight: 600, espacement cible 3px, transition .28s pour la réactivité.
Labels de filtre de galerie — Portfolio, boutique ou dataviz — Letter Spacing exemple 3

③ Labels de filtre de galerie — Portfolio, boutique ou dataviz

QuandSur une page portfolio ou boutique, le visiteur survole les filtres de catégorie pour affiner sa sélection — l'expansion des lettres signale immédiatement que chaque label est cliquable, sans icône ni soulignement supplémentaire.
PourquoiLes filtres sont déjà prévus pour être interactifs : l'effet confirme cette intention visuellement. Sur un corps compact (.7–.8 rem, uppercase), même 3–4 px d'expansion créent un signal d'interactivité clair et élégant.
Réglagesfont-size: .72rem, font-weight: 700, espacement cible 4px, transition .25s pour la réactivité d'un élément cliquable.

Comment ça marche

L'effet accumule deux classes sur le même <span>. .demo-text fixe la typographie (taille 2,5 rem, graisse 800, espacement initial -.02em). .text-spacing écrase cet espacement à 0 et déclare transition: letter-spacing .4s — le navigateur planifie l'interpolation sans aucun JS. La règle .text-spacing:hover { letter-spacing: 8px } est la seule instruction cible : au survol, l'espacement croît de 0 à 8 px ; au départ du curseur, il revient à 0.

CSS interpole letter-spacing nativement. L'easing implicite est ease (accélération puis décélération). Sur Chromium 112+, la transition letter-spacing est accélérée GPU sans repaint de layout — la propriété est animée dans le compositor thread. Sur Firefox et Safari, le moteur re-rend le bloc texte à chaque frame, mais l'animation reste fluide à 60 fps pour des textes courts. Aucun requestAnimationFrame, aucun écouteur d'événements : la source JS est vide.

Accessibilité

  • prefers-reduced-motion : absent du code. Si votre public inclut des utilisateurs sensibles aux animations, ajoutez @media (prefers-reduced-motion: reduce) { .text-spacing { transition: none } } dans votre feuille de style.
  • L'effet est uniquement déclenché au survol — inaccessible au clavier sans modification. Pour la navigation clavier, ajoutez .text-spacing:focus { letter-spacing: 8px }.
  • Contraste : le code hérite color: #fff (body) sur fond #0a0a0f — ratio ≥ 21:1, WCAG AAA.
  • Pas d'attribut aria dans la structure : le changement est purement visuel, aucun état sémantique à communiquer aux lecteurs d'écran.

Compatibilité navigateur

CSS letter-spacing, transition et :hover sont universellement supportés depuis 2012. Zéro dépendance.

Chrome 88+✓ Complet
Firefox 87+✓ Complet
Safari 14+✓ Complet
Edge 88+✓ Complet
Mobile iOS✓ Hover absent (touch)
Android Chrome✓ Hover absent (touch)

Sans support des transitions CSS (navigateurs très anciens), le texte affiche directement l'espacement cible au survol — aucune erreur, aucun JS manquant.

Le code

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

index.html — structure
<div class="demo-preview">
  <span class="demo-text text-spacing">TEXTE</span>
</div>
🔒 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
letter-spacing (cible) 8px Ligne letter-spacing: 8px dans .text-spacing:hover — amplitude d'expansion. 3–4 px pour un nav, 12–20 px pour un titre display.
transition durée .4s Dans transition: letter-spacing .4s sur .text-spacing — .2s pour un retour instantané, .6–.8s pour une inertie élégante.
transition easing ease (implicite) Remplacez .4s par .4s cubic-bezier(0.4,0,0.2,1) pour un ressort Material, ou .4s ease-out pour une décélération naturelle.
letter-spacing (départ) 0 Ligne letter-spacing: 0 dans .text-spacing — partez de -.05em pour un effet « serré → aéré » plus dramatique.
font-size 2.5rem Dans .demo-text — l'effet est plus spectaculaire sur des grands corps. En dessous de 1 rem, l'expansion en px est peu perceptible.
font-weight 800 Dans .demo-text — une graisse élevée (700–900) maximise le contraste visuel entre l'état serré et l'état écarté.

FAQ

letter-spacing augmente la largeur rendue de l'élément inline. Pour éviter le layout shift, contenez le span dans un bloc à largeur fixée ou ajoutez min-width: max-content à l'item de nav pour réserver l'espace maximal dès le chargement.
Au clavier : ajoutez .text-spacing:focus { letter-spacing: 8px }. En JS : toggle une classe CSS (el.classList.toggle('expanded')) avec .text-spacing.expanded { letter-spacing: 8px } — la transition CSS joue automatiquement dans les deux sens.
Oui. letter-spacing est indépendant des axes d'une variable font. Vous pouvez combiner l'expansion de l'espacement avec une transition simultanée sur font-variation-settings (poids, largeur) — le navigateur interpole les deux propriétés en même temps.