Компонент Toggle используется для создания переключателей состояния, аналогичных классическим переключателям включено/выключено. В Carbon Components Svelte Toggle реализован с учетом реактивности Svelte и стандартов IBM Carbon Design System.
Для использования Toggle необходимо импортировать компонент из библиотеки:
Пояснения ключевых атрибутов:
bind:checked – двусторонняя привязка состояния
переключателя. Позволяет синхронизировать переменную Svelte с состоянием
Toggle.labelText – текст метки рядом с переключателем.id – уникальный идентификатор компонента, полезен для
тестирования и доступности.Toggle поддерживает несколько важных свойств, влияющих на его поведение:
disabled – делает переключатель недоступным для
взаимодействия.labelA и labelB – текстовые метки для двух
состояний переключателя (выключено/включено).size – размер компонента, может принимать значения
"sm", "md" или "lg".Пример использования с кастомными метками:
Компонент генерирует стандартное событие Svelte change,
которое позволяет отслеживать изменения состояния:
console.log('Новое состояние:', e.detail.checked)}
/>
e.detail.checked возвращает текущее состояние
переключателя.Carbon Components Svelte позволяет управлять стилями через классы и CSS-переменные. Для Toggle доступны следующие возможности:
--disabled,
--small, --large).class:
Toggle удобно использовать в формах благодаря поддержке стандартных атрибутов:
name – имя поля для отправки формы.value – значение при отправке, обычно
"true" или "false".required – делает поле обязательным.Пример формы с Toggle:
Toggle полностью поддерживает стандарты доступности:
aria- атрибуты
(aria-checked, aria-label).labelText автоматически связывается с
переключателем через id.Toggle можно сочетать с другими элементами Carbon Components Svelte:
Tooltip для объяснения функционала
переключателя:
При включении рекламы не будет отображаться на странице
FormItem для структурирования форм:
labelA и labelB при
необходимости уточнения состояния.disabled для предотвращения изменений в
критических сценариях.id для интеграции с тестами и
скринридерами.bind:checked
вместо отдельного обработчика on:change для упрощения
синхронизации состояния.