Обложка канала

/designer

Канал о дизайне интерфейсов в Скетче, анимации и дизайн-системах, который ведёт дизайнер из Газпромбанка.

/designer

7 лет назад
Открыть в
Missing Symbol: как возникает и как бороться

В Скетче может возникнуть неприятная ситуация, когда в сложных символах вдруг слетают оверрайды, а вместо них остаются красные заглушки c надписью Missing Symbol. Этот пост поможет понять, почему так происходит и что по этому поводу делать.

Чтобы было наглядно, смотри исходник, в котором разбирается дальнейший пример.

1. Допустим, есть символ каточки — card. У него есть вложенный символ — иконка star.

2. star может быть в двух состояниях: активна (star-active) и неактивна (star-inactive). В мастер-артборде card используется вариант star-active.

3. В экземпляре card переключаем оверрайд star с -active в -inactive.

4. Удаляем мастер star-inactive. Получаем стандартное сообщение Are you sure you want to delete this Symbol?

Скетч как бы намекает нам, что у данного мастера есть живые дети. Обычно мы пропускаем это сообщение мимо ушей, не боясь отвязать символ и превратить детей в группы. Но Скетч не умеет предупреждать о том, что символ может использоваться в оверрайдах. Нельзя превратить в группу отдельный оверрайд в рамках экземпляра-родителя.

Как бороться
Таким образом, неосторожно удаляя мастер-артборд с живыми экземплярами, мы можем испортить целый скетч-проект, где оверрайд этого символа может встречаться в непредсказуемых местах нашего дизайна. Поэтому, я рекомендую никогда так не делать, а во время удаления убеждаться в том что у мастера больше нет живых детей: такие мастеры удаляются молча. Если Скетч спрашивает, используем Symbol Instance Locator и через меню оверрайдов разрешаем все связи до последней.


#первые_шаги #инструменты #Скетч