アクティビティサマリーメールのダークモードの問題を調査中

それを実行しなくても、ほとんどのメールクライアントで特定の背景色を強制することは可能です。例外は、古いOutlookデスクトップメールクライアントの一部であるようです。(デスクトップクライアントではダークモードはそれほど使用されていないと推測します。)

iOS(Gmailを除く)のメールクライアントでは、apply custom styles to digest設定が有効になっている場合、Discourseはすでにこれを実行しています。問題は、背景色をハードコーディングしており、サイトの「ヘッダーの背景色」を尊重していないことです。

[dm='header']ルールを次のように変更できます。

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

もし適切であれば、同様のアプローチを「前回のご訪問以降」セクションにも適用できます。

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

ダークモードのスタイル用のdm属性が、ここでメールに追加されることに注意してください。discourse/lib/email/styles.rb at main · discourse/discourse · GitHub

そのようなものであれば、iOS(Gmailを除く)のメールクライアントの問題を修正できるはずです。

iOSのGmailクライアントの場合、線形グラデーションを使用して背景色を強制できます。この方法で線形グラデーションの背景を設定しても、すべてのメールクライアントで意図しない副作用はないようです。したがって、すべてのメールクライアントに送信されるインラインCSSに線形グラデーションの背景色を追加しても問題ないはずです。

「前回のご訪問以降」セクションを処理する最も簡単な解決策は、クライアントに完全な色反転を実行させることですが、email accent accent bg colorとemail accent fg colorの設定間に十分なコントラストがあることを確認することだと思います。

これにより、次のようなケース(これらの設定のデフォルト値を使用した場合)を防ぐことができます。

「いいね!」 1