FormField
Компонент для создания полей ввода с возможностью добавления иконок и статусов,
лежит в основе таких элементов форм, как Input, Select,
Textarea, но может использоваться как база для пользовательских полей ввода.
Режимы отображения
Задаётся свойством mode.
"default"— стандартный режим отображения с фоном, обводкой и текстом-подсказкой;"plain"— упрощенный режим, который показывает только текст-подсказку без фона и обводки.
Контент в начале/в конце
В компоненте доступна возможность добавления дополнительного контента слева и/или справа от содержимого,
задаётся свойством before и after соответственно. Наиболее частый вариант использования свойств before/after - иконки.
Придерживайтесь следующих рекомендаций:
- используйте иконки следующих размеров:
12px,16px,20px,24pxи28px; - для интерактивных иконок используйте компонент
IconButton.
Выравнивание иконок
Для каждой иконки можно задать вертикальное выравнивание с помощью свойств:
beforeAlign— выравнивание левой иконки;afterAlign— выравнивание правой иконки.
Доступные значения:
"center"— по центру (значение по умолчанию);"start"— по верхнему краю;"end"— по нижнему краю.
Состояния
disabled
Свойство disabled блокирует взаимодействие с компонентом и добавляет визуальную индикацию недоступности.
Валидация
Свойство status используется для визуализации валидации компонента - некорректности заполненного поля (значение "error")
или успешной валидации (значение "valid").
Доступность (a11y)
FormField автоматически обрабатывает состояния фокуса и наведения, обеспечивая визуальную обратную связь для пользователей.
Компонент поддерживает все стандартные HTML-атрибуты доступности.
При использовании FormField с полями ввода убедитесь, что:
- у поля есть описание (используйте свойство
topуFormItemили оборачивайтеFormFieldвHTML-тэгlabel); - при наличии ошибок валидации или при необходимости подтверждения валидности, оставляйте пояснение
(используйте свойство
bottomуFormItemили воспользуйтесьaria-describedby).
Свойства и методы
| Свойство | Описание |
|---|---|
after | ReactNodeДобавляет иконку справа. Рекомендации:
По умолчанию: - |
afterAlign | FieldIconsAlignВертикальное выравнивание иконки справа. По умолчанию: center |
before | ReactNodeДобавляет иконку слева. Рекомендации:
По умолчанию: - |
beforeAlign | FieldIconsAlignВертикальное выравнивание иконки слева. По умолчанию: center |
Component | ElementType<any, keyof IntrinsicElements>По умолчанию: span |
disabled | booleanБлокировка взаимодействия с компонентом. По умолчанию: - |
getRootRef | Ref<HTMLElement>По умолчанию: - |
maxHeight | numberМаксимальная высота поля. По умолчанию: - |
mode | "default" | "plain"Режим отображения.
По умолчанию: default |
status | "default" | "error" | "valid"Статус отображения поля в форме. По умолчанию: default |