Почему SVG-иконка исчезает в Safari или тёмной теме

Иконка может наследовать цвет фона, ссылаться на внешний sprite или использовать неподдерживаемую маску. Проверяют итоговые fill и размеры.

Почему SVG-иконка исчезает в Safari или тёмной теме — рабочая ситуация по теме статьи

Исчезновение SVG-иконки в Safari или при переключении на тёмную тему обычно связано с тем, как задан цвет заливки иконки — через жёстко заданное значение, которое перестаёт быть видимым на определённом фоне.

Использование currentColor без явного цвета родителя

Если SVG использует fill="currentColor" для наследования цвета текста от родительского элемента, а этот родитель не имеет явно заданного цвета в определённом контексте (или Safari интерпретирует наследование иначе, чем другие браузеры в конкретной ситуации), иконка может остаться того же цвета, что и фон, становясь визуально невидимой.

Тёмная тема меняет фон, но не саму иконку

Если цвет иконки задан фиксированным значением (например, чёрным) без учёта переключения темы, а фон при этом становится тёмным, иконка сливается с фоном — CSS-переменные, реагирующие на тему, должны применяться и к цвету иконок, а не только к фону и тексту.

Решение

Явно задавайте цвет SVG через CSS с использованием переменных, которые меняются в зависимости от темы, и проверяйте отображение иконки отдельно в Safari — этот браузер иногда обрабатывает наследование стилей для SVG чуть иначе, чем Chrome или Firefox.

FAQ

Частые вопросы по теме

01Можно применить рекомендации из статьи к существующему проекту?

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

02Сколько стоит связанная работа?

Стартовая стоимость услуги «Поиск и исправление ошибок сайта» — От 7 000 ₽. Точная оценка зависит от текущего проекта и объёма изменений.

03Что прислать для оценки?

Ссылку на сайт или сервис, короткое описание проблемы и пример ожидаемого результата. Доступы и подробное ТЗ для первого ответа обычно не нужны.

Дальше

Ещё материалы по теме

Вопрос по проекту

Покажите текущую ситуацию

Ссылка и короткое описание обычно полезнее длинного ТЗ. Мы увидим тему статьи в источнике заявки и не заставим повторять контекст.

Связаться

Старт

Можно прийти
просто с задачей.

Без готового ТЗ. Достаточно описать, что нужно запустить, исправить или связать.

Получить оценку

Коротко опишите задачу