📚 Transitions CSS
Les transitions CSS permettent d'animer les changements de propriétés CSS de manière fluide plutôt qu'instantanée. Elles rendent l'interface plus agréable (à moins d'avoir trop de transitions!) et plus fluide.
Syntaxe de base
Transition simple
La propriété transition
définit quelle propriété animer et combien de temps dure l'animation.
.bouton {
background-color: #3498db;
transition: background-color 0.3s;
}
.bouton:hover {
background-color: #2980b9;
}
La syntaxe de base est: transition: propriété durée;
- propriété: La propriété CSS à animer (ex:
background-color
,transform
) - durée: Le temps de l'animation en secondes (
s
) ou millisecondes (ms
)
Durée de la transition
La durée détermine la vitesse de l'animation.
.rapide {
transition: background-color 0.1s; /* Très rapide */
}
.normale {
transition: background-color 0.3s; /* Durée standard */
}
.lente {
transition: background-color 1s; /* Lente */
}
.tres-lente {
transition: background-color 2s; /* Très lente */
}
Fonctions de transition (timing functions)
Les fonctions de transition contrôlent comment l'animation progresse dans le temps. Elles définissent l'accélération et la décélération.
.element {
transition: transform 0.5s ease;
}
Fonctions principales
ease
(par défaut)
- Démarre lentement, accélère au milieu, ralentit à la fin
- La plus naturelle et agréable visuellement
linear
- Vitesse constante du début à la fin
- Peut sembler mécanique
ease-in
- Démarre lentement, puis accélère
- Bon pour les éléments qui sortent de l'écran
ease-out
- Démarre rapidement, puis ralentit
- Bon pour les éléments qui entrent dans l'écran
ease-in-out
- Démarre lentement, vitesse normale au milieu, ralentit à la fin
- Similaire à
ease
mais plus prononcé
.ease {
transition: transform 0.5s ease;
}
.linear {
transition: transform 0.5s linear;
}
.ease-in {
transition: transform 0.5s ease-in;
}
.ease-out {
transition: transform 0.5s ease-out;
}
.ease-in-out {
transition: transform 0.5s ease-in-out;
}
Quelle fonction utiliser?
ease
(défaut) - Bon choix pour la plupart des casease-out
- Parfait pour les éléments qui apparaissent (boutons, modales)ease-in
- Bon pour les éléments qui disparaissentlinear
- Utilisez rarement, sauf pour des animations continues (rotations, défilements)
Animer plusieurs propriétés
Méthode 1: Lister les propriétés
Vous pouvez animer plusieurs propriétés en les séparant par des virgules.
.carte {
background-color: white;
transform: scale(1);
box-shadow: 0 2px 4px rgba(0,0,0,0.1);
transition: background-color 0.3s,
transform 0.3s,
box-shadow 0.3s;
}
.carte:hover {
background-color: #f8f9fa;
transform: scale(1.05);
box-shadow: 0 8px 16px rgba(0,0,0,0.2);
}
Méthode 2: Utiliser all
Le mot-clé all
anime toutes les propriétés qui changent.
.element {
transition: all 0.3s;
}
Utilisez all
pour simplifier, mais soyez conscient que cela anime toutes les propriétés qui changent, ce qui peut parfois causer des animations non désirées.
Propriétés couramment animées
Voici les propriétés les plus souvent utilisées avec les transitions:
Couleurs
.element {
transition: background-color 0.3s, color 0.3s, border-color 0.3s;
}
Transformation (transform
)
/* Agrandissement */
.element {
transform: scale(1);
transition: transform 0.3s;
}
.element:hover {
transform: scale(1.1);
}
/* Rotation */
.element {
transform: rotate(0deg);
transition: transform 0.3s;
}
.element:hover {
transform: rotate(45deg);
}
/* Déplacement */
.element {
transform: translateY(0);
transition: transform 0.3s;
}
.element:hover {
transform: translateY(-10px);
}
Opacité
.element {
opacity: 0.5;
transition: opacity 0.3s;
}
.element:hover {
opacity: 1;
}
Dimensions
.element {
width: 200px;
height: 100px;
transition: width 0.3s, height 0.3s;
}
.element:hover {
width: 250px;
height: 120px;
}