Интерактивные компоненты Figma

Сегодня поговорим об интерактивных компонентах – новом beta-функционале Figma.

Привет! Меня зовут Евгений Шевцов, я руковожу UX-направлением в Usetech и на досуге веду телеграм канал "Мамкин Дизайнер", где рассказываю о жизни дизайнера и о фишечках в Figma.

На прошлой Figma Config 2020 показали новый функционал, который позволит не создавать дополнительные экраны или «костылить» макеты для продвинутого показа прототипов в Figma.

В марте 2021 интерактивные компоненты наконец увидели свет, правда пока в бета-тесте. Подать заявку и получить доступ в течении пары дней может любой желающий.

Figma предупредила пользователей, что новый функционал пока может работать некорректно и стоит пользоваться им аккуратно.

Как это работает

Процесс создания интерактивных компонентов очень прост и завязан на одной из фич — Variants.

Нам необходимо создать компонент, внутри которого разместить все наши варианты этого компонента. Открыть панель «Прототип» и залинковать каждый вариант компонента между собой по определенному событию.

Далее приведу небольшой пример по работе с интерактивным компонентом. Если вы не знакомы с базовым прототипированием Figma и Variants, то самое время прочитать.

Пример

В качестве примера сделаем загрузчик, который будет крутиться не переставая. Соберем его на вариантах и залинкуем в прототип, с помощью умной анимации.

Шаг 1. Главный компонент

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

В моем случае это два эллипса, один с цельной обводкой, второй обрезанный на четверть. Оборачиваем два объекта в компонент и называем его .loader.

Рис. 1

Шаг 2. Дубль главного компонента

Делаем дубль компонента (инстанс) и оборачиваем его еще раз в компонент. Таким образом у нас должна получиться вложенная структура слоев как на рис.2.

Рис.2

Шаг 3. Создаем варианты

Теперь необходимо включить варианты для только что созданного компонента. Нам необходимо 4 варианта. Вложенность слоев должна быть как на рис.3.

Главный компонент -> Вариант ->.loader (инстанс самого главного компонента)

Рис.3

Шаг 4. Вращаем варианты

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

Важно: менять угол поворота необходимо не у самого варианта, а у вложенного в него инстанса главного компонента. См. рис.4

Рис. 4

Шаг 5. Линкуем варианты

Теперь нам необходимо задать триггеры поведения для вариантов.

Заходим справа на вкладку Prototype, выбираем самый первый вариант загрузчика. Рядом с ним появится точка, из которой вытаскиваем стрелку ко второму варианту.

Проделываем эту операцию со всеми вариантами. Последний линкуем к первому.

Рис. 5

В настройках прототипа выставляем следующие настройки:

  • Событие по которому будет происходить переход: After Delay.
    Это событие не требует вмешательства пользователя, по нему событие будет срабатывать автоматически по выставленной задержке времени.
  • Время задержки: 1ms;
  • Анимация: Smart Animate.
    Умная анимация понимает положение и название слоёв, что позволяет делать бесшовные переходы на прототипе;
  • Тип анимации: Linear.
    Линейная анимация, чтобы у нас ничего не замедлялось и не ускорялось.
  • Скорость анимации: по желанию.
    В моем примере стоит 300ms и мне достаточно, но вы можете поэксперементировать и выставить нужную вам скорость.

Шаг 6. Запускаем прототип

Вытаскиваем наш компонент на фрейм и запускаем прототип.

Нюансики

Два момента, которые хотелось бы уточнить:

  • для вариантов всегда делайте главный компонент, с помощью которого можно будет централизовано управлять вашими вариантами;
  • в названии главного компонента я ставил точку для того, чтобы фигма проигнорировала компонент и не положила его в общую библиотеку. Таким образом на выходе либа будет чистой и без дубликатов.

Заключение

Мы собрали простенький интерактивный компонент за несколько шагов. Дальше такие компоненты можно встраивать и в другие интерактивные компоненты, например кнопки.

Помните и будьте острожны — это всего лишь beta-функционал, который может баговать. Не запускайте его на больших боевых проектах, где участвует много людей из команды.

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

Рассматриваю сложные примеры: идущие секунды, прогресс-бар и слайдер громкости.

А еще веду телеграм-канал о дизайне, околодизайнерских темах и фишках в Figma.

Интерактивные компоненты. Практика и примеры // Мамкин Дизайнер

Материалы по теме:

Файл с загрузчиком в Figma Community:

Interactive Components Playground:

