Enquête sur les problèmes du mode sombre de l'e-mail de résumé d'activité

Sans faire cela, il est possible de forcer des couleurs d’arrière-plan spécifiques sur la plupart des clients de messagerie, les exceptions semblant être certains des anciens clients de messagerie de bureau Outlook. (Je suppose que le mode sombre n’est pas beaucoup utilisé sur les clients de bureau.)

Pour les clients de messagerie iOS (à l’exception de Gmail), Discourse le fait déjà si le paramètre apply custom styles to digest est activé. Le problème est qu’il code en dur la couleur d’arrière-plan et ne respecte pas la couleur “header background” du site :

La règle [dm='header'] pourrait être modifiée en :

"
[dm='header'] {
  background: ##{ColorScheme.hex_for_name('header_background')} !important;
}
"

Si cela avait du sens, une approche similaire pourrait être adoptée pour la section “Since your last visit” :

"
[dm='body_primary'] {
  background: #{SiteSetting.email_accent_bg_color} !important;
  color: #{SiteSetting.email_accent_fg_color} !important;
}
"

Notez que l’attribut dm pour les styles de mode sombre est ajouté à l’e-mail ici : discourse/lib/email/styles.rb at main · discourse/discourse · GitHub.

Quelque chose comme cela devrait fonctionner pour résoudre le problème sur les clients de messagerie iOS (à l’exception de Gmail).

Pour le client Gmail iOS, les couleurs d’arrière-plan peuvent être forcées en les définissant avec un dégradé linéaire. Il ne semble y avoir aucun effet secondaire indésirable à définir un arrière-plan en dégradé linéaire de cette manière pour tous les clients de messagerie. Il devrait donc être possible d’ajouter simplement une couleur d’arrière-plan en dégradé linéaire au CSS en ligne envoyé à tous les clients de messagerie.

Je soupçonne que la solution la plus simple pour gérer la section “Since your last visit” pour les clients de messagerie qui effectuent une inversion complète des couleurs serait de laisser les clients effectuer l’inversion, mais de s’assurer qu’il y a beaucoup de contraste entre les paramètres email accent accent bg color et email accent fg color :

Cela devrait empêcher des cas comme celui-ci (avec les valeurs par défaut de ces paramètres) :

1 « J'aime »