Le portfolio utilise un système de background animé moderne composé de plusieurs couches superposées pour créer un effet de profondeur et de mouvement subtil.
- Gradient linéaire animé avec 5 points de couleur
- Animation :
gradientShift- 20s, boucle infinie - Effet : Déplacement lent du gradient pour créer un mouvement organique
- Couleurs : Nuances de gris (#1a1a1a à #252525)
- Overlay avec gradients radiaux multiples
- Animation :
meshMove- 25s, mouvement circulaire subtil - Effet : Création de zones de lumière/darkness pour la profondeur
- Opacité : 0.8 pour rester subtil
- 3 orbes de tailles différentes avec effet glass
- Animation :
orbFloat- 20-35s selon l'orb - Effet : Mouvement flottant organique avec blur
- Filtre :
blur(60px)pour effet glassmorphism - Opacité : 0.4 pour ne pas distraire
- Pattern de grille subtil
- Animation :
gridMove- 30s, mouvement continu - Effet : Ajoute de la texture sans surcharger
- Opacité : 0.3
- 30-50 particules selon la taille d'écran
- Animation JavaScript avec trajectoires complexes
- Types de mouvement :
- Circulaire : Mouvement orbital autour d'un point
- Sinusoïdal : Mouvement en vague
- Effet : Ajoute de la vie et du mouvement organique
-
Mobile First
- Réduction du nombre de particules sur mobile (30 vs 50)
- Réduction de la taille des orbes
- Réduction du blur pour économiser le GPU
-
GPU Acceleration
- Utilisation de
transformetopacity(propriétés GPU-accelerated) - Évite
left/topqui forcent les reflows
- Utilisation de
-
Debounce sur Resize
- Réinitialisation des particules avec délai de 300ms
- Évite les recalculs excessifs
-
RequestAnimationFrame
- Animations fluides synchronisées avec le refresh rate
- Meilleure performance que
setInterval
-
Contraste
- Toutes les couches utilisent des opacités faibles (< 0.1)
- Le contenu reste toujours lisible (contraste AAA)
-
Prefers-Reduced-Motion
- Toutes les animations sont désactivées si l'utilisateur préfère
- Les particules deviennent statiques
- Les gradients et orbes restent fixes
-
Performance
- Pas d'impact sur la lisibilité
- Pas de distraction excessive
- Animations subtiles et lentes
Dans styles.css, modifier les variables :
:root {
--color-bg-primary: #1a1a1a; /* Fond principal */
}.bg-gradient {
animation: gradientShift 20s ease infinite; /* Changer 20s */
}
.orb {
animation-duration: 25s; /* Changer la durée */
}Dans script.js :
const particleCount = window.innerWidth < 768 ? 30 : 50; // Modifier iciAjouter display: none; dans le CSS :
.bg-grid {
display: none; /* Désactiver la grille */
}- Vérifier que JavaScript est activé
- Vérifier la console pour les erreurs
- Vérifier que
prefers-reduced-motionn'est pas activé
- Réduire le nombre de particules
- Réduire la taille des orbes
- Désactiver certaines couches sur mobile
- Réduire les opacités dans le CSS
- Augmenter le blur des orbes
- Réduire l'intensité des gradients
<div class="animated-background" aria-hidden="true">
<div class="bg-gradient"></div> <!-- Couche 1 -->
<div class="bg-mesh"></div> <!-- Couche 2 -->
<div class="bg-particles"></div> <!-- Couche 3 -->
<div class="bg-orbs"> <!-- Couche 4 -->
<div class="orb orb-1"></div>
<div class="orb orb-2"></div>
<div class="orb orb-3"></div>
</div>
<div class="bg-grid"></div> <!-- Couche 5 -->
</div>-
Toujours tester avec
prefers-reduced-motion- Activer dans les DevTools
- Vérifier que tout reste fonctionnel
-
Tester sur Mobile
- Vérifier les performances
- Ajuster le nombre d'éléments si nécessaire
-
Respecter le Thème
- Garder les couleurs dans la palette gris/blanc
- Maintenir la subtilité
-
Performance First
- Privilégier CSS animations quand possible
- Utiliser JavaScript uniquement si nécessaire
- Effet de parallaxe au scroll de la souris
- Interaction avec le curseur (particules qui suivent)
- Mode sombre/clair dynamique
- Thèmes saisonniers
- Effets de particules au survol des cards
Note : Ce système est conçu pour être subtil et élégant, améliorant l'expérience sans distraire du contenu principal.