OTP input
Campo para códigos de uso único, com um espaço por caractere.
- Navegadores
- Chrome 123+Firefox 121+Safari 17.5+
- Nível
- 2
- Tamanho compactado
- 1.53 kB
- Limite de layout forçado
- 0 ms
- Limite do axe
- 0
- Compatível com SSR
- Sim
- Contrato publicado
- Ambiente de teste
Experimentar
OTP Input
Padrão
API
OtpInput.Root
| Prop | Tipo | Padrão | Descrição |
|---|---|---|---|
value | string | — | Código atual, tornando o campo controlado. |
defaultValue | string | "" | Código inicial do campo não controlado. |
onValueChange | (value: string) => void | — | Chamado com o código sempre que ele muda. |
onComplete | (value: string) => void | — | Chamado quando o código atinge o comprimento configurado. |
length | number | 6 | Número de caracteres do código. |
type | "numeric" | "alphanumeric" | "numeric" | Caracteres mantidos ao digitar ou colar. |
mask | boolean | false | Oculta os caracteres inseridos nos espaços. |
disabled | boolean | false | Desabilita o input oculto e define o atributo data-disabled. |
autoFocus | boolean | false | Foca o input oculto quando o campo é montado. |
id | string | — | Id aplicado ao elemento raiz renderizado. |
render | ReactElement | ((props, state) => ReactElement) | — | Substitua o elemento renderizado preservando comportamento e conexões de acessibilidade. |
OtpInput.Slot
| Prop | Tipo | Padrão | Descrição |
|---|---|---|---|
index* | number | — | Posição do código exibida neste espaço. |
render | ReactElement | ((props, state) => ReactElement) | — | Substitua o elemento renderizado preservando comportamento e conexões de acessibilidade. |
OtpInput.HiddenInput
| Prop | Tipo | Padrão | Descrição |
|---|---|---|---|
autoFocus | boolean | — | Foca este input na montagem, substituindo a configuração da raiz. |
render | ReactElement | ((props, state) => ReactElement) | — | Substitua o elemento renderizado preservando comportamento e conexões de acessibilidade. |
Teclado
| Tecla | Ação |
|---|---|
| Tab | Mova o foco para o controle ou para fora dele |
| Enter / Space | Ative quando estiver em foco (controles semelhantes a botões) |
Acessibilidade
Usa HTML semântico sempre que possível. Inspecione a marcação renderizada no ambiente interativo — ARIA só é adicionado quando os elementos nativos não bastam.
Pontos de integração de estilos
data-disabled