Компоненты и варианты в Figma: как их настроить
Практика3 минРедакция Innovialabs
Коротко
Компонент в Figma — это главный элемент, все копии которого (экземпляры) обновляются при его изменении. Варианты объединяют состояния и размеры в один набор, а свойства компонентов (текст, boolean, instance swap) позволяют настраивать экземпляры без отвязки.
Компоненты, экземпляры и варианты
- Главный компонент (main component) — исходный элемент. Его меняют, и изменения расходятся по всем копиям.
- Экземпляр (instance) — копия компонента в макете. В нем можно менять текст, цвета и другие разрешенные вещи (это называется overrides), но структура остается связанной с главным.
- Набор вариантов (component set) — группа связанных компонентов, например все кнопки: основная и второстепенная, разных размеров и состояний.
- Свойства компонента (component properties) — настройки, которые видны в правой панели у экземпляра: переключить вариант, изменить текст, скрыть иконку, подменить иконку.
Без компонентов каждую кнопку правят вручную, и через месяц в макете оказывается десять немного разных кнопок.
Шаг 1: главный компонент кнопки
- Соберите кнопку на Auto Layout: текст, иконка, padding, Hug по ширине.
- Выделите фрейм и нажмите Ctrl + Alt + K (на Mac — Cmd + Option + K) или кнопку «Create component» на верхней панели.
- Назовите компонент
Button. - Чтобы создать экземпляр, перетащите компонент из панели Assets или скопируйте его с зажатым Alt.
Держите главные компоненты на отдельной странице, например «Components», а в макетах используйте только экземпляры.
Шаг 2: варианты
- Выделите компонент
Buttonи нажмите Add variant в правой панели. Появится набор с фиолетовой пунктирной рамкой. - Добавьте свойства варианта и назовите их по смыслу:
| Свойство | Значения |
|---|---|
Type | Primary, Secondary, Ghost |
Size | S, M, L |
State | Default, Hover, Pressed, Disabled |
- Для каждой комбинации, которая реально нужна, создайте вариант и настройте его внешний вид.
- В экземпляре теперь можно переключать тип, размер и состояние выпадающими списками.
Не обязательно создавать все комбинации. Если ghost-кнопки бывают только размера M, не делайте лишнего.
Шаг 3: свойства компонента
Варианты описывают внешний вид, а свойства — содержимое. Это сильно уменьшает число вариантов.
- Text — привяжите текстовый слой к свойству
Label. Текст кнопки меняется прямо в правой панели. - Boolean — свойство
Has iconпоказывает или скрывает иконку. Без него пришлось бы удваивать все варианты. - Instance swap — свойство
Iconпозволяет выбрать любую иконку из библиотеки, не залезая внутрь кнопки.
Свойства создаются через «+» в разделе Properties у главного компонента или набора и привязываются к слою кнопкой рядом с нужным параметром.
Шаг 4: поле ввода
Тот же подход для Input:
- Варианты:
State= Default, Focus, Error, Disabled; при необходимостиSize. - Text-свойства:
Label,Placeholder,Helper text. - Boolean:
Has helper,Has left icon. - Instance swap:
Left icon.
Состояние Error меняет не только цвет обводки, но и показывает текст ошибки с иконкой, чтобы смысл не передавался одним цветом. Состояние Focus должно быть хорошо заметным.
Правила именования
- Свойства и значения — короткие и понятные разработчику:
Type,Size,State, а не «Вариант 1». - Одинаковые свойства называются одинаково во всех компонентах: если у кнопки
State=Disabled, то и у поляState=Disabled. - Для группировки в Assets используйте слэш:
Form/Input,Form/Checkbox,Navigation/Tab. - Слои внутри компонента тоже называйте:
Label,Icon,Container. Это помогает при override и передаче в разработку. - Согласуйте названия с кодом. Если в коде вариант называется
primary, не называйте его в Figma «Main».
Частые ошибки
- Detach instance при любой правке. Отвязанный экземпляр больше не обновляется. Если не хватает настройки — добавьте свойство в главный компонент.
- Варианты вместо свойств. Отдельные варианты «с иконкой» и «без иконки» для каждого размера и типа раздувают набор. Используйте Boolean.
- Правка экземпляра вместо главного компонента, когда меняется сам дизайн системы.
- Компоненты без Auto Layout — при смене текста они ломаются.