Breakpoints в Carbon Components Svelte играют ключевую роль в построении адаптивного интерфейса. Они определяют точки останова, при которых изменяется разметка и поведение компонентов в зависимости от размера экрана. Библиотека следует концепции mobile-first, что означает, что базовые стили рассчитаны на мобильные устройства, а более широкие экраны обрабатываются через медиа-запросы.
Carbon Components Svelte использует стандартный набор breakpoints, который соответствует следующим значениям:
sm (small) — до 320pxmd (medium) — от 321px до 672pxlg (large) — от 673px до 1056pxxl (extra-large) — от 1057px до 1312px2xl (2x extra-large) — от 1313px и вышеЭти значения задаются в переменных SASS и используются при генерации CSS-классов для компонентов. Они позволяют гибко управлять шириной контейнеров, видимостью элементов и структурой сетки.
В Carbon Components Svelte каждый компонент может адаптироваться под разные размеры экрана. Примеры включают:
Grid и Column Компонент Grid
совместно с Column позволяет строить адаптивные сетки. Для
каждой колонки можно задавать ширину для определенного breakpoint через
пропсы:
Контент колонки
Здесь колонка будет занимать 4 единицы на малых экранах, 8 на средних и полностью ширину контейнера на больших.
Скрытие и отображение элементов Компоненты
поддерживают управление видимостью через специальные классы. Например,
bx--hide-sm скрывает элемент на малых экранах, а
bx--show-lg делает его видимым только на больших.
Модальные окна и панели Компоненты типа
Modal и SidePanel используют медиазапросы для
автоматического изменения размеров и позиционирования. Это позволяет,
например, на мобильных устройствах отображать модальное окно на весь
экран, а на десктопе ограничивать его фиксированной шириной.
Carbon Components Svelte строится на SCSS-переменных, что позволяет
создавать кастомные точки останова. Для этого можно
изменить переменные в файле _carbon-overrides.scss:
$carbon--breakpoints: (
sm: 320px,
md: 600px,
lg: 1024px,
xl: 1440px,
2xl: 1920px
);
После этого пересборка стилей обновит все компоненты с новыми точками останова. Такой подход гарантирует согласованность адаптивного дизайна по всей библиотеке.
Carbon Components Svelte применяет fluid typography
и адаптивные отступы с использованием rem и
em, что обеспечивает плавное масштабирование текста и
элементов при изменении ширины экрана. Например, класс
bx--type-body-short-01 автоматически подстраивается под
breakpoint, изменяя размер шрифта и межстрочный интервал.
sm,
md, lg пропсов, чтобы избежать жесткой
фиксации ширины.bx--hide-*, вместо этого лучше изменять структуру и порядок
элементов с помощью Grid и Column.В Svelte можно динамически реагировать на изменение ширины экрана,
используя reactive statements и window.innerWidth:
{#if isMobile}
Мобильная версия
{:else}
Десктопная версия
{/if}
Это позволяет дополнительно адаптировать логику компонентов вне стандартных breakpoints Carbon.
Grid + Column) —
базовый каркас.Такой подход обеспечивает полное соответствие принципам mobile-first, гибкость при кастомизации и поддержку различных устройств без дублирования кода.