Row и Column — это базовые компоненты сеточной системы Carbon Components Svelte, предназначенные для создания адаптивной верстки на основе гибкой сетки. Они обеспечивают контроль над расположением элементов внутри контейнера, позволяют задавать пропорции колонок, управлять отступами и выравниванием, обеспечивая согласованность дизайна с принципами Carbon Design System.
Row служит контейнером для горизонтального распределения колонок. Все Column внутри Row располагаются в одной линии, и их ширина определяется либо пропорционально сетке, либо фиксированными значениями.
Column задает ширину элемента относительно доступного пространства внутри Row. Ширина может быть указана в виде числа от 1 до 16 (для 16-колоночной сетки по умолчанию) или в виде адаптивных значений для различных размеров экрана.
Пример базового использования:
<script>
import { Row, Column } from 'carbon-components-svelte';
</script>
<Row>
<Column width="4">
<div>Колонка 1</div>
</Column>
<Column width="8">
<div>Колонка 2</div>
</Column>
</Row>
В этом примере первая колонка занимает четверть ширины контейнера, а вторая — три четверти.
small,
medium, large).start, center, end,
stretch.start, center, end,
space-between, space-around,
space-evenly.Пример использования gap и justify:
<Row gap="medium" justify="space-between">
<Column width="4">
<div>Левая колонка</div>
</Column>
<Column width="4">
<div>Правая колонка</div>
</Column>
</Row>
width — основной параметр, определяющий ширину колонки в сетке. Может принимать:
4 для 4 колонок из 16){ sm: 8, md: 6, lg: 4 }offset — смещение колонки вправо на указанное количество колонок. Полезно для создания пустого пространства слева.
align — вертикальное выравнивание содержимого внутри колонки.
Пример адаптивной колонки:
<Column width={{ sm: 16, md: 8, lg: 4 }} offset={{ md: 2 }}>
<div>Адаптивная колонка</div>
</Column>
В данном примере колонка занимает всю ширину на маленьких экранах, половину ширины на средних и четверть на больших, при этом смещена на 2 колонки вправо на средних экранах.
Внутри Column можно использовать другой Row, создавая вложенные сетки, что позволяет строить сложные макеты без нарушения адаптивности.
Пример:
<Row>
<Column width="8">
<Row gap="small">
<Column width="4"><div>Вложенная 1</div></Column>
<Column width="4"><div>Вложенная 2</div></Column>
</Row>
</Column>
<Column width="8">
<div>Правая колонка</div>
</Column>
</Row>
Вложенные строки автоматически наследуют настройки родительской сетки, при этом могут задаваться свои gap и justify.
Система сеток Carbon Components Svelte построена с учетом mobile-first подхода, что означает:
width и offset (см.
выше).align и justify также могут быть
адаптивными, задавая разные значения для sm,
md и lg.Пример адаптивного выравнивания:
<Row justify={{ sm: 'center', md: 'start', lg: 'space-between' }}>
<Column width="6"><div>Колонка 1</div></Column>
<Column width="6"><div>Колонка 2</div></Column>
</Row>
small, medium, large), чтобы
сохранять единообразие интерфейса.Эти инструменты дают полную свободу при построении интерфейсов с точной подгонкой элементов под сетку Carbon, обеспечивая согласованность и удобство поддержки кода.