HTML-сообщения в темном режиме

Я работаю над проектом электронной почты, и мне нужно отображать тело письма в темном режиме. Тело письма представляет собой HTML-код с определенными цветовыми стилями. Моя цель - перевернуть текст и цвет фона, чтобы отобразить его в темном режиме. Определите темный стиль схемы, подобный этому

       @media (prefers-color-scheme: dark) {
    html {
        filter: invert(1) hue-rotate(180deg);
    }

    img, video {
        filter: invert(1) hue-rotate(180deg);
    }
}

После переворота цветов в целом переворот изображений и видео выглядит как хороший результат. Единственный недостаток заключается в том, что это также меняет цвета смайликов, что делает их ужасными.

Я также пробовал смешивать цвета.

          color: white;
   mix-blend-mode: screen;

Это также сделает цвета смайликов ярче. И это не делает черные тексты белыми.

Все сводится к вопросу: как сделать так, чтобы следующий текст отображался белым, а смайлики отображались нормально.

       <div style="color: black;">
      Hello world!    
</div>

Ожидаемый результат:

--- Отредактировано ---

Хорошим примером является почтовое приложение Apple:

Отправьте письмо с HTML:

       <div>Test colors: </div>
<div style="color: black;">Black</div>
<div style="color: green;">Green</div>
<div style="color: red;">Red</div>
<div style="color: pink;">Pink</div>
<div style="color: blue;">Blue</div>
<div style="color: yellow;">Yellow</div>
<div style="color: gray;">Grey</div>
<div style="color: white;">White</div>
<div style="color: #8300bb;">Purple</div>

1 ответ

Вы должны объединить свои смайлики с классом смайлов. Затем в CSS вы должны инвертировать его вместе с телом.

Если вы перевернете что-то, что перевернуто, оно вернется в нормальное состояние!:)

Думаю вам нужно что-то вроде этого:

         html {
     background: white;
     color: black;
}

@media (prefers-color-scheme: dark) {
    html {
        filter: invert(1);
    }
    .emoji { 
        filter: invert(1); 
    }
}
         <div> Hello world! 
    <span class="emoji">  </span> 
</div>

Другие вопросы по тегам