Руководство EasyLottie
Как изменить цвета анимированного SVG (экспорт Figma)
Как перекрасить анимированный SVG, не теряя его движения, почему экспортированные файлы Figma часто не поддаются простому редактированию цвета, а также протестировано до и после реального перекрашивания.


Зачем перекрашивать SVG вместо повторного экспорта из Figma
Когда анимированный SVG возвращается в неправильную палитру, повторное открытие Figma, редактирование каждого слоя и повторный экспорт выполняются медленно, и зачастую исходный файл не принадлежит вам. Если движение правильное, а неправильные только цвета, прямая перекраска будет быстрее и безопаснее. Вы сохраняете точную анимацию и меняете только заливки и обводки.
Сюда входят экспорт движений Figma, библиотеки значков и SVG-файлы торговой площадки, которые поставляются в общей палитре или предназначены для светлого режима, когда вам нужен темный режим. Это также происходит при передаче: разработчик получает SVG, команда бренда меняет цвет через неделю, и никто не хочет просматривать файл дизайна туда и обратно для получения одного шестнадцатеричного значения.
Как анимированный SVG сохраняет цвет и движение
Анимированный SVG из инструмента дизайна обычно состоит из двух частей. Движение находится в элементе стиля CSS @keyframes, который применяется к фигурам через имена классов. Цвет задается самими фигурами в виде атрибутов заливки и обводки или свойств встроенного стиля. Поскольку они разделены, цвета можно заменять, не затрагивая анимацию, при условии, что редактор меняет только цветные маркеры.
Figma добавляет сложности. Чтобы сохранить цвета с широкой гаммой, при экспорте цвет часто записывается дважды в один и тот же атрибут стиля: сначала как шестнадцатеричное значение, затем как цвет (display-p3 r g b). В CSS побеждает последнее допустимое объявление, поэтому в браузерах, поддерживающих display-p3, шестнадцатеричное значение игнорируется. Редактируйте только шестнадцатеричный код, и на экране ничего не изменится. Это наиболее распространенная причина, по которой люди думают, что перекрашивание SVG не сработало.
Пошагово: перекрашиваем анимированный SVG онлайн
Все работает локально в вашем браузере, поэтому SVG никогда не загружается.
- Откройте программу смены цвета SVG и вставьте файл .svg.
- Инструмент удаляет переопределения display-p3, сопоставляет именованные цвета с шестнадцатеричным кодом и выводит список всех найденных цветов заливки и обводки. Анимация продолжает воспроизводиться в режиме предварительного просмотра.
- Нажмите на образец и выберите новый цвет. Предварительный просмотр обновляется немедленно.
- Повторите эти действия для каждого цвета, который необходимо изменить, проверяя контрастность по отношению к фону, на котором будет находиться SVG.
- Загрузите перекрашенный SVG и откройте его в браузере, чтобы убедиться, что анимация все еще работает.
Проверьте результат перед отправкой
Откройте загруженный файл прямо во вкладке браузера. Движение должно быть идентично оригиналу. Затем поместите его на реальный фон: цвет, который работал на белом, может исчезнуть на темной поверхности, а тонкие штрихи первыми потеряют контраст.
Если SVG попадает в базу кода, сравните его с оригиналом. Чистая перекраска изменяет только значения цвета, а для экспорта Figma удаляет переопределения p3. Любое изменение блока стиля, имен классов или данных пути означает что-то иное, чем изменение цвета.
Перекрасить или конвертировать в Lottie?
Если пункту назначения требуется Lottie, а не SVG, анимированный SVG можно преобразовать в настоящий вектор Lottie с помощью инструмента Figma в Lottie. Сначала перекрасьте, если хотите, чтобы изменения были сохранены в обоих файлах. Если вы ожидаете большего изменения цвета в дальнейшем, сначала выполните преобразование, поскольку цвета Lottie можно снова поменять местами в любое время с помощью устройства смены цветов Lottie.
Lottie обычно является лучшим форматом времени выполнения для приложений, поскольку встроенные проигрыватели на iOS и Android поддерживают его и обеспечивают управление воспроизведением. SVG проще использовать для веб-страницы, где достаточно анимации CSS.
Быстрый контрольный список
- Поместите .svg в устройство смены цвета SVG; ничего не загружается.
- Просмотрите каждый обнаруженный цвет заливки и обводки.
- Следите за переопределениями display-p3 при экспорте Figma.
- Перекрасьте все связанные образцы за один проход, чтобы избежать слияния нужных вам цветов.
- Сравнить выходные данные: должны измениться только значения цвета.
- Впоследствии преобразуйте его в Lottie, если это необходимо вашему приложению.
Воспроизведите рабочий процесс
Используйте эти локальные образцы файлов, чтобы повторить проверки, описанные в этом руководстве. Просмотрите файл перед использованием его в рабочем проекте.
Протестированный результат: перекрашивание анимированного SVG в стиле Figma.
Наш образец SVG имитирует экспорт анимации Figma: CSS @keyframes в блоке стилей, анимированные классы фигур и три основных цвета, записанные дважды: один раз в шестнадцатеричном формате и один раз в виде переопределения цвета (display-p3…). Мы изменили синий (#3B82F6) на #111827 и желтый (#F5C542) на #EC4899, загрузили результат и сравнили его с оригиналом.
| Проверить | Оригинал | После перекрашивания |
|---|---|---|
| @keyframes блоки | 4 | 4, без изменений |
| объявления и классы анимации | 4 | 4, без изменений |
| Переопределения цвета display-p3 | 3 | 0, удалено, поэтому применяется шестнадцатеричное значение. |
| Отличные цвета | 7 | 5, потому что оба новых цвета уже существовали. |
| Размер файла | 1,945 байт | 1,825 байт |
Изменились только значения цвета. Блок стилей, ключевые кадры, классы и геометрия остались нетронутыми, поэтому загруженный файл анимируется точно так же, как и раньше.
Переопределения display-p3 являются причиной того, что многие экспортированные файлы Figma игнорируют изменения цвета. Браузер, поддерживающий широкую цветовую гамму, использует более позднее объявление p3 и никогда не отображает измененное вами шестнадцатеричное значение. Удаление переопределения делает редактируемое шестнадцатеричное значение тем, которое отображается.
Оба новых цвета уже использовались в других частях значка, поэтому семь различных цветов превратились в пять. Если позже вы захотите изменить объединенные цвета отдельно, начните заново с исходного файла.
Знайте пределы
- Цвета, определенные в градиентах, фильтрах, переменных CSS или JavaScript, не обнаруживаются при сканировании заливкой и обводкой, и их необходимо редактировать в исходном коде.
- Удаление переопределений display-p3 означает, что дисплеи с широкой гаммой отображают шестнадцатеричный цвет sRGB. Для большинства брендовых цветов разница незаметна; для очень насыщенных цветов это может быть заметно.
- SVG, анимированные с помощью SMIL или JavaScript, сохраняют свой код анимации, но цвета, заданные этим кодом во время выполнения, не изменяются.
- Объединенные цвета не могут быть снова разделены в одном сеансе. Перекрасьте оригинал, если они вам нужны отдельно.
Если ваш результат отличается
- 1.Если измененный вами цвет не обновляется в браузере, выполните поиск цвета (display-p3) в SVG. Более позднее переопределение является выигрышным.
- 2.Если видимый цвет отсутствует в списке, найдите ограничитель градиента, переменную CSS или фильтр. Они нуждаются в ручном редактировании.
- 3.Если анимация останавливается после редактирования в другом инструменте, убедитесь, что атрибуты блока стиля и класса сохранились. Некоторые оптимизаторы удаляют неиспользуемые классы.
- 4.Если вам нужен Lottie, а не SVG, преобразуйте после перекрашивания или сначала преобразуйте и перекрасьте Lottie.
Часто задаваемые вопросы
Могу ли я изменить цвета анимированного SVG, не нарушая анимацию?
Да. В нашем тесте все четыре блока @keyframes и анимированные классы после перекрашивания не изменились; изменились только значения цвета и переопределения display-p3.
Почему изменение шестнадцатеричного цвета в Figma SVG ничего не дает?
Figma часто записывает значение цвета (display-p3…) после шестнадцатеричного числа в том же стиле. Браузеры, поддерживающие display-p3, используют более позднее значение. Удалите переопределение или используйте подходящий инструмент, и шестигранник будет применен.
Мой SVG где-нибудь загружен?
Нет. Обнаружение, изменение цвета и загрузка происходят локально в вашем браузере.
Почему количество цветов уменьшилось после того, как я перекрасил?
Два образца теперь имеют одно и то же значение, поэтому они отображаются как один. Перекрасьте исходный файл, если позже вам понадобится изменить их отдельно.
Могу ли я превратить перекрашенный SVG в Lottie?
Да. Используйте инструмент Figma to Lottie, чтобы преобразовать анимированный SVG в векторный Lottie.
Первоисточники
Техническое поведение было проверено на соответствие исходной документации по среде выполнения или формату, приведенной ниже.