Distorsion✨ Premium

Laser Beam

Trois faisceaux laser aux couleurs de l'arc-en-ciel qui s'étirent et se rétractent tour à tour dans un cadre sombre, derrière un mot lumineux.

CSSAnimationSci-Fi

Mis à jour le

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

3 exemples d'usage

Haut de page d'une salle de laser game (Fulgorane) — Laser Beam exemple 1

① Haut de page d'une salle de laser game (Fulgorane)

QuandLa boîte remplit tout le haut de page ; le nom de la salle remplace « LASER » au centre, avec le menu au-dessus, la durée des parties en dessous et les boutons de réservation en bas.
PourquoiLes faisceaux qui jaillissent et se rétractent évoquent directement le jeu, et le nom en néon devient le logo de la page.
Réglages--lsb-w: 100%, --lsb-h: 360px, coins à 0, fond de boîte #06050f, mot à 2,9 rem espacé de 8 px, racine sans fond ni hauteur minimale.
Faisceaux de visée du scanner dans une appli d'inventaire (Quarvelle) — Laser Beam exemple 2

② Faisceaux de visée du scanner dans une appli d'inventaire (Quarvelle)

QuandDans le viseur de la caméra, au-dessus du code-barres d'un carton, trois traits rouges s'étirent et se rétractent pendant que l'appli cherche le code ; la liste des articles déjà comptés est à droite.
PourquoiLe mouvement continu montre que le scanner est actif, avec le rouge que chacun associe aux lecteurs de codes-barres.
RéglagesBoîte transparente de 182×60 px sans mot, --lsb-spectrum réduit à des rouges, faisceaux de 3 et 1 px, cycle de 1,6 s.
Découpe lancée dans le configurateur d'un atelier de découpe laser (Taillandrin) — Laser Beam exemple 3

③ Découpe lancée dans le configurateur d'un atelier de découpe laser (Taillandrin)

QuandAprès un clic sur « Lancer la découpe », les faisceaux se posent sur l'aperçu de la plaque en bois, assombri, avec l'avancement en pourcentage au centre ; le bouton se grise jusqu'à la fin.
PourquoiOn voit la machine « travailler » sur son propre motif ; l'avancement prend la place du mot lumineux.
RéglagesBoîte de 300×324 px à fond rgba(12,10,22,.55) posée sur l'aperçu, mot remplacé par le pourcentage (1,05 rem), cycle de 2,2 s. Le pourcentage et l'affichage après le clic viennent de la page.

Comment ça marche

La boîte .lsb-box (300×200 px, fond #050510, coins de 16 px) cache ce qui dépasse. Elle contient trois faisceaux horizontaux .lsb-beam : un de 4 px au milieu, deux de 2 px à 30 % et 70 % de la hauteur. Chacun est peint d'un dégradé qui passe du transparent au rouge, orange, jaune, vert, cyan, bleu, violet, magenta, puis de nouveau au transparent.

Autour de chaque faisceau, deux copies floues de la même couleur (::before à 15 px de flou, ::after à 30 px) font le halo. L'animation lsbMove (3 s) le rétracte à 30 % de sa longueur, un peu à gauche du centre et à demi-transparent, puis l'étire sur toute la largeur, pleinement lumineux. Le faisceau du haut est décalé d'une demi-période, celui du bas d'un quart : les trois n'atteignent jamais leur pleine longueur au même moment.

Le mot .lsb-text (« LASER ») passe au-dessus des faisceaux, en blanc avec une lueur blanche, cyan et magenta. Il est facultatif : sans lui, il ne reste que les faisceaux. Les faisceaux ne balaient pas l'écran de haut en bas, ils restent à leur hauteur.

Accessibilité

  • Texte réel : le mot est du texte HTML lu normalement ; les trois faisceaux sont masqués aux lecteurs d'écran (aria-hidden="true").
  • Mouvement réduit : avec prefers-reduced-motion: reduce, les faisceaux restent étirés sur toute la largeur et ne bougent plus (mesuré : 6 animations en boucle → 0 pour deux copies).
  • Pas de clignotement : la luminosité varie de moitié en 1,5 s, progressivement ; aucun éclat brusque.
  • Contraste : le mot blanc sur #050510 dépasse 19:1 ; sa lueur colorée ne gêne la lecture qu'à très petite taille.
  • Aucune interaction : rien ne réagit au survol, au clic ni au clavier.

Compatibilité navigateur

CSS seul, aucun JavaScript. Mesuré dans Chromium 151, Firefox 153 et le WebKit 26.5 de Playwright : 0 erreur, deux copies indépendantes, rien qui déborde à 390 px, faisceaux figés en mouvement réduit. Version minimale fixée par la propriété inset des halos.

Chrome 87+✓ Complet (mesuré)
Firefox 66+✓ Complet (mesuré)
Safari 14.1+✓ Complet (mesuré dans le WebKit de Playwright)
Edge 87+✓ Complet (moteur Chromium)
Safari iOS 14.5+✓ Complet (même moteur que Safari)
Chrome Android 87+✓ Complet (moteur Chromium)

Sans filter, les faisceaux s'affichent en traits nets sans halo ; leur mouvement est conservé.

Le code

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

index.html — structure
<div class="fx-0270-root">
  <div class="lsb-box">
    <div class="lsb-beam" aria-hidden="true"></div>
    <div class="lsb-beam lsb-beam-2" aria-hidden="true"></div>
    <div class="lsb-beam lsb-beam-3" aria-hidden="true"></div>
    <span class="lsb-text">LASER</span>
  </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
--lsb-w et --lsb-h 300px et 200px Taille de la boîte ; 100% pour suivre le conteneur (jamais plus large que lui).
--lsb-panel #050510 Fond de la boîte ; transparent ou une teinte translucide pour poser les faisceaux sur une image.
--lsb-spectrum dégradé arc-en-ciel à bouts transparents Couleur des faisceaux et de leurs halos : un dégradé de rouges pour un lecteur de codes, de verts pour un écran de jeu.
--lsb-main et --lsb-side 4px et 2px Épaisseur du faisceau central et des deux faisceaux latéraux.
--lsb-speed 3s Durée d'un cycle ; le décalage des faisceaux latéraux suit automatiquement.
--lsb-text et --lsb-font #fff et 1.5rem Couleur et taille du mot central (retirez .lsb-text pour n'avoir que les faisceaux).
--lsb-radius 16px Arrondi des coins de la boîte.
--lsb-bg et --lsb-min-h #0a0a0f et 300px Fond et hauteur minimale de la racine ; transparent et 0 pour l'intégrer à votre page.

FAQ

Non. Chaque faisceau reste à sa hauteur (30 %, 50 % et 70 %) et ne fait que s'étirer et se rétracter à l'horizontale. Un balayage vertical demanderait une autre animation.
Remplacez --lsb-spectrum par un dégradé d'une teinte, en gardant les bouts transparents, par exemple linear-gradient(90deg, transparent, #ff2a2a 15%, #ff6a5a 50%, #ff2a2a 85%, transparent). Les halos reprennent la même couleur.
Oui, .lsb-text accepte n'importe quel texte court, comme un nom de marque ou un pourcentage mis à jour par votre script. Il reste toujours au-dessus des faisceaux.