Dans ce tutoriel, nous allons apprendre à créer un effet de curseur néon impressionnant en utilisant Three.js, HTML, CSS, et JavaScript. Cet effet apporte une touche moderne et interactive à votre site web. Nous allons décomposer chaque partie du code pour que vous puissiez comprendre et personnaliser facilement cet effet pour vos propres projets.
L’effet de curseur néon est un ajout visuel élégant qui peut améliorer l’expérience utilisateur sur votre site web. Il suit le mouvement de la souris, créant une traînée lumineuse dynamique qui capte l’attention. Ce type d’effet est particulièrement adapté pour les sites de portfolio, les pages de destination ou tout autre site cherchant à offrir une interaction utilisateur unique et engageante. En utilisant des effets visuels modernes comme le curseur néon, vous pouvez différencier votre site et rendre la navigation plus immersive.
Pour créer cet effet de curseur néon, nous aurons besoin de plusieurs technologies et outils :
Cette combinaison d’outils vous permettra de mettre en place un curseur néon performant et esthétiquement plaisant.
Pour commencer, nous allons établir la structure HTML de base qui servira de fondation à notre effet de curseur néon. Voici le code HTML de base :
Neon Cursor
Agence marketing digital
MonDesign Web
<!DOCTYPE html>
pour définir la version HTML. Ensuite, le langage du document est défini comme anglais avec lang="en"
.meta charset="UTF-8"
assure que le document utilise l’encodage de caractères UTF-8.meta http-equiv="X-UA-Compatible"
garantit la compatibilité avec Internet Explorer.meta name="viewport"
rend la page responsive.styles.css
définit les styles de la page.div
avec l’id app
est le conteneur principal pour notre contenu.hero
est l’endroit où nous plaçons le texte principal avec une mise en page centrée.index.js
est chargé à la fin pour assurer que le DOM est entièrement chargé avant que le JavaScript ne soit exécuté.Ensuite, nous définissons les styles de base pour notre effet dans le fichier styles.css. Voici un exemple de code CSS :
:root {
--surface-900: #131320;
--primary-100: #B89CFC;
}
body, html, #app {
margin: 0;
width: 100%;
height: 100%;
}
#app {
overflow: hidden;
touch-action: pan-up;
color: #ffffff;
font-family: "Montserrat", sans-serif;
text-align: center;
}
#app canvas {
display: block;
position: fixed;
z-index: -1;
top: 0;
left: 0;
}
.hero {
height: 100vh;
display: flex;
justify-content: center;
align-items: center;
color: #FFFFFF;
}
.main-title {
font-size: 24px;
font-weight: 400;
color: #FFFFFF;
}
.main-title strong {
color: var(--primary-100);
}
@media screen and (min-width: 640px) {
.main-title {
font-size: 34px;
}
}
@media screen and (min-width: 1024px) {
.main-title {
font-size: 42px;
}
}
@media screen and (min-width: 1536px) {
.main-title {
font-size: 60px;
}
}
Three.js est une bibliothèque JavaScript qui simplifie la création de graphiques 3D complexes dans le navigateur. Elle est essentielle pour réaliser des effets visuels sophistiqués, comme le curseur néon, en exploitant le WebGL, une API pour le rendu 3D.
Three.js est largement adopté pour sa simplicité d’utilisation par rapport à d’autres bibliothèques 3D plus complexes. Elle offre une grande flexibilité et un vaste éventail de fonctionnalités pour créer des animations et des graphiques interactifs. Pour notre curseur néon, Three.js permet de manipuler facilement les shaders et les objets 3D nécessaires pour produire des effets lumineux réalistes.
Le JavaScript est la clé pour animer et gérer le comportement du curseur néon. Nous allons utiliser Three.js pour initier et contrôler cet effet.
Le script suivant doit être placé dans le fichier index.js :
import { neonCursor } from 'https://unpkg.com/threejs-toys@0.0.8/build/threejs-toys.module.cdn.min.js';
const root = document.getElementById("app");
const options = {
el: root,
shaderPoints: 20,
curvePoints: 88,
curveLerp: 0.8,
radius1: 5,
radius2: 25,
velocityTreshold: 10,
sleepRadiusY: 200,
sleepRadiusX: 200,
sleepTimeCoefX: 0.0025,
sleepTimeCoefY: 0.0025
};
neonCursor(options);
const options = {
el: root,
shaderPoints: 20,
curvePoints: 88,
curveLerp: 0.8,
radius1: 5,
radius2: 25,
velocityTreshold: 10,
sleepRadiusY: 200,
sleepRadiusX: 200,
sleepTimeCoefX: 0.0025,
sleepTimeCoefY: 0.0025
};
el: root
: Indique l’élément HTML sur lequel l’effet néon sera appliqué (l’élément avec l’id « app »).
shaderPoints: 20
: Définit le nombre de points lumineux du curseur.
curvePoints: 88
: Définit le nombre de points qui forment la courbe suivie par le curseur.
curveLerp: 0.8
: Contrôle la fluidité de la transition des courbes pour un mouvement plus doux.
radius1: 5
: Détermine le rayon de la petite sphère qui représente le début du curseur.
radius2: 25
: Détermine le rayon de la grande sphère qui forme la traînée du curseur.
velocityTreshold: 10
: Fixe la vitesse minimum à partir de laquelle le curseur commence à bouger.
sleepRadiusY: 200
et sleepRadiusX: 200
: Spécifient la sensibilité du curseur lorsque la souris est immobile.
sleepTimeCoefX: 0.0025
et sleepTimeCoefY: 0.0025
: Contrôlent le temps de réaction du curseur lorsque la souris s’arrête de bouger.
neonCursor(options)
: Applique l’effet néon en utilisant les options définies ci-dessus.
Même avec un code bien structuré, des ajustements peuvent être nécessaires pour optimiser les performances ou résoudre des problèmes spécifiques. Voici quelques conseils :
Il est crucial de tester votre effet de curseur néon sur divers navigateurs et appareils pour garantir une expérience utilisateur cohérente et performante.
Une fois que vous avez maîtrisé l’effet de base, vous pouvez aller plus loin en ajoutant des fonctionnalités avancées pour enrichir l’interactivité de votre site :
Ce tutoriel vous a guidé pas à pas pour créer un effet de curseur néon impressionnant en utilisant Three.js, HTML, CSS, et JavaScript. Cet effet apporte une touche moderne et dynamique à votre site web, rendant la navigation plus engageante. N’hésitez pas à personnaliser les paramètres et à expérimenter avec différentes configurations pour adapter cet effet à vos besoins spécifiques.
Mondesign Web votre agence marketing digital, dédiée à vous accompagner vers le sommet de votre succès en ligne.