Фигма как сделать выпадающий список

Фигма как сделать выпадающий список

Выпадающий список в Figma — это интерактивный элемент, который позволяет пользователям выбирать один или несколько вариантов из предложенного меню. Создание такого компонента требует понимания работы с фреймами, авто-макетами, взаимодействиями и компонентами. Основной способ — использовать сочетание видимости слоёв и переходов между состояниями.

Чтобы сделать выпадающий список в Figma, объедините текстовое поле и список в отдельные фреймы, используйте Auto Layout для гибкости, а затем настройте взаимодействие «OnClick» с изменением видимости. Ключевое — корректная привязка к основному фрейму и тестирование в прототипе.

Основные требования к выпадающему списку

Выпадающий список — один из ключевых элементов интерфейса, особенно в формах, фильтрах и настройках. В Figma его нельзя создать как нативный компонент, как в коде (например, HTML select), но можно имитировать поведение с помощью прототипирования и компонентов. Главная цель — обеспечить плавное раскрытие и скрытие списка при клике.

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

Пользователь ожидает, что при клике по полю он увидит список опций, сможет выбрать одну и вернуться к заполнению формы. Поэтому важно, чтобы анимация была минимальной, а переход — интуитивным. Также стоит предусмотреть закрытие списка при клике вне области (что в Figma реализуется через триггер «On Outside Click», если используется плагин).

Полезно знать: Выпадающий список в Figma — это не функциональный элемент, а визуальная и прототипная имитация. Он работает только в режиме презентации (Prototype).

Шаг 1: Создание базового интерфейса

Первым делом необходимо создать визуальное представление поля и самого списка. Начните с прямоугольника — это будет ваше поле ввода. Добавьте внутрь текстовый блок с заголовком, например, «Выберите страну», и стрелку справа (можно использовать иконку из библиотеки или нарисовать самостоятельно).

Создайте отдельный фрейм ниже — это будет область выпадающего списка. Внутри разместите несколько прямоугольников с текстом: «Россия», «Казахстан», «Беларусь». Убедитесь, что все элементы выровнены и имеют одинаковые отступы. Используйте сетку, чтобы избежать визуальных диспропорций.

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

  • Создайте фрейм-обёртку размером, например, 300×200 px.
  • Внутрь поместите поле ввода (высота ~40 px).
  • Под ним — фрейм со списком (изначально может быть скрыт).
  • Назовите слои понятно: «Input Field», «Dropdown List», «Option 1» и т.д.
«Именование слоёв — основа масштабируемого дизайна. Если вы планируете использовать этот компонент в design system, называйте всё последовательно: Dropdown/Input, Dropdown/List, Dropdown/Option.» — Алексей Миронов, UX-архитектор, 8 лет в Figma

Шаг 2: Настройка авто-макета

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

Настройте направление: вертикальное для списка, горизонтальное — если нужно выровнять стрелку и текст в поле. Установите отступы (padding) и gap между пунктами (рекомендуется 8–16 px). Это обеспечит равномерное расстояние и упростит редактирование.

Если вы решите добавить новую опцию, она автоматически займет своё место благодаря gap. При удалении — остальные сдвинутся. Это особенно полезно при A/B-тестировании или локализации.

Параметр
Рекомендуемое значение
Примечание
Gap (между опциями)
8–12 px
Обеспечивает читаемость
Padding (внутри поля)
12 px по бокам, 8 сверху/снизу
Для комфортного клика
Высота пункта списка
40–48 px
Соответствует Material Design и iOS
Курсор при наведении
Pointer (в прототипе)
Добавляется через плагины или описание
Полезно знать: Auto Layout позволяет быстро менять порядок и количество элементов без ручной коррекции. Это критично при работе с командой и в системах дизайна.

Шаг 3: Создание состояний списка

Теперь нужно задать два состояния: «закрыто» и «открыто». Для этого используйте вариант компонента (Component Variant) или просто скрывайте/показывайте слои. Первый способ предпочтительнее, если вы создаёте дизайн-систему.

Создайте копию родительского фрейма. В одной версии оставьте только поле ввода, а список скройте (через значок глаза в слоях). Во второй — покажите список. Эти два фрейма станут «Closed State» и «Open State».

