В библиотеке Carbon Components Svelte иконки реализованы как
отдельные компоненты, которые можно импортировать и использовать в любом
месте интерфейса. Каждый компонент иконки поставляется с поддержкой
основных атрибутов: size, fill,
class, title и aria-label.
Пример импорта и использования иконки:
<script>
import { Add16 } from 'carbon-icons-svelte';
</script>
<Add16 size={24} fill="#0f62fe" title="Добавить элемент" />
Ключевые моменты при работе с иконками:
size задает размер иконки в пикселях, при этом
библиотека автоматически масштабирует SVG.fill позволяет изменить цвет заливки иконки без
создания отдельных стилей CSS.title и aria-label обеспечивают
доступность, особенно для экранных читалок.Многие компоненты Carbon поддерживают интеграцию иконок “из коробки”.
Например, Button, Search, Tag
позволяют вставлять иконки с помощью слотов или специальных свойств:
<script>
import { Button } from 'carbon-components-svelte';
import { Add16 } from 'carbon-icons-svelte';
</script>
<Button kind="primary" slot="icon" icon={Add16}>
Добавить
</Button>
В этом случае иконка автоматически подстраивается под стиль кнопки и
меняет размер в зависимости от типа кнопки (small,
field, default).
Заголовки в Carbon Components Svelte (Heading) являются
компонентами с поддержкой нескольких уровней
(h1–h6) и дополнительных настроек:
<script>
import { Heading } from 'carbon-components-svelte';
</script>
<Heading level={2} class="custom-heading" style="color: #161616;">
Основной заголовок страницы
</Heading>
Особенности кастомизации:
level определяет тег заголовка
(h1–h6) и автоматически задает базовый размер
шрифта.<script>
import { Heading } from 'carbon-components-svelte';
import { Warning16 } from 'carbon-icons-svelte';
</script>
<Heading level={3}>
<Warning16 size={20} class="heading-icon" /> Важное уведомление
</Heading>
.heading-icon с
margin или vertical-align.Иконки и заголовки в Carbon легко адаптируются под тему и дизайн системы.
fill.size в процентах или пикселях.<style>
.heading-with-icon {
display: flex;
align-items: center;
gap: 0.5rem;
}
.heading-with-icon svg {
transition: fill 0.2s;
}
.heading-with-icon:hover svg {
fill: #ff5630;
}
</style>
<Heading level={2} class="heading-with-icon">
<Add16 size={24} fill="#0f62fe" />
Добавить элемент
</Heading>
<style>
.responsive-heading {
display: flex;
align-items: center;
gap: 0.5rem;
}
@media (max-width: 600px) {
.responsive-heading svg {
width: 16px;
height: 16px;
}
.responsive-heading h2 {
font-size: 1rem;
}
}
</style>
<Heading level={2} class="responsive-heading">
<Add16 size={24} fill="#0f62fe" />
Мобильный заголовок
</Heading>
Эти подходы позволяют создавать динамичные, адаптивные и визуально выразительные интерфейсы, полностью используя возможности Carbon Components Svelte для иконок и заголовков.