В библиотеке Carbon Components Svelte визуальная консистентность достигается через строгое использование системы токенов цвета. Каждый компонент поддерживает набор стандартных цветовых палитр, которые соответствуют рекомендациям IBM Carbon Design System. Основные типы токенов:
interactive — цвет интерактивных элементов (кнопки,
ссылки, чекбоксы);ui-background — фоновый цвет интерфейса;text-primary — основной цвет текста;text-secondary — второстепенный текст;supportive — цвета для статусов (успех, ошибка,
предупреждение).Токены определяются в файлах SCSS и автоматически подключаются через системные переменные в Svelte-компонентах. Пример использования через inline-стили:
<script>
import { Button } from 'carbon-components-svelte';
</script>
<Button style="background-color: var(--cds-interactive); color: var(--cds-text-primary)">
Нажми меня
</Button>
Использование CSS-переменных Carbon обеспечивает легкую кастомизацию и адаптивность цветовой схемы при переключении тем.
Carbon Components Svelte поддерживает две базовые
темы: светлую (white) и темную (g10).
Переключение темы осуществляется через установку класса на корневой
элемент:
<div class="bx--theme--g10">
<Button>Темная тема</Button>
</div>
Ключевые моменты при работе с темами:
theme
пропс или CSS-переменные напрямую.В Carbon Design System предусмотрены оттенки базовых цветов, позволяющие создавать иерархию визуальной информации:
gray-10 – основной фон;gray-50 – выделение блоков;blue-60 – акцентные элементы;green-40 – индикатор успеха.Для градиентов используется комбинация токенов и CSS-функции
linear-gradient:
<div style="background: linear-gradient(to right, var(--cds-blue-60), var(--cds-blue-40)); height: 100px;">
</div>
Использование градиентов необходимо ограничивать акцентными элементами, чтобы не нарушать визуальную иерархию интерфейса.
Текстовые компоненты в Carbon Svelte используют системные токены цвета и масштаб шрифтов:
bx--type-body-short-01 — стандартный текст;bx--type-heading-03 — заголовки среднего уровня;bx--type-caption-01 — подписи и мелкий текст.Для управления цветом текста применяются переменные:
<p class="bx--type-body-short-01" style="color: var(--cds-text-secondary)">
Второстепенный текст
</p>
Важно: сочетание контраста текста и фона строго контролируется для соответствия WCAG 2.1, особенно для темной темы.
Кнопки, чекбоксы, переключатели и ссылки имеют встроенные варианты стилей:
primary — главный акцент кнопки;secondary — альтернативная кнопка;danger — действие с негативным эффектом;ghost — прозрачная кнопка без фона.Пример применения стиля через пропс kind:
<Button kind="danger">Удалить</Button>
Каждый вид кнопки использует комбинацию токенов для фона, рамки и текста. Для динамической стилизации допустимо использовать inline-стили или переопределять CSS-переменные.
Для тонкой настройки компонентов Carbon Svelte применяются
CSS-переменные, доступные через :root или
локальные селекторы:
:root {
--cds-interactive: #0f62fe;
--cds-text-primary: #161616;
--cds-ui-background: #f4f4f4;
}
Переменные можно переопределять на уровне компонента, что позволяет создавать уникальные стили без модификации исходных файлов библиотеки. Рекомендуется:
:root;Carbon Components Svelte предоставляет утилиты для управления цветом, например:
color-adjust — для изменения яркости или
насыщенности;transparentize — для добавления прозрачности;contrast-color — автоматический выбор контрастного
текста.Пример:
<div style="background-color: color-adjust(var(--cds-blue-60) lightness(20%));">
Светлый синий блок
</div>
Эти утилиты позволяют быстро создавать вариативные визуальные элементы, сохраняя соответствие системе.
Эта система позволяет создавать единообразный, адаптивный и доступный интерфейс, обеспечивая строгую визуальную консистентность при разработке приложений с Svelte и Carbon Components.