Получить beta-доступ к интерактивным компонентам:

0
28 комментариев
Написать комментарий...
Арсений Петрович

Трешовенько. Легче анимацию в афтере сделать и гиф вставить. 
Ну или в css кейфрэймы.

Ответить
Развернуть ветку
Daria Izotova

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

Ответить
Развернуть ветку
Неумный комментатор

технически, анимация и есть смена состояний

Ответить
Развернуть ветку
Daria Izotova

Ну красивый кейс на беханс вы не запилите с помощью этой анимации, в том числе потому что нет возможности ее экспортировать. Это все таки разные типы анимации.

Ответить
Развернуть ветку
Неумный комментатор

Там иные цели.

Ответить
Развернуть ветку
Daria Izotova

Об этом я и говорила в первом комментарии. Смотря для каких целей вам нужна анимация.

Ответить
Развернуть ветку
Мамкин Дизайнер
Автор

Верно, можно и гифку
Но гифы нагрузят сильнее машинку при показе прототипа, если у тебя большое количество экранов.

Понятно, что интерактивные компоненты это не панацея и есть много других разных способов сделать прототип, анимацию и презентовать проект в разы круче, чем в Figma.

Но если речь идет о работе и презентации макета в одном инструменте – то вполне сносно.

Ответить
Развернуть ветку
Never Again

Наоборот интерактивные компоненты больше нагрузят устройство 🤦‍♂️

Ответить
Развернуть ветку
Vyacheslav Rubanyuk

Баг с высотой еще не поправили ? Если интерактивные элементы разной высоты, то на прототипе высота не меняется(

Ответить
Развернуть ветку
Never Again

Нет. Зато это есть во Framer

Ответить
Развернуть ветку
Max Chirin

Где нет экспорта в цсс =)

Ответить
Развернуть ветку
Never Again

Из фреймера можно выгружать готовый код с компонентами на реакте , а ты там цсс не видишь

Ответить
Развернуть ветку
Max Chirin

Я про интерактивный компонент. Как его можно фронту отдать?

Ответить
Развернуть ветку
Never Again

Точно так же зайти в компонент и нажимать хендофф в каждом состоянии 🤷‍♂️.

Ответить
Развернуть ветку
Max Chirin

Это понятно. А если компонент не мой, а из маркета. 

Ответить
Развернуть ветку
Artemida Svet

можно ли использовать файлы дизайн-макетов, прямым експортом, в разработке ?
или все вручную под копирку собирать ?

Ответить
Развернуть ветку
Aleksey Bobkov

¯\_( ͡° ͜ʖ ͡°)_/¯

Ответить
Развернуть ветку
Валерия Раздобреева

Когда уже эта фича выйдет из беты? Очень нужная вещь.

Ответить
Развернуть ветку
Влад Берг

По тому же принципу в tilda реализовано

Ответить
Развернуть ветку
Кирилл

Руководитель компьютерного стола

Ответить
Развернуть ветку
Alex Kalinin

Пытаюсь привыкнуть и не очень нравится процесс настройки вариантов и все эти дела...такое ощущение что на XD намного легче что-то сделать с анимацией чем в Фигме..

Ответить
Развернуть ветку
Denis Politov

Для прототипов лучше ProtoPie использовать. Там работать с условиями и анимациями очень удобно и крутые возможности.

Ответить
Развернуть ветку
Дмитрий Власов

Почему разрабы не сделаю нормальные методы наиминования. Это костыли какие-то совсем

Ответить
Развернуть ветку
Julio

действие change to отсутствует. инструкция либо фейк либо кривая. Уже молчу о неактивном after delay

Ответить
Развернуть ветку
Мамкин Дизайнер
Автор

отсутствует у вас? наверное потому что доступа к интерактивным компонентам нет, в начале этой статьи есть ссылка, чтобы подать заявку на бета-тест

Ответить
Развернуть ветку
Григорий Лялин

На шаге пять нет ни возможности установить After delay (сразу ставится Click по-умолчанию), ни типа события Change to. Как это сделать-то?

Ответить
Развернуть ветку
Мамкин Дизайнер
Автор

1. Должен быть доступ к интерактивным компонентам (ссылка на заявку в самом начале поста)
2. Линковать нужно внутри вариантов, тогда будет change to

Если не выйдет, напиши в личку, посмотрю макет

Ответить
Развернуть ветку
Sergey Sh

Через сколько времени они дают доступ к бете?

Ответить
Развернуть ветку
Читать все 28 комментариев
null