Carbon Components Svelte предоставляет мощный набор компонентов для построения интерфейсов, соответствующих стандартам IBM Carbon Design System. Особое внимание уделено обработке ошибок и отображению предупреждений, чтобы пользователи могли быстро понять проблему и корректно взаимодействовать с интерфейсом.
В библиотеке Carbon Components Svelte большинство интерактивных компонентов поддерживают свойства для управления состояниями ошибок. Например, для Input, TextArea, Select и NumberInput доступны следующие ключевые свойства:
invalid – логическое значение, определяющее, что поле
содержит ошибку.invalidText – текст сообщения об ошибке, который будет
отображён пользователю.warn – логическое значение, указывающее на состояние
предупреждения.warnText – текст сообщения для состояния
предупреждения.Пример использования компонента Input с ошибкой:
<script>
import { TextInput } from 'carbon-components-svelte';
let value = '';
let hasError = true;
</script>
<TextInput
bind:value
invalid={hasError}
invalidText="Поле обязательно для заполнения"
labelText="Имя пользователя"
/>
В этом примере invalid={hasError} активирует отображение
состояния ошибки, а invalidText предоставляет подробное
сообщение.
Предупреждения помогают информировать пользователя о потенциальной проблеме, не блокируя взаимодействие с компонентом. Применение схоже с обработкой ошибок, но отличается семантически:
<script>
import { TextInput } from 'carbon-components-svelte';
let value = '';
let showWarning = true;
</script>
<TextInput
bind:value
warn={showWarning}
warnText="Рекомендуется использовать более длинное значение"
labelText="Пароль"
/>
Свойство warn активирует визуальное выделение поля
желтым цветом, а warnText выводит сопутствующую
подсказку.
Carbon Components Svelte автоматически применяет правильные стили для состояний ошибок и предупреждений:
invalid) – красная рамка и
текст сообщения красного цвета.warn) – желтая рамка и
текст сообщения желтого цвета.Важно использовать эти свойства для соответствия визуальной индикации
и стандартам UX. Для компонентов, таких как Dropdown,
Select и NumberInput, принцип
аналогичен: добавление invalid/warn и
соответствующего текста.
Компоненты позволяют комбинировать состояния ошибок и предупреждений,
но при этом ошибка имеет приоритет над предупреждением.
То есть, если одновременно установлены invalid и
warn, компонент будет визуализироваться как ошибка. Это
предотвращает путаницу и повышает читаемость интерфейса.
Пример:
<TextInput
bind:value
invalid={true}
invalidText="Некорректное значение"
warn={true}
warnText="Значение слишком короткое"
labelText="Email"
/>
В данном случае компонент будет отображаться как поле с ошибкой, а предупреждение не будет визуально активно.
Для форм с динамической валидацией часто используют биндинги и реактивные выражения:
<script>
import { TextInput } from 'carbon-components-svelte';
let email = '';
$: invalidEmail = !/^\S+@\S+\.\S+$/.test(email);
</script>
<TextInput
bind:value={email}
invalid={invalidEmail}
invalidText="Введите корректный email"
labelText="Email"
/>
Здесь переменная invalidEmail автоматически
пересчитывается при изменении значения email, обеспечивая
мгновенную обратную связь пользователю.
Компоненты Carbon автоматически добавляют атрибуты
aria-invalid и aria-describedby для
обеспечения доступности. Это значит, что скринридеры корректно
озвучивают состояние ошибки или предупреждения, а текст ошибки связан с
соответствующим полем формы.
Не только поля ввода поддерживают состояния ошибок:
invalid и
invalidText работает аналогично TextInput.warn и
invalid, автоматически отображая текстовые подсказки.<Select
bind:value={selectedOption}
invalid={selectedOption === ''}
invalidText="Выберите значение"
labelText="Выбор категории"
/>
С помощью Carbon Components Svelte можно реализовать комплексную обработку ошибок и предупреждений, обеспечивая высокий уровень UX, визуальную последовательность и доступность интерфейса.