Использование Auto Layout для динамических списков и таблиц
Auto Layout — мощный инструмент Figma, который упрощает работу с динамическими списками и таблицами. С ним вы создадите гибкие структуры, которые сами подстроятся под изменения контента, добавление или удаление элементов.
Динамические списки: создаём и управляем
Динамический список — это набор однотипных элементов, расположенных вертикально или горизонтально. Auto Layout поможет легко управлять их расположением, отступами и поведением при изменении содержимого.
Шаг 1: Создайте элемент списка
Начните с одного элемента списка. Это может быть карточка товара, строка таблицы, пункт меню. Убедитесь, что все внутренние элементы этого компонента тоже используют Auto Layout — так вы обеспечите его гибкость.
Например, для элемента списка контактов:
- Создайте текстовые слои для имени и телефона.
- Добавьте круг для аватара.
- Выделите все элементы и примените Auto Layout (
Shift + A). Настройте отступы и выравнивание внутри. - Превратите элемент в компонент. Назовите его, например,
List Item/Contact.
Шаг 2: Соберите список из элементов
Теперь, когда у вас есть компонент элемента списка, создайте из него динамический список:
- Сделайте несколько экземпляров компонента
List Item/Contact. - Выделите их и снова примените Auto Layout (
Shift + A). - Настройте направление (вертикальное или горизонтальное) и отступы между элементами.
- Установите для списка свойство
Fill containerпо ширине. Он будет автоматически растягиваться или сжиматься в зависимости от родительского фрейма. - Для каждого элемента списка внутри родительского Auto Layout тоже установите
Fill containerпо ширине, чтобы они адаптировались.
Совет: Используйте переменные для отступов. Это обеспечит единообразие и упростит изменения spacing в будущем. Особенно полезно для больших дизайн-систем.
Теперь, если вы добавите или удалите элемент из этого списка, или измените его содержимое, Auto Layout автоматически перестроит макет, сохраняя заданные отступы и выравнивание.
Гибкие таблицы с Auto Layout
Таблицы — более сложные структуры, состоящие из строк и столбцов. Auto Layout эффективно управляет ими, особенно в сочетании с вложенными Auto Layout.
Шаг 1: Создайте ячейку таблицы
Начните с базовой ячейки таблицы. Это может быть просто текстовый слой с Auto Layout, чтобы он мог расширяться по содержимому.
Шаг 2: Создайте строку таблицы
- Сделайте несколько экземпляров ячейки таблицы.
- Выделите их и примените Auto Layout, чтобы создать горизонтальную строку.
- Установите
Space betweenили фиксированные отступы между ячейками. - Превратите эту строку в компонент, например,
Table Row/Default.
Шаг 3: Создайте заголовок таблицы
Создайте отдельный компонент для заголовка таблицы. Используйте тот же принцип, что и для строки, но с соответствующими стилями текста. Назовите его Table Row/Header.
Шаг 4: Соберите таблицу
- Создайте экземпляр компонента
Table Row/Header. - Создайте несколько экземпляров компонента
Table Row/Default. - Выделите все эти строки (заголовок и данные) и примените Auto Layout, чтобы создать вертикальную структуру таблицы.
- Настройте отступы между строками.
Важно: Чтобы столбцы в таблице выравнивались, убедитесь, что все ячейки в одной колонке имеют одинаковую ширину или используют
Fill containerв родительском Auto Layout. Для сложных таблиц с динамическим содержимым часто используют вложенные Auto Layout, где каждая колонка — отдельный Auto Layout фрейм, содержащий свои ячейки.
Пример: Динамическая таблица с Auto Layout
Представьте, что вам нужна таблица с тремя колонками: "Имя", "Email", "Телефон".
- Ячейка: Создайте текстовый слой, примените Auto Layout (даже если он один), чтобы он вёл себя как блок.
- Строка:
- Создайте 3 экземпляра ячейки.
- Выделите их, примените Auto Layout (горизонтальный).
- Настройте
Space betweenилиPackedс фиксированными отступами. - Превратите в компонент
Table Row/Default.
- Заголовок: Аналогично создайте компонент
Table Row/Headerс жирным текстом. - Таблица:
- Разместите
Table Row/Headerи несколькоTable Row/Defaultдруг под другом. - Выделите их и примените Auto Layout (вертикальный).
- Теперь, если вы измените ширину одной из ячеек в мастер-компоненте
Table Row/Default, это изменение отразится во всех строках, и таблица автоматически перестроится.
- Разместите
Использование Auto Layout для списков и таблиц значительно ускоряет работу и делает ваши макеты более устойчивыми к изменениям. Это основа для создания гибких и масштабируемых дизайн-систем.
В следующем разделе мы углубимся в то, как комбинировать Auto Layout с Variants и Component Properties, чтобы создавать по-настоящему динамические и универсальные компоненты.