Как сделать простые интерактивные кнопки в Figma за 2 шага
Як зробити прості інтерактивні кнопки в Figma за 2 кроки
Редакція ・ Серп 1
Я полностью перешел на Figma всего несколько месяцев назад. Знаю, что припозднился, но это не помешало мне с удовольствием освоить приложение. Подобно многим продуктовым дизайнерам, последние несколько лет я использовал Sketch. Его легко изучить и понять. Кроме того, мне нравилась интеграция с InVision для создания прототипов, а функция auto-stacking с помощью Anima, упростила работу с более динамичным контентом. Затем я присоединился к Y Media Labs, команде, которая полностью перешла на Figma. Я пробовал этот инструмент раньше, но никогда не использовал его в качестве основного. Мне пришлось полностью перестроить свой рабочий процесс. И тогда я понял, что Figma проста, легка и функциональна. Всего за пару недель я обнаружил, что не только понимаю, как проектировать в привычном стиле, но и обнаружил «хаки Figma», помогающие вдохнуть в прототипы жизнь. Сейчас я работаю над этим:
Оживите свой прототип
В YML есть мантра «прототипы важнее презентаций». Прототип делает ваши дизайн-решения реальными и сообщает клиентам или заинтересованным сторонам гораздо больше, чем статичный дизайн. Он также помогает во время проектирования не попасть в «ловушку Dribbble» (быть может, этот дизайн хорошо смотрится на небольшом скриншоте, но как он на самом деле работает?). Создание кнопок, которые ведут себя как кнопки – это маленький шаг к тому, чтобы ваши прототипы действительно ожили. Давайте рассмотрим этот момент подробнее.
Простые кнопки
То, что я называю «простой кнопкой» – это пример, который вы можете видеть на gif-файле выше. Это кнопка по умолчанию (default button), кнопка в состоянии наведения курсора (hover state) и в состоянии нажатия (pressed state). Это поможет понять концепцию прототипирования кнопок в Figma.
Основные правила, прототипирования кнопки:
- Ваши кнопки должны быть уникальным экземпляром компонента или фреймом. Итак, если в вашем прототипе есть 4 кнопки, которые вы хотите сделать интерактивными, вам понадобится всего 12 кнопок, чтобы прототип работал (1 в состоянии по умолчанию, 1 в состоянии наведения курсора и 1 в нажатом состоянии для каждой кнопки). На данный момент я не знаю способа связать последовательность прототипов на главной странице компонентов и применить это ко всем экземплярам компонента. (Если я ошибаюсь, пожалуйста, напишите в комментариях!)
- Состояния наведения и нажатия должны располагаться за пределами фрейма вашего прототипа, чтобы они работали как оверлей. Просто так «оверлеи» работают в Figma.
- Сохраняйте согласованность в именах слоев для функции Smart Animate. Позже мы будем использовать в Figma функцию Smart Animate, поэтому следует последовательно называть слои. (Если вы похожи на меня, то ваши слои обычно называются «Frame 1104», «image 32» или «Vector 200». Следует упорядочить их).
Это простой двухэтапный процесс
Шаг 1 — Состояние наведения курсора
1. Состояние «Наведение курсора»
Ключом к этому прототипу является то, что вы фактически не меняете исходную кнопку «по умолчанию». Вместо этого вы открываете оверлей кнопки в «состоянии наведения курсора» непосредственно поверх кнопки в состоянии по умолчанию. Это делается путем создания прототипа взаимодействия «While Hovering», который запускает оверлей кнопки в состоянии наведения курсора.
Если в первом раскрывающемся списке в разделе «Overlay» вы выберете «Manual» (Вручную), Figma автоматически разместит новую кнопку в состоянии наведения курсора поверх кнопки в состоянии по умолчанию. Обязательно проверьте, чтобы оверлей располагался поверх вашей изначальной кнопки.
Шаг 2 — Нажатая кнопка
2. Кнопка в нажатом состоянии
Теперь, когда открыто состояние наведения курсора, мы создадим второй этап нашего взаимодействия. Для этого создайте прототип взаимодействия «While Pressing» на кнопке в состоянии наведения курсора, который запускает команду «Swap With» с кнопкой в нажатом состоянии. Думаю, технически вы можете открыть другой оверлей, но тогда мы не сможем использовать функцию Smart Animate.
Этап 3 — «По нажатию» (On Click)
3. Сделайте кнопку функциональной (необязательно)
Хорошо, это трехэтапный процесс, если вы хотите, чтобы ваша кнопка действительно что-то делала. Чтобы сделать кнопку функциональной, просто добавьте к нажатой кнопке прототип взаимодействия «On Click», чтобы она позволила перейти на новую страницу, открыла модальное окно и т.д. ?
Вот и все! Ниже, в качестве примера, приведен мой проект Figma, демонстрирующий изложенные выше правила:
- Кнопки должны быть уникальным экземпляром компонента или фреймом.
- Состояния наведения и нажатия должны располагаться вне фрейма прототипа, чтобы работать как оверлей.
- Сохраняйте согласованность названий слоев для корректной работы функцииSmartAnimate.
В следующий раз мы займемся более сложными интерактивными кнопками. Следите за обновлениями…
Дизайн-система в Figma. Часть 2: Кнопки
Продолжаем проектировать нашу дизайн-систему. В прошлой статье мы задали основные стили для текста, цветовую гамму нашего проекта, стили теней, а также создали компонент для плашек. Теперь пришло время поговорить о кнопках.
Проектируя кнопки, следует учесть, что они могут иметь несколько состояний:
- Кнопка в спокойном состоянии,
- Кнопка при наведении,
- Кнопка, подсвеченная при навигации по странице при помощи таба,
- И неактивная кнопка.
Все эти состояния нам необходимо прорисовать.
Мне известны 2 основных способа создания кнопок: кнопки с использованием Auto Layout (масштабируются вместе с текстом внутри) и кнопки с оцентрированным текстом (такую кнопку можно масштабировать, текст при этом всегда будет по центру). В разных ситуациях удобны разные варианты кнопок.
Базовый (родительский) компонент кнопки с использованием Auto Layout
Создайте прямоугольник. Задайте ему необходимый размер и степень скругления углов. Выберите цвет — цвета используйте обязательно из нашей палитры, которую мы создавали в предыдущей статье. В моем примере это будет синий цвет. Если необходимого цвета нет, создайте для него новый стиль. Это позволит в дальнейшем легко менять цветовую гамму всего проекта.
Выберите Text Tool (T) и напишите название кнопки. Задайте стиль текста, который вы определили специально для кнопок (см. предыдущую статью).
Нажмите на иконку с тремя точками в правой панели. Установите настройки, как показано на рисунке. Теперь рамка текста будет масштабироваться вместе с самим текстом по мере набора фразы.
После этого выровняйте слой с текстом по центру относительно нашего прямоугольника. Для этого выделите оба слоя и последовательно нажмите две иконки вверху в правой панели:
Далее нужно выделить оба слоя и в правой панели нажать на создание компонента. Не забудьте дать компоненту членораздельное имя.
Не снимая выделения, в правой панели ищем вкладку Auto Layout и нажимаем плюсик. Теперь, если мы захотим отредактировать текст на кнопке, размер кнопки изменится вместе с этим текстом.
Изменяя два правых параметра на вкладке Auto Layout, можно добиться нужного нам размера отступов по вертикали и горизонтали от границ текста.
Расширяем функционал кнопки
Мы также можем расширить функционал нашего компонента, например, добавить в кнопку иконку каталога или корзины, которые можно будет скрывать или показывать при необходимости.
Рисуем необходимые иконки, задаем им цвет из палитры. запаковываем в компоненты.
Внимание: важно, чтобы размеры компонентов иконок были одинаковыми. В моем случае для кнопок это поле 20×20 пикселей. Иконка внутри необязательно должна занимать все это поле, но сами компоненты должны быть идентичны по размеру.
Сгруппируйте все эти иконки у одну группу и назовите ее членораздельным именем. Чуть позже это нам пригодится.
Теперь копируем одну из иконок (Contrl+d или Comand+d) и помещаем ее внутрь компонента с нашей кнопкой перед текстом).
Остальные иконки пока не трогаем. В конце статьи я покажу, как можно очень быстро манипулировать кнопками.
Теперь нужно на палитре слоев скрыть эту иконку, чтобы наша базовая кнопка была без нее, но при этом иконку всегда можно было отобразить в процессе работы с экземплярами компонента.
Другие состояния кнопки
Наведение
Итак, наш базовый компонент готов. Теперь перейдем к различным состояниям нашей кнопки.
Копируем экземпляр компонента базовой кнопки (Contrl+d или Comand+d). Не снимая выделения с компонента, задаем параметры оформления для этого состояния кнопки: можно поменять, цвет, обводку или даже добавить тень (не забудьте предварительно задать стиль для тени). Можно выделить внутри слой самого текста и поменять его параметры (к, примеру, цвет).
В моем случае было достаточно поменять стиль цвета кнопки, сделать ее немного темнее.
После этого выделяем экземпляр кнопки и снова запаковываем ее в компонент, не забываем дать имя компоненту. Таким образом мы создали компонент, который унаследовал компонент базовой кнопки. Теперь, если мы что-либо поменяем в базовой кнопке (кроме цвета, который мы переопределили, это тут же отразится на состоянии всех других, созданных таким же образом кнопок.
Активность по табу
Вновь создаем экземпляр нашей базовой кнопки.
Придаем кнопке нужный стиль. Я решила, что активные по табу кнопки у меня будут подсвечиваться синим цветом. Как создавать стиль для теней и подсветок я рассказывала в предыдущей статье.
Неактивная кнопка
Для кнопок, на которые еще нельзя нажать (например, не введен код, не заполнены все поля и т.д.), создадим еще один компонент.
Я решила, что такая кнопка будет иметь полупрозрачный фон, чтобы интереснее смотреться не только на белом, но и на на каком-либо неоднородном цветном фоне. Для этого мне пришлось создать новый стиль заливки цвета с прозрачностью в 15%. Также я понизила прозрачность текстового слоя внутри кнопки до 50%. И точно также, как и предыдущие состояния кнопки, запаковала все в новый компонент.
Масштабируемые кнопки
Бывают ситуации, когда необходимо очень четко вписать кнопку в сетку, либо сделать кнопку огромной — по ширине всего контента. В таких случаях Auto Layout не подойдет. Рассмотрим еще один способ создания кнопок.
Начинаем так же, как в предыдущем варианте: создаем прямоугольник, текстовый слой, центрируем их и создаем компонент.
Для текстового слоя задаем Constraints: Center, Center:
Если вы также хотите добавить в такие кнопки иконки, то текст и иконка группируются и на группу настраивается Auto Layout. Сама же группа центрируется при помощи Constraints.
Constraints для фонового прямоугольника: Left+Right, Top+Bottom
Состояния масштабируемой кнопки: Дублируем экземпляр компонента масштабируемой кнопки, настраиваем внешний вид. Запаковываем его в новый компонент с настройками Constraints : Left+Right, Top+Bottom.
Auto Layout в данном случае уже не используется.
Кнопки могут состоять не только из прямоугольника и текста. Очень интересно смотрятся разного рода кнопки, построенные шейпах с различными настройками Constraints или Auto Layout:
Итог
Таким же образом можно создать варианты кнопок другого цвета, кнопки с обводкой и т.д. Главное, все варианты наследовать от одной базовой кнопки, которая будет задавать основные свойства кнопок.
В итоге для своей системы я продумала несколько вариаций кнопок и их состояний. За счет наследования мы можем легко управлять всеми кнопками сразу:
А так можно быстро менять варианты кнопок прямо в макете, отображать дополнительную иконку, которую мы предусмотрели в базовом компоненте, менять ее:
П.С. Наводим порядок
Век живи — век учись! Ввожу некоторые корректировки в нашу систему по прошествии какого то времени.
Если задать грамотные имена нашим кнопкам и иконкам с использованием знака «/», то они сгруппируются на панели компонентов и при выборе instance:
Кстати, чтобы быстро переименовать группу слоев, выделите их и нажмите правую кнопку мыши. в появившемся меню выберите Rename:
Далее в появившемся окне в поле «Rename to» впишите правила переименовывания. Например, выражение «icon/$&» добавит к текущим именам иконок префикс «icon/».
Кнопки под полем «Rename to» подскажут, как построить нужное вам выражение:
После того: как вы переименуете кнопки и в левой панели перейдете со вкладки Laere на вкладку Assets, вы увидите, что все кнопки сгруппировались в одну вкладку Button:
при этом если вам надо заменить одну кнопку на другую, то при изменении Instance компоненты кнопок также сгруппируются:
Задавайте вопросы, делитесь своими идеями и мнениями в комментариях. А если статья была вам полезна, поддержите клапсом (кстати, клапснуть можно до 50 раз).
- Часть 3: Поля ввода и выпадающие списки
- Часть 4: Поиск и умный поиск
- Часть 5: Списки и Auto Layout
Behance — мои лучшие работы
Telegram-канал — публикую, заметки и мысли о своей работе, figma, портфолио, дизайн-системах, автоматизации задач и ускорении работы. Делюсь ссылками, крутыми кейсами.
Auto Layout, фреймы и компоненты
Официально Auto Layout был запущен 5 декабря 2019 года. За него можно сказать спасибо разработчикам из Figma — именно они его придумали и создали. Идея была в том, чтобы оптимизировать время и вместо ручного размещения объектов делать это автоматически, с вариантами вертикальной и горизонтальной компановки. Таким образом, Auto Layout — это встроенный инструмент в Figma, с помощью которого можно легко и просто выравнивать элементы.
Frame в Figma
Фрейм — это рабочая область, где будут размещаться элементы вашего будущего дизайна. Чтобы его создать, выберите иконку в левом верхнем углу в панели инструментов. Наведите на пустую область и нажмите левую кнопку мыши. Горячие клавиши для создания фреймов — «F» и «A». Если не тянуть курсором, а просто нажать на левую клавишу мыши, то будет создан фрейм размерами 100 на 100 пикселей.
В правой панели представлены популярные размеры фреймов.
- Phone — для телефонов
- Tablet — для планшетов
- Desktop — для настольных компьютеров
- Watch — для часов
- Paper — для бумаги
- Social media — для социальных сетей
- Figma community — размеры от сообществ
В отличие от обычного фрейма, кнопка с активной функцией Auto Layout будет сама адаптироваться под длину текста, и вам не придётся её каждый раз переделывать.
Компоненты
Компоненты — это элементы, которые можно массово редактировать. Например, если вы создадите кнопку, сделаете из неё компонент, а затем скопируете, то при изменении цвета, размера и текста у главного компонента — копии также будут меняться.
Давайте рассмотрим на примере простой кнопки. Чтобы её создать, нарисуем в Figma прямоугольник и наложим на него текст. Выделим этот элемент и в панели справа, напротив надписи Auto Layout, нажмем на плюс. Цвет кнопки можно изменять, нажав на Select colors. Чтобы создать из кнопки компонент, выделим её и сверху нажмём на иконку из 4 ромбов — Create component.
Теперь в Assets появилась наша кнопка. Мы имеем к ней быстрый доступ и можем использовать её в нашем проекте — просто берём и перетаскиваем её из панели слева. Чтобы скопировать кнопку, нужно выделить её, зажать клавишу Alt и потянуть в сторону.
Если вам потребовалось создать сразу несколько компонентов, то выделите нужные элементы и сверху по центру (напротив иконки создания компонентов) нажмите на стрелку и выберите пункт Create multiple components.
Чтобы убрать (отменить, разгруппировать, разломать) компонент в Figma, выберите копию компонента и нажмите на иконку с тремя точками в правой панели. Выберите пункт Detach instance или нажмите на горячие клавиши Alt + Ctrl + B. В этом случае вы сделаете из компонента простой элемент.
Как сделать адаптивную кнопку
- Напишите текст на кнопке.
- На панели слоёв нажмите на текст правой кнопкой мыши и выберите Frame Selection.
- Выделите получившийся фрейм, на панели настроек добавьте ему фон в блоке Fill и нажмите на + рядом с Auto Layout.
Теперь выставим отступы. Если их нужно сделать одинаковыми, укажите значение напротив иконки. Если у каждой стороны должен быть свой отступ, нажмите на иконку и укажите нужные значения в дополнительном меню.
Авто лейаут в Фигме
Как создавать кнопки и грамотно группировать объекты в Figma.
Функция авто лейаута очень полезная. Она позволяет решать несколько задач:
- Удобное создание кнопок за счет расставления автоматических отступов
- Группировка элементов с установкой автоматических отступов
Чтобы создать кнопку при помощи auto layout — нужно создать текстовый контейнер. Далее нажать клавиатурное сокращение “Shift + A”. Тогда у вашего текстового контейнера появятся границы.

Для того, чтобы добавить заливку – нажимаем на знак плюса в панели Fill. Теперь наш автолейаут готов к работе. В специальной панели мы можем настроить внутренние отступы у кнопки (Для визуальной красоты я рекомендую, чтобы верхний и нижний отступы были в 2 раза больше, чем боковые).

Для создания auto layout с использованием нескольких объектов нужно:
- Выделить два объекта
- Нажать клавиатурное сокращение Shift + A
Теперь ваши элементы сгруппированы. Вы также можете управлять расстоянием между объектами при помощи панели отступов. Если вы группируете несколько объектов разной величины, то для вас станет доступна опция выравнивания объектов относительно друг друга. Вы можете протестировать, меняя положение переключателя в панели выравнивания, данные функции.

Таким образом вы можете очень гибко создавать сложные композиции и управлять расстоянием между элементами. Лично я в своей работе использую auto layout только для формирования кнопок, но я занимаюсь веб-дизайном, и в этой сфере данная функция не раскрывает себя полностью. Но если вы занимаетесь дизайном мобильных приложений, то эта функция вам будет крайне необходима.
Хотите изучить все инструменты в Figma, а также освоить процесс разработки дизайн-макетов? Приходите на вводный курс по UX/UI дизайну. Вы изучите начальный дизайн-процесс: работа в Figma, анализ информации, визуальная концепция, прототипирование и т.д. Ссылка на сайт курса.