OTP input
Поле одноразового кода с отдельной ячейкой для каждого символа.
- Браузеры
- Chrome 123+Firefox 121+Safari 17.5+
- Уровень
- 2
- Сжатый размер
- 1.53 kB
- Лимит принудительной компоновки
- 0 ms
- Лимит axe
- 0
- Совместим с SSR
- Да
- Публичный контракт
- Тестовый стенд
Песочница
OTP Input
По умолчанию
API
OtpInput.Root
| Свойство | Тип | По умолчанию | Описание |
|---|---|---|---|
value | string | — | Текущий код, делающий поле управляемым. |
defaultValue | string | "" | Начальный код неуправляемого поля. |
onValueChange | (value: string) => void | — | Вызывается с кодом при каждом его изменении. |
onComplete | (value: string) => void | — | Вызывается, когда код достигает заданной длины. |
length | number | 6 | Число символов кода. |
type | "numeric" | "alphanumeric" | "numeric" | Символы, сохраняемые при вводе или вставке. |
mask | boolean | false | Скрывает введённые символы в ячейках. |
disabled | boolean | false | Отключает скрытое поле ввода и задаёт атрибут data-disabled. |
autoFocus | boolean | false | Переводит фокус на скрытое поле ввода при монтировании поля. |
id | string | — | Идентификатор отображаемого корневого элемента. |
render | ReactElement | ((props, state) => ReactElement) | — | Заменяет отображаемый элемент, сохраняя поведение и связи доступности. |
OtpInput.Slot
| Свойство | Тип | По умолчанию | Описание |
|---|---|---|---|
index* | number | — | Позиция символа кода, отображаемого этой ячейкой. |
render | ReactElement | ((props, state) => ReactElement) | — | Заменяет отображаемый элемент, сохраняя поведение и связи доступности. |
OtpInput.HiddenInput
| Свойство | Тип | По умолчанию | Описание |
|---|---|---|---|
autoFocus | boolean | — | Переводит фокус на это поле ввода при монтировании, переопределяя настройку корня. |
render | ReactElement | ((props, state) => ReactElement) | — | Заменяет отображаемый элемент, сохраняя поведение и связи доступности. |
Клавиатура
| Клавиша | Действие |
|---|---|
| Tab | Перевести фокус на элемент управления или с него |
| Enter / Space | Активировать при наличии фокуса (для элементов управления типа кнопки) |
Доступность
По возможности используется семантический HTML. Изучите разметку в песочнице: ARIA добавляется только там, где нативных элементов недостаточно.
Привязка стилей
data-disabled