В этом материале узнаете, какие современные решения применяет наша разработка и как менять цвет фавикона в формате SVG с учетом цветовой темы браузера.
Фавикон (favicon) – это значок сайта, который отображается на вкладке браузера рядом с названием страницы или в результатах поиска. Также favicon может использоваться как значок мобильного приложения в главном меню смартфона. Повышает узнаваемость сайта, привлекает посетителей на сайт и подчеркивает фирменный стиль бренда.
В этом материале узнаете, как менять цвет фавикона в формате SVG с учетом цветовой темы браузера.
Есть несколько способов обнаружения светлой и темной темы в браузере:
refers-color-circuit
@media (prefers-color-scheme: dark) { /* выполнение кода в темном режиме */ }
if (window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches) { // выполнение кода в темном режиме }
Как же в итоге переключить favicon в темном режиме? Во-первых добавляем иконку в <head> секцию документа:
<head>
<link rel="icon" href="/favicon.svg" type="image/svg+xml">
В коде svg иконки вносим изменения. Для примера возьмем значок в виде буквы Z
С помощью вышеупомянутой функции CSS prefers-color-scheme задаем значение заливки области белым в темной теме:
prefers-color-scheme
<svg width="267" height="267" viewBox="0 0 267 267" fill="none" xmlns="http://www.w3.org/2000/svg"> <style> path { fill: black; } @media (prefers-color-scheme: dark) { path { fill: white; } } </style> <path d="M208 168.631H150.462L208 81.8567V0.888672H0.671875V99.4336H58.8428L0.671875 181.612V266.212H208V168.631ZM21.9914 245.071V186.41L100.046 78.2584H22.4888V22.4899H185.37V75.3439L111.203 189.683H185.37V244.981L21.9914 245.071Z"/></svg>
Стоит учитывать то, что не все браузеры поддерживают SVG-иконки сайта. В этом случае мы добавляем дополнительно иконку в формате .png, когда браузер не может загрузить .svg в качестве значка:
<link rel="icon" type="image/svg+xml" href="/favicon.svg"> <link rel="icon" type="image/png" href="/favicon.png">
Смотрим результат:
Спасибо за внимание!
Расскажите о вашей задаче. Мы свяжемся, чтобы задать вопросы и обсудить, чем мы можем быть полезны :)
+7 (499) 110-92-21
director+7956@zexler.ru
Мы используем cookie-файлы и инструменты аналитики. Используя сайт или нажимая «Я согласен», вы принимаете условия обработки cookie и персональных данных в соответствии с Политикой конфиденциальности.
Я согласен