Комбинирование Auto Layout, Variants и Component Properties
Вы уже освоили Auto Layout для адаптивных макетов, Variants для гибкости компонентов и Component Properties для их кастомизации. Теперь объединим эти инструменты, чтобы создавать динамичные и универсальные компоненты — основу вашей дизайн-системы.
Синергия Auto Layout, Variants и Component Properties
Когда эти три функции работают вместе, компоненты не просто меняют состояние. Они динамически подстраиваются под контент, размеры и настройки пользователя, оставаясь при этом легко управляемыми.
Представьте кнопку:
- Auto Layout автоматически регулирует отступы под текст и иконки.
- Variants позволяют задать состояния (активная, неактивная, наведенная), размеры (маленькая, средняя, большая) и типы (первичная, вторичная).
- Component Properties делают текст редактируемым, а иконку — опциональной (булево свойство) или заменяемой (Instance Swap Property).
В итоге вы получаете не просто кнопку, а систему кнопок, которая покрывает все сценарии использования. При этом количество мастер-компонентов минимально.
Примеры комбинирования
Посмотрим, как это работает на практике.
1. Карточка товара с динамическим контентом
Создадим карточку товара.
- Auto Layout:
- Основной фрейм карточки вертикально располагает элементы: изображение, название, цена, кнопка.
- Название товара может иметь вложенный Auto Layout для автоматического переноса или обрезки текста.
- Кнопка «Добавить в корзину» также использует Auto Layout для выравнивания текста и иконки.
- Variants:
- Создайте варианты состояний:
Состояние/По умолчанию,Состояние/В избранном,Состояние/Нет в наличии. - Добавьте варианты размеров:
Размер/Маленький,Размер/Большой.
- Создайте варианты состояний:
- Component Properties:
- Text Property для заголовка, описания, цены.
- Boolean Property для показа/скрытия иконки «В избранном» или лейбла «Нет в наличии».
- Instance Swap Property для замены изображения товара или иконки «Добавить в корзину».
В результате у вас один мастер-компонент карточки. Настраивайте его под любые нужды, меняя свойства на правой панели Figma, вместо того чтобы переключаться между десятками вариантов.
2. Навигационное меню с адаптивными элементами
Создадим компонент навигационного меню.
- Auto Layout:
- Горизонтальный Auto Layout для основного меню автоматически распределяет пункты.
- Вложенные Auto Layout для каждого пункта меню выравнивают текст и иконку.
- Используйте
Wrapдля пунктов меню, чтобы они переносились на новую строку на маленьких экранах.
- Variants:
Состояние/Активный,Состояние/Неактивныйдля пунктов меню.Тип/С иконкой,Тип/Без иконки.
- Component Properties:
- Text Property для текста каждого пункта меню.
- Boolean Property для показа/скрытия иконки рядом с текстом.
- Instance Swap Property для замены иконки.
- Content Property (слот) для вставки выпадающего списка или подменю в определённый пункт навигации.
Это позволяет создать гибкое меню, которое адаптируется к разному количеству пунктов, их содержимому и размерам экрана, сохраняя при этом логику состояний и интерактивности.
Практическое задание
Создайте компонент «Alert» (уведомление), используя все три инструмента:
- Auto Layout: Обеспечьте автоматическое изменение размеров уведомления в зависимости от длины текста и наличия кнопки закрытия.
- Variants: Создайте варианты для разных типов уведомлений:
Тип/Успех,Тип/Ошибка,Тип/Предупреждение,Тип/Информация. - Component Properties:
Text Propertyдля заголовка уведомления.Text Propertyдля основного текста сообщения.Boolean Propertyдля показа/скрытия кнопки закрытия (крестик).Instance Swap Propertyдля замены иконки уведомления (например, галочка для успеха, крестик для ошибки).
Попробуйте создать несколько экземпляров вашего компонента «Alert» и настроить их с помощью свойств на панели справа. Увидите, насколько проще стало управлять разнообразием уведомлений!
Объединяя Auto Layout, Variants и Component Properties, вы открываете новый уровень гибкости и эффективности в Figma. Это основа для создания мощных и масштабируемых дизайн-систем. Но что, если нам нужно сделать наши элементы по-настоящему динамичными, чтобы они реагировали на действия пользователя? В следующем разделе мы углубимся в создание интерактивных компонентов, которые оживят ваши прототипы.