Режим смешивания

Оригинальное название: blending mode

Коротко

Правило, по которому цвет элемента комбинируется с цветами того, что лежит под ним: умножение, осветление, наложение и другие. В CSS задаётся свойствами mix-blend-mode и background-blend-mode.

Что такое «Режим смешивания»

Режимы смешивания пришли из графических редакторов: дизайнер, привыкший к слоям в Photoshop или Figma, найдёт в CSS знакомые названия — multiply, screen, overlay, darken, lighten, difference, luminosity и другие. Каждый режим — формула, которая берёт цвет верхнего слоя и цвет нижнего и вычисляет итоговый пиксель. Например, multiply перемножает значения: белое становится как бы прозрачным, а тёмное затемняет то, что под ним. screen действует наоборот — исчезает чёрное, а светлое осветляет.

Два свойства для двух задач

  • mix-blend-mode смешивает весь элемент с тем, что под ним на странице: текст с фотографией, картинку с фоном блока.
  • background-blend-mode смешивает фоновые слои одного элемента между собой: несколько картинок, градиент и цвет фона. Остальная страница не затрагивается.

Пример: логотипы партнёров и тонированное фото

Логотипы прислали в JPEG с белым фоном, а блок на сайте светло-серый. Вместо перерисовки каждого файла:

.partners {
  background: #eef1f6;
  isolation: isolate;          /* смешивать только внутри блока */
}
.partners img {
  mix-blend-mode: multiply;    /* белый фон картинок исчезает */
}
.hero {
  background: url("team.jpg") center / cover, #1c3d7a;
  background-blend-mode: luminosity; /* фото в фирменном цвете */
}

Свойство isolation: isolate создаёт новый контекст наложения, и смешивание не выходит за границы блока — иначе картинка может смешаться с фоном страницы под ним.

Когда не стоит использовать

Смешивание делает итоговый цвет трудно предсказуемым: текст поверх фотографии в режиме difference на одних участках читается, на других нет, а проверить контраст стандартными инструментами сложно. Для важного текста надёжнее обычная плашка с частичной непрозрачностью. Кроме того, большие смешиваемые области на слабых устройствах могут замедлять отрисовку при прокрутке и анимации.

Обновлено:

Все термины раздела «Frontend»

Что будем искать? Например,Продвижение