Esto pretendía ser una publicación corta con algunas imágenes y una solución fácil de aplicar. Se ha salido de control. El correo electrónico HTML es difícil. Para divertirnos, veamos cómo puede salir mal: Gmail's dark mode · Issue #68 · hteumeuleu/email-bugs · GitHub ![]()
Siéntete libre de hojear esta publicación y mirar las imágenes. Al final de la publicación, más o menos había llegado a la conclusión de que, debido a la popularidad del modo oscuro, podría valer la pena rediseñar el correo electrónico del resumen en lugar de intentar aplicar soluciones improvisadas a su código actual. Eso no depende de mí, y tal vez he estado mirando esto durante demasiado tiempo.
Ha habido algunas preguntas recientes sobre cómo se renderizan los correos electrónicos del resumen en los clientes de correo electrónico que están configurados en modo oscuro. El problema principal es que el color de fondo del encabezado del resumen se invierte en los clientes de correo electrónico que manejan el modo oscuro invirtiendo completamente los colores (aplicación Gmail (iOS), Outlook 2021 (Windows), Office 365 (Windows) y Correo de Windows). Esto crea un problema de contraste entre el color del encabezado y el logotipo del sitio.
Estos clientes de correo electrónico también tienen problemas con el color del texto en los botones y la sección “Desde tu última visita” del resumen.
Todas las imágenes a continuación son del servicio de pruebas de correo electrónico Litmus:
Desde un sitio de Discourse con un esquema de color oscuro, usando un logotipo PNG blanco con fondo transparente:
Esperado (Gmail App Oscuro para Android):
Malo (Gmail Oscuro para iOS, OL Office 365 Oscuro, Outlook 2021 Oscuro, Correo de Windows 10 Oscuro):
Resumen de clientes móviles (Gmail para iOS es el único cliente con problemas obvios con el color del encabezado):
Aquí está la misma prueba con el correo electrónico del resumen de Meta (esquema de color claro predeterminado, logotipo PNG oscuro sobre fondo transparente). Tenga en cuenta que Meta no tiene habilitada la configuración del sitio apply custom styles to digest (aplicar estilos personalizados al resumen), por lo que no está obteniendo las etiquetas y estilos de modo oscuro para los clientes que los admiten (Apple Mail y versiones recientes de Mail de iOS). Si la configuración apply custom styles to digest estuviera habilitada, sospecho que las pruebas de iPhone Oscuro también tendrían problemas de contraste entre el logotipo y el color de fondo.
Hay un par de formas en que el color de fondo del encabezado del correo electrónico se puede forzar a que coincida con el color del esquema de color predeterminado del sitio:
Para la aplicación Gmail para iOS, el color de fondo del encabezado se puede establecer con una imagen de fondo creada con un linear-gradient. Las imágenes de fondo creadas de esta manera no invierten su color. El truco es establecer ambos colores del linear-gradient en el valor del color “fondo del encabezado” del esquema de color predeterminado del sitio de Discourse.
Esto se puede lograr ahora agregando CSS personalizado en la pestaña Admin / Customize / Email Style / CSS. Establezca los valores de color en el valor del color “fondo del encabezado” de su esquema de color predeterminado. (Tenga en cuenta que no es posible usar var(--header_background) para establecer el color en el editor de CSS de correo electrónico):
.digest-header {
background-image: linear-gradient(#111, #111);
}
Probando este enfoque para el correo electrónico del resumen de Meta, estoy empezando a tener algunas dudas al respecto como solución para sitios que tienen un esquema de color predeterminado claro. El logotipo es legible, pero ¿esto se ve un poco raro?
Para los clientes de correo electrónico de escritorio Outlook 2021 Oscuro y Correo de Windows 10 Oscuro, el problema de la inversión del color de fondo del encabezado se puede solucionar agregando una regla !important al background-color que se establece para .digest-header. Esto no se puede lograr a través de CSS personalizado porque Discourse ya está agregando un estilo background-color al elemento sin la regla !important. Esa regla se agrega después del CSS personalizado, por lo que tiene precedencia. (Tenga en cuenta que este enfoque solo parece funcionar para forzar el color de fondo a un color oscuro. Falla cuando intento usarlo para forzar el fondo del encabezado a #ffffff.)
El problema con el color del texto en la sección “Desde tu última visita” para los clientes de correo electrónico que realizan una inversión completa de color no parece tener una solución fácil. Aquí se sugiere un truco para Gmail en iOS: Fixing Gmail’s dark mode issues with CSS Blend Modes — HTeuMeuLeu.com. Utiliza modos de fusión para engañar a Gmail para que establezca un color de texto blanco. Funciona en teoría, pero dada la complejidad del marcado del correo electrónico del resumen, no creo que valga la pena seguirlo.
En resumen, creo que para los sitios de Discourse que tienen un esquema de color oscuro como esquema de color predeterminado, una buena solución por ahora sería agregar el CSS que publiqué anteriormente a su pestaña Email Style / CSS. Esto hará que el logotipo del sitio sea legible en la aplicación Gmail Oscuro de iOS. Agregarlo no ha causado ningún problema con otros clientes de correo electrónico que he probado. Para los sitios que tienen un esquema de color claro predeterminado, no estoy tan seguro de ese enfoque. Forzar un fondo de encabezado blanco en una pantalla oscura no se ve bien.
El correo electrónico del resumen se desarrolló antes de que el modo oscuro se usara comúnmente. Quizás debido a la popularidad reciente del modo oscuro, tendría sentido rediseñar el correo electrónico del resumen con el objetivo de que se muestre bien tanto en modo oscuro como claro en los clientes de correo electrónico populares.
Si el rediseño completo del correo electrónico del resumen está fuera de alcance, podría valer la pena considerar la posibilidad de proporcionar configuraciones de dark_mode_digest_logo (logotipo del resumen en modo oscuro) y light_mode_digest_logo (logotipo del resumen en modo claro). En al menos algunos clientes de correo electrónico, será posible detectar el modo y mostrar el logotipo apropiado.
Para mejorar el modo oscuro en los clientes de escritorio de Outlook, Discourse podría dejar algunos nombres de clase en el HTML del correo electrónico en lugar de eliminarlos todos. Estos nombres de clase podrían usarse para apuntar al modo oscuro en Outlook: https://litmus.com/community/discussions/8256-outlook-app-vs-dark-mode-on-ios-a-disaster#comment-16402. (Tenga en cuenta que Outlook no puede manejar múltiples nombres de clase en un elemento, por lo que algunos nombres de clase aún necesitarían ser eliminados del archivo digest.html.erb.)











