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 |