Создание интерактивных компонентов: Hover, Click, Drag
В прошлых уроках мы научились создавать сложные компоненты с Variants и Component Properties, а также делать их адаптивными с помощью Auto Layout и переменных. Теперь оживим макеты и компоненты, добавив интерактивность. Вы сможете создавать реалистичные прототипы, которые точно передают поведение интерфейса, и показывать их заказчикам или команде.
Зачем нужны интерактивные компоненты?
Интерактивные компоненты помогают:
- Имитировать реальное поведение. Покажите, как элементы реагируют на действия пользователя: наведение, клик, перетаскивание.
- Улучшать коммуникацию. Наглядно демонстрируйте функциональность без долгих объяснений.
- Сокращать время на разработку. Разработчики получат чёткое представление о работе интерфейса.
- Тестировать пользовательский опыт. Проверяйте удобство до этапа кодирования.
Создаём интерактивные компоненты: Основы
Figma позволяет добавлять интерактивность прямо в компоненты, используя Variants. Вам не нужно создавать отдельные фреймы для каждого состояния элемента в прототипе.
1. Подготовьте компонент с Variants
Представьте кнопку, которая меняет цвет при наведении (Hover) и нажатии (Click).
-
Создайте мастер-компонент кнопки.
-
Добавьте свойство Variant, например,
State. -
Создайте варианты для этого свойства:
Default(обычное состояние)Hover(при наведении)Pressed(при нажатии)
-
Настройте внешний вид каждого варианта. Например, для
Hoverизмените цвет заливки на светлый, дляPressed– на тёмный.Совет: Используйте переменные для цветов. Так вы легко управляете темами и состояниями.
2. Добавьте интеракцию в режиме "Prototype"
Теперь настроим переходы между вариантами.
-
Переключитесь в режим "Prototype" (
Shift + E). -
Выберите вариант
Defaultвашего мастер-компонента. -
Нажмите на синий кружок (плюсик) на границе варианта и перетащите стрелку к варианту
Hover. -
В окне "Interaction details" настройте:
- Trigger (Триггер):
While hovering(При наведении). - Action (Действие):
Change to(Изменить на). - Destination (Назначение):
Hover. - Animation (Анимация):
Smart animateдля плавного перехода. НастройтеEase outи длительность, например,150ms.
- Trigger (Триггер):
-
Повторите для состояния
Pressed:- От варианта
Hoverперетащите стрелку к вариантуPressed. - Trigger:
On click(По клику). - Action:
Change to. - Destination:
Pressed. - Animation:
Smart animate,Ease out,150ms.
- От варианта
-
Добавьте обратные переходы:
-
От варианта
Hoverперетащите стрелку к вариантуDefault. -
Trigger:
While hovering(При отведении курсора). Figma предложит этот триггер, если вы уже настроилиWhile hovering. -
Action:
Change to. -
Destination:
Default. -
Animation:
Smart animate,Ease out,150ms. -
От варианта
Pressedперетащите стрелку к вариантуDefault. -
Trigger:
On mouse up(При отпускании кнопки мыши). Для кнопки лучше использоватьOn mouse upилиOn clickс возвратом. -
Action:
Change to. -
Destination:
Default. -
Animation:
Smart animate,Ease out,150ms.
-
3. Используйте интерактивные компоненты
Теперь разместите экземпляр этой кнопки на любом фрейме и запустите прототип (кнопка "Present" в правом верхнем углу). Она будет реагировать на наведение и клик, как настоящая!
Реализуем Drag (Перетаскивание)
Перетаскивание (Drag) нужно для элементов, которые можно перемещать по экрану: ползунки, карточки в канбан-досках, элементы для сортировки.
Пример: Ползунок (Slider)
Создадим простой ползунок с возможностью перетаскивания.
-
Создайте мастер-компонент для ползунка. Он может состоять из линии (трека) и кружка (ручки).
-
Создайте несколько вариантов компонента, представляющих разные положения ручки на треке. Например,
Value=0,Value=50,Value=100. -
Переключитесь в режим "Prototype".
-
Выберите ручку (или весь компонент, если ручка его часть) в варианте
Value=0. -
Перетащите синий кружок от ручки к варианту
Value=50. -
В "Interaction details" настройте:
- Trigger:
On drag(При перетаскивании). - Action:
Change to. - Destination:
Value=50. - Animation:
Smart animate.
- Trigger:
-
Повторите для других состояний, связывая их по цепочке. Например, от
Value=50кValue=100поOn drag.Важно: Для реалистичного перетаскивания
On dragобычно используется соSmart animate. Figma автоматически интерполирует положение элемента между начальным и конечным состоянием.
Практическое задание
Создайте интерактивный компонент "Переключатель" (Toggle Switch) с двумя состояниями: "Включено" и "Выключено".
- Создайте мастер-компонент
Toggle Switch. - Добавьте свойство
Stateс вариантамиOnиOff. - Настройте внешний вид каждого варианта (например, цвет фона и положение ползунка).
- В режиме "Prototype" настройте переход
On clickмежду состояниямиOnиOffс использованиемSmart animate.
Попробуйте использовать этот переключатель на фрейме и проверьте его работу в режиме презентации.
Мы освоили создание интерактивных компонентов, которые сами реагируют на действия пользователя. Но как объединить несколько таких компонентов в единый, работающий прототип и продемонстрировать полноценный пользовательский сценарий? Об этом поговорим в следующем разделе.