---
title: Авто-раскладка
description: Flex- и grid-раскладка в OpenPencil — направление, отступы, выравнивание, размеры и CSS Grid дорожки.
---
# Авто-раскладка
Авто-раскладка автоматически позиционирует дочерние элементы внутри фрейма. Поддерживает два режима: **flex** (горизонтальный/вертикальный поток) и **grid** (строки и столбцы с настройкой дорожек).
## Включение авто-раскладки
- Выделите фрейм и нажмите ⇧A (Shift + A), чтобы включить или выключить авто-раскладку
- Выделите свободные узлы (без родительского фрейма) и нажмите ⇧A, чтобы обернуть их в новый фрейм с авто-раскладкой
При оборачивании выделения узлы сортируются по визуальному положению: слева направо для горизонтальной раскладки, сверху вниз для вертикальной.
## Направление раскладки
Выберите, как располагаются дочерние элементы:
- **Горизонтально** — элементы выстраиваются слева направо
- **Вертикально** — элементы выстраиваются сверху вниз
- **Перенос** — элементы переносятся на следующую строку/столбец, когда заканчивается место
## Отступы
### Промежуток
Расстояние между соседними дочерними элементами. Задаётся одним значением, которое применяется между всеми элементами.
### Внутренние отступы
Расстояние между краем фрейма и его дочерними элементами. Задайте одинаковое значение для всех сторон или разверните для настройки каждой стороны отдельно (верхняя, правая, нижняя, левая).
## Выравнивание
### Выравнивание по основной оси
Определяет, как дочерние элементы распределяются вдоль направления раскладки:
- **Начало** — элементы прижимаются к началу
- **Центр** — элементы по центру
- **Конец** — элементы прижимаются к концу
- **Равномерно** — элементы распределяются с равными промежутками между ними
### Выравнивание по поперечной оси
Определяет, как дочерние элементы позиционируются перпендикулярно направлению раскладки:
- **Начало** — элементы выравниваются по началу
- **Центр** — элементы по центру
- **Конец** — элементы выравниваются по концу
- **Растянуть** — элементы растягиваются, заполняя поперечную ось
## Размеры дочерних элементов
Каждый дочерний элемент в фрейме с авто-раскладкой может иметь собственный режим размера:
- **Фиксированный** — использует заданные ширину/высоту элемента
- **Заполнить** — растягивается, заполняя доступное пространство в родителе
- **Обнять** — сжимается под размер содержимого элемента
## Перетаскивание для изменения порядка
Внутри фрейма с авто-раскладкой перетащите дочерний элемент, чтобы изменить его порядок среди соседних элементов. Визуальный индикатор вставки показывает, куда будет помещён элемент.
## Панель свойств
Когда выделен фрейм с авто-раскладкой, в разделе «Раскладка» панели свойств отображаются все элементы управления: направление, промежуток, внутренние отступы, выравнивание по основной и поперечной осям.
## Сочетания клавиш
| Действие | Mac | Windows / Linux |
|----------|-----|-----------------|
| Переключить авто-раскладку | ⇧A | Shift + A |
## CSS Grid
Grid-раскладка организует дочерние элементы в строки и столбцы с явным размером дорожек.
### Включение сетки
Выберите фрейм с включённой авто-раскладкой и нажмите на значок сетки в панели инструментов раскладки, чтобы переключиться с flex на grid.
### Размеры дорожек
Определите дорожки столбцов и строк тремя способами:
- **fr** — дробная единица, делит доступное пространство пропорционально
- **px** — фиксированный размер в пикселях
- **auto** — подстраивается под содержимое
### Промежутки сетки
Задайте раздельные горизонтальные (между столбцами) и вертикальные (между строками) промежутки.
### Позиционирование дочерних элементов
Элементы размещаются в ячейках сетки автоматически в порядке строк. Вы можете переопределить размещение значениями начала столбца/строки и охвата в свойствах раскладки дочернего элемента.
### Экспорт JSX и Tailwind
Grid-раскладки экспортируются как JSX с классами Tailwind: `grid grid-cols-3`, `gap-x-4 gap-y-2`, `col-start-2 row-span-2`.
## Советы
- Авто-раскладка пересчитывается сразу после создания, поэтому границы выделения обновляются немедленно.
- Вкладывайте фреймы с авто-раскладкой для создания сложных адаптивных макетов (например, вертикальный фрейм, содержащий горизонтальные строки).
- Используйте размер «Заполнить», чтобы элемент занял оставшееся пространство, аналогично flex-grow: 1 в CSS.
- Используйте grid для панелей управления, галерей и форм — всего, что имеет двумерную структуру.
- См. [Рисование фигур](./drawing-shapes) для создания фреймов, к которым применяется авто-раскладка.
- См. [Компоненты](./components) для использования авто-раскладки внутри переиспользуемых компонентов.