В Carbon Components Svelte сетки строятся на базе системы
Grid, которая позволяет создавать гибкие и отзывчивые
макеты. Вложенные сетки применяются для более сложного позиционирования
элементов внутри контейнера, сохраняя при этом единый контроль за
колонками и отступами. Основной принцип работы вложенных сеток
заключается в том, что каждый Grid может содержать
внутри себя другой Grid, а его колонки
(Column) корректно наследуют размеры и отступы.
Базовая сетка создаётся с помощью компонента Grid и
дочерних компонентов Column. Пример структуры:
<script>
import { Grid, Column } from 'carbon-components-svelte';
</script>
<Grid>
<Column sm="4" md="8" lg="4">
Основной блок
</Column>
<Column sm="4" md="8" lg="8">
Второй блок
</Column>
</Grid>
Здесь параметры sm, md, lg
указывают ширину колонки в сетке для разных размеров
экрана. sm — маленькие устройства, md —
средние, lg — большие.
Вложенные сетки создаются путем размещения Grid внутри Column. Это позволяет разбивать один блок на несколько частей, каждая из которых имеет собственные колонки и отступы.
<Grid>
<Column sm="12" md="6" lg="6">
<Grid>
<Column sm="6" md="6" lg="6">Вложенная колонка 1</Column>
<Column sm="6" md="6" lg="6">Вложенная колонка 2</Column>
</Grid>
</Column>
<Column sm="12" md="6" lg="6">
Внешний блок 2
</Column>
</Grid>
В данном примере внутренняя сетка полностью адаптируется к размерам родительской колонки, сохраняя согласованное поведение при изменении ширины экрана.
Вложенные сетки наследуют отступы от внешнего Grid, но
для точной настройки можно использовать следующие свойства:
gap — задаёт промежуток между колонками, принимает
значения small, medium,
large.align — вертикальное выравнивание содержимого
(start, center, end).justify — горизонтальное распределение колонок
(start, center, end,
between).Пример с использованием отступов:
<Grid gap="medium">
<Column sm="12" md="6">
<Grid gap="small" align="center" justify="between">
<Column sm="6">Элемент A</Column>
<Column sm="6">Элемент B</Column>
</Grid>
</Column>
<Column sm="12" md="6">Внешний блок 2</Column>
</Grid>
Сложные интерфейсы могут потребовать нескольких уровней вложенности.
Для таких случаев важно соблюдать правило: каждая новая сетка
создаётся внутри Column, а не внутри
Grid. Это позволяет избежать конфликтов ширины и
выравнивания.
<Grid>
<Column sm="12">
<Grid>
<Column sm="6">
<Grid>
<Column sm="12">Уровень 3, элемент 1</Column>
<Column sm="12">Уровень 3, элемент 2</Column>
</Grid>
</Column>
<Column sm="6">
<Grid>
<Column sm="12">Уровень 3, элемент 3</Column>
<Column sm="12">Уровень 3, элемент 4</Column>
</Grid>
</Column>
</Grid>
</Column>
</Grid>
При таком подходе каждый уровень вложенности остаётся полностью отзывчивым, а структура остаётся читаемой и поддерживаемой.
Grid
с компонентами Stack и Tile.gap для
внешней и внутренней сетки, чтобы визуально отделять группы
элементов.Вложенные сетки Carbon Components Svelte позволяют гибко управлять сложными макетами, сохраняя адаптивность, согласованность и читаемость кода. Их правильное использование особенно важно при построении интерфейсов с множеством блоков и компонентных комбинаций.