Саша Окунев для профи
15 января 2023
Как безопасно накатывать обновления на компоненты из библиотек в Figma
Проблема
Когда работаешь в большом проекте, в котором используются библиотеки, всегда есть риск, что что-то сломается. Например, может прилететь обновление компонента, у которого изменилась структура, а на его экземплярах (instance) были настроены оверрайды.
Это приводит к тому, что после апдейта экземпляр в файле потеряет контент, который в нём был.
Когда у нас сотни файлов и экранов в них, слетевший ценный контент может стать большой проблемой для команды. Так что мы, как хранители UI-кита, бережём нервы наших дизайнеров и следим за тем, чтобы ни у кого ничего не слетело.
С этим можно бороться через функцию Review Updates. В этом уроке я покажу, как при помощи неё последовательно восстановить контент в каждом экземпляре.
Файлы урока
Для начала рассмотрим файл библиотеки. Его можно скачать из Community и повторить урок самостоятельно.
Напомню, что функция библиотек доступна в Figma начиная с тарифа Professional.
В библиотеке мы видим два компонента:
- screen-header
- number
screen-header можно использовать для оформления макетов. Он содержит место для заголовка экрана, описание и порядковый номер. На его примере будем менять структуру, чтобы контент слетал, а мы его восстановили.
Теперь посмотрим на макет с экземплярами. Его придётся воссоздать самостоятельно.
Видим, что в оверрайдах прописаны номера экранов.
1
Допустим, мы хотим вместо обычного текстового слоя с номером экрана подставить компонент number. Это довольно серьёзно изменит структуру screen-header. Как мы видим, в его экземплярах прописаны номера, они сто процентов слетят, когда мы обновим компонент. Figma не сможет сопоставить простой текстовый слой и компонент number, в котором тоже есть текстовый слой.
Итак, погнали.
2
В файле библиотеки подменяем текстовый слой для номеров экземпляром number.
Для этого удобно использовать функцию Paste to Replace, клавиша Shift
Cmd
R
.
3
Публикуем библиотеку, чтобы донести обновление до файла. Нажимаем Publish.
И ещё раз.
4
Теперь переходим в файл макета. У меня он называется slashdesigner.
При его открытии появится плашка Component updates available. Нажимаем Review.
5
Видим список обновившихся компонентов файла. Не нажимаем Update или Update all сразу, а нажимаем на компонент в списке или на шеврон.
6
Оказываемся на экране сравнения версий. Видим, что на одном из экземпляров контент с номером экрана 3 был потерян и заменён на пустой number.
В данном случае из контента всего один символ, но если текст длинный, удобно в этот момент сделать скриншот левой версии, чтобы на следующем шаге восстановить его вручную.
Нажимаем Update instance. Так мы оставим в этом экземпляре свежую версию справа.
7
Видим, что экземпляр обновился.
8
Хитрость: не закрываем окно Review updates, а отодвигаем его в сторону, чтобы не загораживало основной редактор. Это позволит вернуться к процессу сравнения позже.
9
По желанию. Если сделали скриншот на шаге 6, вставляем его рядом с обновлённым экземпляром, чтобы было удобно с ним сверяться.
10
Восстанавливаем потерянный контент. После этого удаляем скриншот, он больше не нужен.
11
Возвращаем на центр экрана отодвинутое ранее окно Review updates и нажимаем кнопку Next instance, чтобы перейти к ревью следующего экземпляра.
12
Figma фокусирует нас на следующем экземпляре. Восстанавливаем его контент аналогично первому. Повторяем шаги 6-12, пока экземпляры не закончатся.
13
Мы восстановили все слетевшие оверрайды компонента screen-header.
14
Последний, перестраховочный шаг для макетов, в которых давно не обновляли компоненты. Если есть другие компоненты, которые требуют аналогичного ревью, нажимаем Back в верхнем левом углу и возвращаемся на экран Updates. Убеждаемся, что он пуст и мы ничего не забыли. Теперь можно закрыть окно. ⏹️
/designer — образовательный телеграм-канал о продуктовом дизайне и инструментах для него, о карьере дизайнера и эмиграции. Опечатки и обратную связь → @okunev