Meilleures Pratiques CSS pour Templates Email
Créer des templates CSS efficaces pour les emails nécessite de comprendre les limitations et les particularités des clients email. Ce guide vous aidera à écrire du CSS qui fonctionne de manière fiable sur Gmail, Outlook, Apple Mail et autres clients email majeurs.
Typemail inline automatiquement votre CSS et applique des optimisations spécifiques aux emails en utilisant Juice, garantissant une compatibilité maximale.
✅ Pratiques Recommandées
1. Utilisez des Sélecteurs Spécifiques
✅ Bon :
.email-container {
max-width: 600px;
margin: 0 auto;
}
h1 {
color: #333333;
font-size: 28px;
}
.button {
background-color: #0066cc;
padding: 12px 24px;
}
❌ À éviter :
* {
font-family: Arial; /* Le sélecteur universel affecte tout */
}
div {
margin: 10px; /* Trop générique, difficile à surcharger */
}
2. Minimisez l'Usage de !important
✅ Bon :
.primary-button {
background-color: #0066cc;
color: white;
}
/* Utilisez !important uniquement pour les surcharges critiques */
@media screen and (max-width: 600px) {
.mobile-hide {
display: none !important;
}
}
❌ À éviter :
p {
margin: 16px !important;
color: #333 !important;
font-size: 16px !important;
}
3. Évitez les Ressources Externes
❌ N'utilisez jamais :
@import url('https://fonts.googleapis.com/css?family=Roboto');
.background {
background-image: url('https://example.com/bg.jpg');
}
✅ À la place :
body {
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Arial, sans-serif;
}
/* Utilisez des data URLs ou des images inline en HTML pour les visuels critiques */
4. Utilisez des Propriétés Bien Supportées
✅ Bien Supportées :
.text {
color: #333333;
font-family: Arial, sans-serif;
font-size: 16px;
font-weight: 600;
line-height: 1.5;
margin: 16px 0;
padding: 10px;
background-color: #f5f5f5;
border: 1px solid #dddddd;
border-radius: 4px;
}
⚠️ Support Limité :
.element {
position: fixed; /* Non supporté dans la plupart des clients email */
position: absolute; /* Support très limité */
transform: rotate(45deg); /* Support inconsistant */
box-shadow: 0 4px 6px rgba(0,0,0,0.1); /* Fonctionne dans certains clients */
}
5. Tailles de Police Axées sur l'Accessibilité
✅ Recommandé :
body {
font-size: 16px; /* Taille de base */
}
h1 {
font-size: 28px; /* Grande et lisible */
}
p {
font-size: 16px; /* Jamais en dessous de 14px pour le texte principal */
}
.small-text {
font-size: 14px; /* Minimum pour la lisibilité */
}
❌ À éviter :
.tiny {
font-size: 8px; /* Illisible sur mobile */
}
.micro {
font-size: 6px; /* Violation d'accessibilité */
}
⚠️ Limitations des Clients Email
Animations & Transitions
❌ À éviter :
@keyframes fadeIn {
from { opacity: 0; }
to { opacity: 1; }
}
.animated {
animation: fadeIn 1s;
transition: all 0.3s;
}
Les animations CSS ne sont pas supportées dans la plupart des clients email, y compris Outlook et Gmail. Elles seront simplement ignorées.
Positionnement
❌ À éviter :
.fixed-header {
position: fixed; /* Ne fonctionne pas dans les emails */
top: 0;
}
.absolute-badge {
position: absolute; /* Support très limité */
right: 10px;
}
✅ Utilisez plutôt :
/* Utilisez des layouts basés sur les tables pour le positionnement complexe */
.container {
display: block;
position: relative; /* Alternative plus sûre */
}
Flexbox & Grid
⚠️ Support limité :
.flex-container {
display: flex; /* Fonctionne dans Apple Mail, pas Outlook */
justify-content: space-between;
}
.grid {
display: grid; /* Support très limité */
}
✅ Alternative fiable :
/* Utilisez les tables pour la mise en page (oui, vraiment !) */
table {
width: 100%;
border-collapse: collapse;
}
td {
vertical-align: top;
}
📱 Design Responsive
Media Queries
✅ Approche recommandée :
/* Styles de base (mobile-first) */
.container {
width: 100%;
padding: 10px;
}
/* Styles desktop */
@media screen and (min-width: 600px) {
.container {
width: 600px !important;
padding: 20px !important;
}
.mobile-only {
display: none !important;
}
}
Gardez les media queries dans les balises <style> (Typemail les préserve automatiquement). Utilisez !important dans les media queries pour une meilleure compatibilité.
Patterns Mobile-Friendly
/* Layout empilé sur mobile */
@media screen and (max-width: 600px) {
.column {
width: 100% !important;
display: block !important;
}
/* Augmentez les zones tactiles */
.button {
min-height: 44px !important;
padding: 14px 20px !important;
}
/* Augmentez l'espacement */
h1 {
font-size: 24px !important;
margin: 16px 0 !important;
}
}
🎨 Couleur & Typographie
Formats de Couleur Sûrs
✅ Utilisez :
.element {
color: #333333; /* Hex */
background-color: rgb(51, 51, 51); /* RGB */
border-color: rgba(0, 0, 0, 0.1); /* RGBA (bon support) */
}
⚠️ À éviter :
.element {
color: hsl(0, 0%, 20%); /* HSL a un support inconsistant */
background: linear-gradient(to right, #000, #fff); /* Support limité */
}
Piles de Polices
✅ Recommandé :
body {
/* Polices système (universellement disponibles) */
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto,
Helvetica, Arial, sans-serif;
}
.serif {
font-family: Georgia, 'Times New Roman', Times, serif;
}
.mono {
font-family: 'Courier New', Courier, monospace;
}
🔧 Patterns Courants
Boutons
.button {
display: inline-block;
padding: 12px 24px;
background-color: #0066cc;
color: #ffffff;
text-decoration: none;
border-radius: 4px;
font-weight: 600;
text-align: center;
}
.button:hover {
background-color: #0052a3; /* Hover fonctionne dans certains clients */
}
Tableaux
table {
width: 100%;
border-collapse: collapse;
margin: 16px 0;
}
th {
background-color: #f5f5f5;
padding: 12px;
text-align: left;
font-weight: 600;
border: 1px solid #dddddd;
}
td {
padding: 12px;
border: 1px solid #dddddd;
}
Conteneur
.email-container {
max-width: 600px;
margin: 0 auto;
padding: 20px;
background-color: #ffffff;
font-family: Arial, sans-serif;
}
🧪 Recommandations de Test
-
Testez dans les clients majeurs :
- Gmail (web, iOS, Android)
- Outlook (2016, 2019, 365, web)
- Apple Mail (macOS, iOS)
- Yahoo Mail
- Thunderbird
-
Utilisez des outils de validation :
- Le Dashboard vous avertira des problèmes courants
- Testez avec Litmus ou Email on Acid
-
Vérifiez sur les appareils :
- Desktop (différentes tailles d'écran)
- Mobile (iOS et Android)
- Mode sombre vs. mode clair
📚 Ressources Supplémentaires
- Can I Email - Référence du support CSS pour les clients email
- Email Client CSS Support
- Litmus Community - Discussions sur le développement d'emails
Si vous n'êtes pas sûr d'une propriété CSS spécifique, consultez Can I Email pour les informations de compatibilité.