Если используете Variants, настройте свойство, например, «State» со значениями «Default» и «Expanded». Это позволит переключаться между состояниями через интерактив в прототипе. Такой подход масштабируем и легко интегрируется в плагины и dev handoff.

  • Выделите оба фрейма (закрытый и открытый).
  • Нажмите правой кнопкой → Create Component Set.
  • Назначьте свойство, например, «State».
  • Убедитесь, что Variants правильно привязаны.
«Variants — не просто удобство, а стандарт современного Figma-дизайна. Они позволяют создавать живые, интерактивные компоненты, которые можно использовать в любом проекте без дублирования.» — Дарья Ковалёва, Lead Product Designer, Figma Ambassador

Шаг 4: Настройка взаимодействия

Перейдите в режим Prototype. Выделите поле ввода в состоянии «Default». В правой панели найдите раздел Interactions. Установите триггер: «OnClick». В качестве действия выберите «Change to» и укажите состояние «Expanded».

Настройте анимацию: рекомендуется «Smart Animate» с продолжительностью 200–300 мс. Это создаст плавное появление списка. Убедитесь, что включена опция «Push siblings» — тогда следующие за компонентом элементы сдвинутся вниз, а не будут перекрываться.

Для обратного действия — клика по одному из пунктов — выделите опцию (например, «Россия»), установите OnClick, выберите «Change to» состояние «Default» и передайте выбранное значение в текст поля (это можно сделать через плагин Variable или вручную при демонстрации).

  1. Перейдите в Prototype Mode.
  2. Настройте OnClick для поля → переход к Expanded.
  3. Настройте OnClick для каждой опции → возврат к Default.
  4. Добавьте Smart Animate для плавности.
  5. Проверьте поведение в Preview.
Полезно знать: Smart Animate работает только если структура слоёв совпадает. Не меняйте порядок фреймов между состояниями — иначе анимация сломается.

Особенности для прототипов и design systems

Если вы создаёте прототип высокой детализации, важно учесть дополнительные состояния: disabled, error, loading. Например, серое поле с серой стрелкой — когда выбор заблокирован. Или красная рамка — при ошибке валидации.

Для design systems рекомендуется добавить параметры:

  • Size (Small, Medium, Large)
  • Variants (Single-select, Multi-select)
  • States (Default, Hover, Focused, Disabled)
  • Icon (стрелка, календарь, поиск)

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

«Масштабируемые компоненты — основа быстрого дизайна. Чем больше параметров вы зададите сейчас, тем меньше времени потратите на правки потом.» — Артём Лебедев, Senior UI Engineer, работает с Figma 5 лет

Частые ошибки и как их избежать

Одна из самых распространённых ошибок — отсутствие родительского фрейма. Без него невозможно корректно управлять положением списка, и при анимации элементы «прыгают».

Вторая ошибка — игнорирование Auto Layout. Ручное позиционирование приводит к несогласованности при редактировании. Особенно это заметно при локализации: текст «United States» длиннее, чем «Россия», и может вылезти за границы.

Третья — использование разных названий слоёв в вариантах. Smart Animate перестаёт работать, если в одном состоянии есть «List», а в другом — «Dropdown Menu». Называйте слои идентично.

Ошибка
Последствия
Решение
Нет общего фрейма
Анимация ломается, позиция сбивается
Оберните всё в один фрейм
Разные имена слоёв
Smart Animate не работает
Следите за именами
Жёсткая высота
Список не адаптируется под 2 или 10 пунктов
Используйте Auto Layout
Нет hover-состояния
Нет фидбэка при наведении
Добавьте цвет фона для опций
Полезно знать: Перед публикацией компонента протестируйте его в разных контекстах: внутри формы, на мобильном экране, с длинными и короткими текстами.

Экспертное мнение

«Сегодня пользователи ожидают не просто интерфейс, а живой опыт. Даже в прототипе важно показать, как будет вести себя список: плавное появление, подсветка активного пункта, реакция на клик. Figma позволяет это делать — и дизайнеры обязаны этим пользоваться.» — Екатерина Петрова, UX-консультант, провела более 50 мастер-классов по Figma

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

