Компоненты: мастер и инстансы

Компонент — это шаблон элемента: меняете мастер, и все его копии обновляются разом.

Нарисовали кнопку 30 раз? Это боль при правках. Компонент решает проблему: одна кнопка-мастер — тридцать управляемых копий.

Компоненты — фундамент переиспользования в Figma. Есть мастер-компонент (main component) — оригинал, и инстансы (instances) — его копии. Изменения мастера наследуются всеми инстансами.

Создаём компонент

  1. Соберите элемент — например кнопку-фрейм с текстом.
  2. Выделите его и нажмите Cmd/Ctrl+Alt+K (Create component).
  3. Вокруг появится фиолетовая рамка и значок ромба — это мастер-компонент.
  4. Теперь скопируйте его (Cmd/Ctrl+C / V) — копии станут инстансами.

Как работает наследование

Поменяйте в мастере цвет фона — все инстансы тут же перекрасятся. Но у инстанса можно делать локальные переопределения (overrides): например, поменять текст конкретной кнопки, не трогая остальные. Текст переопределён, а цвет и форма по-прежнему наследуются от мастера.

Мастер и инстансы

  ◆ Master Button (фиолетовый ромб)
   |
   +-- ◇ Instance 1  «Купить»
   +-- ◇ Instance 2  «Отмена»   <- свой текст (override)
   +-- ◇ Instance 3  «ОК»

  меняешь цвет мастера -> все три перекрасились
  текст у каждого инстанса свой

Где хранить компоненты

Мастер-компоненты обычно собирают в отдельном месте — на специальной странице или фрейме «Components». Все инстансы появляются во вкладке Assets слева, откуда их можно перетаскивать в макет.

Ассеты и вставка инстансов

Все опубликованные в файле компоненты собираются во вкладке Assets (левая панель). Оттуда инстанс перетаскивается на холст мышью или вставляется быстрым поиском: нажмите Shift+I, начните вводить имя компонента — и вставьте найденный. Это намного быстрее, чем копировать существующий инстанс. Поэтому осмысленные имена компонентов важны не меньше, чем имена слоёв.

Когда вы наводите на компонент в Assets, видна его миниатюра, а структура папок повторяет слэши в именах (как и у стилей): Button/Primary, Button/Secondary попадут в папку Button. Это держит библиотеку аккуратной по мере роста.

Главные правила компонентов

Несколько принципов, которые экономят часы. Первое: создавайте компонент из уже собранного на авто-лейауте элемента — тогда инстансы будут адаптивными. Второе: никогда не правьте мастер случайно — если файл общий, изменение мастера затронет всех; для разовой правки используйте override инстанса. Третье: храните мастера в одном месте (страница или фрейм Components), а в макеты вставляйте только инстансы. Так система остаётся управляемой, и вы всегда знаете, где «оригинал».

Горячие клавиши

ДействиеКлавиша
Создать компонентCmd/Ctrl+Alt+K
Отвязать инстанс (detach)Cmd/Ctrl+Alt+B
Сбросить переопределенияПКМ → Reset all changes
Найти мастерПКМ → Go to main component

Частые ошибки

  • Правят случайно мастер вместо инстанса. Изменение мастера затрагивает всех. Убедитесь, что выделен именно инстанс (◇), а не мастер (◆).
  • Отвязывают инстансы без нужды. Detach разрывает связь с мастером навсегда. Делайте это осознанно.
  • Хранят мастера вперемешку с макетом. Собирайте их в одном месте — так система прозрачнее.

Совет профи: компонентизируйте то, что повторяется

Простое правило: если элемент встречается в макете больше одного раза — сделайте его компонентом. Кнопки, поля ввода, карточки, иконки, аватары, пункты меню — всё это кандидаты. Один раз потратив время на аккуратный мастер-компонент (собранный на авто-лейауте, с осмысленными именами слоёв), вы получаете десятки управляемых копий и экономите часы на каждой правке. Не откладывайте компонентизацию: переделывать готовый макет в компоненты задним числом дольше, чем строить из них сразу. И держите мастера в одном месте — на странице Components, — чтобы система оставалась прозрачной. Компоненты — это переход от рисования отдельных экранов к проектированию переиспользуемого продукта, и именно с них начинается настоящая дизайн-инженерия.

Чек-лист

  • Создал мастер-компонент по Cmd/Ctrl+Alt+K.
  • Сделал несколько инстансов копированием.
  • Сделал локальный override текста.
  • Понимаю разницу между мастером и инстансом.

Итоги. Компонент — это управляемый шаблон: мастер-компонент диктует общий вид, инстансы наследуют его, но допускают локальные переопределения. Это основа масштабируемого дизайна. Дальше добавим компонентам состояния — варианты.

Проверьте себя
1. Что произойдёт с инстансами, если изменить цвет фона мастер-компонента?
AНичего, инстансы независимы
BВсе инстансы унаследуют новый цвет
CИнстансы удалятся
DТолько первый инстанс изменится
2. Что такое override (переопределение) у инстанса?
AПолная отвязка от мастера
BЛокальное изменение свойства инстанса (например текста), не затрагивающее мастер и другие копии
CУдаление инстанса
DСоздание нового мастера