EasyLottie

Руководство EasyLottie

Как изменить цвета анимированного SVG (экспорт Figma)

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

Автор Редакционная группа EasyLottieРассмотрено 4 мин чтенияСообщить об исправлении
EasyLottie SVG Color Changer после загрузки анимированного значка воспроизведения с вращающейся желтой орбитой, синей кнопкой воспроизведения и розовыми блестками, со списком семи обнаруженных цветов.
Образец значка после загрузки: семь цветов, обнаруженных по заливкам и обводкам, с анимацией, воспроизводимой в предварительном просмотре.
Тот же значок SVG был изменен в цвете: кнопка воспроизведения стала почти черной, а кольцо орбиты стало розовым.
После перекрашивания двух свотчей. Орбита продолжает вращаться, и блестки продолжают мерцать новыми цветами.

Зачем перекрашивать SVG вместо повторного экспорта из Figma

Когда анимированный SVG возвращается в неправильную палитру, повторное открытие Figma, редактирование каждого слоя и повторный экспорт выполняются медленно, и зачастую исходный файл не принадлежит вам. Если движение правильное, а неправильные только цвета, прямая перекраска будет быстрее и безопаснее. Вы сохраняете точную анимацию и меняете только заливки и обводки.

Сюда входят экспорт движений Figma, библиотеки значков и SVG-файлы торговой площадки, которые поставляются в общей палитре или предназначены для светлого режима, когда вам нужен темный режим. Это также происходит при передаче: разработчик получает SVG, команда бренда меняет цвет через неделю, и никто не хочет просматривать файл дизайна туда и обратно для получения одного шестнадцатеричного значения.

Как анимированный SVG сохраняет цвет и движение

Анимированный SVG из инструмента дизайна обычно состоит из двух частей. Движение находится в элементе стиля CSS @keyframes, который применяется к фигурам через имена классов. Цвет задается самими фигурами в виде атрибутов заливки и обводки или свойств встроенного стиля. Поскольку они разделены, цвета можно заменять, не затрагивая анимацию, при условии, что редактор меняет только цветные маркеры.

Figma добавляет сложности. Чтобы сохранить цвета с широкой гаммой, при экспорте цвет часто записывается дважды в один и тот же атрибут стиля: сначала как шестнадцатеричное значение, затем как цвет (display-p3 r g b). В CSS побеждает последнее допустимое объявление, поэтому в браузерах, поддерживающих display-p3, шестнадцатеричное значение игнорируется. Редактируйте только шестнадцатеричный код, и на экране ничего не изменится. Это наиболее распространенная причина, по которой люди думают, что перекрашивание SVG не ​​сработало.

Пошагово: перекрашиваем анимированный SVG онлайн

Все работает локально в вашем браузере, поэтому SVG никогда не загружается.

  1. Откройте программу смены цвета SVG и вставьте файл .svg.
  2. Инструмент удаляет переопределения display-p3, сопоставляет именованные цвета с шестнадцатеричным кодом и выводит список всех найденных цветов заливки и обводки. Анимация продолжает воспроизводиться в режиме предварительного просмотра.
  3. Нажмите на образец и выберите новый цвет. Предварительный просмотр обновляется немедленно.
  4. Повторите эти действия для каждого цвета, который необходимо изменить, проверяя контрастность по отношению к фону, на котором будет находиться SVG.
  5. Загрузите перекрашенный 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 блоки44, без изменений
объявления и классы анимации44, без изменений
Переопределения цвета display-p330, удалено, поэтому применяется шестнадцатеричное значение.
Отличные цвета75, потому что оба новых цвета уже существовали.
Размер файла1,945 байт1,825 байт

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

Переопределения display-p3 являются причиной того, что многие экспортированные файлы Figma игнорируют изменения цвета. Браузер, поддерживающий широкую цветовую гамму, использует более позднее объявление p3 и никогда не отображает измененное вами шестнадцатеричное значение. Удаление переопределения делает редактируемое шестнадцатеричное значение тем, которое отображается.

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

Знайте пределы

  • Цвета, определенные в градиентах, фильтрах, переменных CSS или JavaScript, не обнаруживаются при сканировании заливкой и обводкой, и их необходимо редактировать в исходном коде.
  • Удаление переопределений display-p3 означает, что дисплеи с широкой гаммой отображают шестнадцатеричный цвет sRGB. Для большинства брендовых цветов разница незаметна; для очень насыщенных цветов это может быть заметно.
  • SVG, анимированные с помощью SMIL или JavaScript, сохраняют свой код анимации, но цвета, заданные этим кодом во время выполнения, не изменяются.
  • Объединенные цвета не могут быть снова разделены в одном сеансе. Перекрасьте оригинал, если они вам нужны отдельно.

Если ваш результат отличается

  1. 1.Если измененный вами цвет не обновляется в браузере, выполните поиск цвета (display-p3) в SVG. Более позднее переопределение является выигрышным.
  2. 2.Если видимый цвет отсутствует в списке, найдите ограничитель градиента, переменную CSS или фильтр. Они нуждаются в ручном редактировании.
  3. 3.Если анимация останавливается после редактирования в другом инструменте, убедитесь, что атрибуты блока стиля и класса сохранились. Некоторые оптимизаторы удаляют неиспользуемые классы.
  4. 4.Если вам нужен Lottie, а не SVG, преобразуйте после перекрашивания или сначала преобразуйте и перекрасьте Lottie.

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

Могу ли я изменить цвета анимированного SVG, не нарушая анимацию?

Да. В нашем тесте все четыре блока @keyframes и анимированные классы после перекрашивания не изменились; изменились только значения цвета и переопределения display-p3.

Почему изменение шестнадцатеричного цвета в Figma SVG ничего не дает?

Figma часто записывает значение цвета (display-p3…) после шестнадцатеричного числа в том же стиле. Браузеры, поддерживающие display-p3, используют более позднее значение. Удалите переопределение или используйте подходящий инструмент, и шестигранник будет применен.

Мой SVG где-нибудь загружен?

Нет. Обнаружение, изменение цвета и загрузка происходят локально в вашем браузере.

Почему количество цветов уменьшилось после того, как я перекрасил?

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

Могу ли я превратить перекрашенный SVG в Lottie?

Да. Используйте инструмент Figma to Lottie, чтобы преобразовать анимированный SVG в векторный Lottie.

Первоисточники

Техническое поведение было проверено на соответствие исходной документации по среде выполнения или формату, приведенной ниже.

Связанные руководства

Продолжите практические рабочие процессы редактирования Lottie.

Просмотреть все руководства