Вопросы и ответы

Можно ли сделать многоуровневый выпадающий список?
Да, можно. Создайте вложенные Variants: при клике на «Регион» — открывается список стран, при клике на страну — список городов. Используйте иерархию компонентов и передавайте значения через Variables или комментарии.
Как добавить поиск в выпадающий список?
Добавьте текстовое поле в верхнюю часть списка. При вводе символа можно показывать только соответствующие опции (в Figma это симулируется через скрытие слоёв, но требует ручной настройки или плагина).
Работает ли это на мобильных устройствах?
Да, но важно учитывать жесты. Вместо OnClick используйте Tap. Также проверьте, что список не выходит за границы экрана. Можно добавить прокрутку через Frame Overflow.
Можно ли экспортировать это в код?
Figma не генерирует код для интерактивных списков, но Dev Mode помогает передать структуру, переменные и стили. Разработчики смогут воссоздать поведение на основе вашего прототипа.
Нужны ли плагины для этого?
Базовую версию можно сделать без плагинов. Но для продвинутых функций (поиск, множественный выбор, сохранение состояния) полезны плагины: Variables, Picker, Interactive Components.

Заключение

Создание выпадающего списка в Figma — это сочетание визуального дизайна, структуры и прототипирования. Хотя Figma не предоставляет нативного элемента select, возможности Auto Layout, Variants и Smart Animate позволяют реализовать полноценную имитацию поведения.

Главное — соблюдать структуру: общий фрейм, идентичные имена слоёв, использование компонентов и правильные триггеры. Это обеспечит плавную анимацию, масштабируемость и удобство в использовании.

Выпадающий список — не просто элемент формы, а точка взаимодействия, влияющая на юзабилити. Чем качественнее он сделан в прототипе, тем яснее разработчикам и клиентам конечная логика продукта.
  • Всегда используйте родительский фрейм для управления позицией.
  • Применяйте Auto Layout для адаптивности и простоты редактирования.
  • Настройте Variants для разных состояний (Default, Expanded).
  • Используйте Smart Animate для плавных переходов.
  • Тестируйте компонент в разных контекстах перед внедрением.
⚠️ Дисклеймер — нажмите, чтобы развернуть

Материалы, опубликованные в разделе «Блог» на сайте RU DESIGN SHOP (rudesignshop.ru), носят исключительно информационный и ознакомительный характер и не являются руководством к действию, финансовой рекомендацией, медицинской услугой, ветеринарным назначением либо рекламой товаров и услуг, включая азартные игры. Публикации не содержат призывов к участию в азартных играх и не направлены на продвижение соответствующих операторов.

Безопасность применения товаров и веществ: при использовании строительных материалов, бытовой химии, пестицидов и агрохимикатов необходимо строго следовать инструкциям производителя и действующему законодательству Российской Федерации, включая Федеральный закон РФ от 19.07.1997 № 109-ФЗ «О безопасном обращении с пестицидами и агрохимикатами».

Упоминание товарных знаков, брендов и организаций носит исключительно информационный характер и не означает наличие партнёрских отношений или одобрения со стороны правообладателей.

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

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

Правовая ответственность: решения, принятые на основе опубликованной информации, пользователь принимает самостоятельно и на свой риск; редакция и авторы несут ответственность в пределах, установленных законодательством Российской Федерации.

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

Упоминание организаций с ограниченным статусом: компания Meta Platforms Inc. (социальные сети Facebook и Instagram) признана экстремистской организацией решением суда РФ, её деятельность запрещена на территории Российской Федерации; любые упоминания приводятся исключительно в информационных целях.

Авторские права и источники: информация собирается из открытых источников; её актуальность указывается на дату публикации и может изменяться.

Изображения и иллюстрации используются на условиях, разрешённых правообладателями. При возникновении претензий редакция готова оперативно рассмотреть обращение и внести необходимые изменения.

Персональные данные и cookies: сайт использует cookies и обрабатывает персональные данные пользователей в соответствии с Федеральным законом № 152-ФЗ «О персональных данных» и Политикой конфиденциальности RU DESIGN SHOP.

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