---
title: Автоматическая компоновка
description: "Flexbox и CSS Grid в OpenPencil: направление, интервалы, отступы, выравнивание и размеры дочерних объектов."
---
# Автоматическая компоновка
Автоматическая компоновка размещает дочерние объекты внутри фрейма. Доступны два режима: **Flex** с горизонтальным или вертикальным потоком и **Grid** со строками, столбцами и настраиваемыми дорожками.
## Включение
- Выделите фрейм и нажмите ⇧A, чтобы включить или отключить автоматическую компоновку.
- Выделите несколько отдельных объектов и нажмите ⇧A, чтобы поместить их в новый фрейм.
При создании фрейма OpenPencil сначала сортирует объекты по их видимому положению.
## Направление
- **Горизонтальное:** объекты располагаются слева направо.
- **Вертикальное:** объекты располагаются сверху вниз.
- **Перенос:** при нехватке места объекты переходят на следующую строку или в следующий столбец.
## Расстояния
### Интервал
Интервал определяет расстояние между соседними дочерними объектами.
### Внутренние отступы
Внутренние отступы задают расстояние между границей фрейма и его содержимым. Можно использовать одно общее значение или настроить каждую сторону отдельно.
## Выравнивание
### Основная ось
- **Начало:** объекты располагаются у начала оси.
- **Центр:** объекты выравниваются по центру.
- **Конец:** объекты располагаются у конца оси.
- **Распределить:** свободное место равномерно распределяется между объектами.
### Поперечная ось
- **Начало:** выравнивание по началу поперечной оси.
- **Центр:** выравнивание по центру.
- **Конец:** выравнивание по концу оси.
- **Растянуть:** дочерние объекты занимают всю поперечную ось.
## Размер дочерних объектов
- **Фиксированный:** использовать явно заданную ширину или высоту.
- **Заполнить:** занять доступное место.
- **По содержимому:** подобрать размер по содержимому.
Первое фактическое изменение ширины или высоты переводит только эту ось из режима «Заполнить» или «По содержимому» в фиксированный режим. Простое получение фокуса полем не меняет режим размера.
## Изменение порядка
Перетащите дочерний объект внутри фрейма, чтобы изменить его место среди соседних. Индикатор покажет новую позицию.
## Сочетание клавиш
| Действие | macOS | Windows / Linux |
|----------|-------|-----------------|
| Включить или отключить компоновку | ⇧A | ShiftA |
## CSS Grid
Grid размещает дочерние объекты в строках и столбцах с явно заданными размерами дорожек.
### Включение Grid
Выделите фрейм с автоматической компоновкой и переключите режим Flex на Grid в разделе «Компоновка».
### Размеры дорожек
- **fr:** пропорциональная доля доступного места.
- **px:** фиксированный размер в пикселях.
- **auto:** размер по содержимому.
Например, `1fr 200px 1fr` создаёт три столбца: фиксированный центральный и два гибких боковых.
### Интервалы строк и столбцов
Горизонтальное и вертикальное расстояние между ячейками можно настраивать отдельно.
### Размещение объектов
По умолчанию объекты последовательно заполняют свободные ячейки по строкам. В свойствах дочернего объекта можно задать начальную строку и столбец, а также количество занимаемых ячеек.
### Экспорт в 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 подходит для панелей мониторинга, галерей, форм и других двумерных структур.