Pular para o conteúdo
UI

Input

Campo de texto para formulários e entrada de dados do usuário, com estilo e recursos de acessibilidade embutidos.

Exemplos

Input de texto

Padrão (label estático)

Label flutuante

Texto de ajuda, desabilitado e inválido

Opcional
Estado desabilitado
O nome de usuário é obrigatório

Com ícones

Tamanho médio (md)

Tamanho médio com texto de ajuda, desabilitado e inválido

Opcional
Estado desabilitado
O nome de usuário é obrigatório

Input numérico

Padrão (label estático)

Label flutuante

Texto de ajuda, desabilitado e inválido

Deve ser 0 ou maior
Estado desabilitado
A pontuação deve ser 0 ou maior

Com ícones

USD

Tamanho médio

Input de senha

Com texto de ajuda

Deve ter pelo menos 8 caracteres

Senha inválida

A senha deve ter pelo menos 8 caracteres

API

Input

Elemento de input de texto.

O <input> fica sempre dentro de um container (data-slot="input-adornment"), mesmo sem ícones. Sem ícones, ele usa display: contents e não muda o layout. É esse container que mantém o texto e o foco quando o ícone de alerta do invalid aparece ou some. Por isso o <input> não é irmão de um elemento passado depois do Input, e seletores como peer-*, ~ e + não o alcançam. Para estilizar o rótulo ou outros elementos conforme o estado do campo, use o InputWrapper com o InputLabel, que reagem ao foco, ao valor e ao invalid pelo group-has.

PropriedadeTipoPadrãoDescrição
type"text" | "email" | "numeric" | "password""text"Variante do input. "email" mostra um ícone Mail padrão à esquerda. Em "text" e "email", definir invalid mostra um ícone de triângulo de alerta à direita. "numeric" renderiza um input numérico com botões de stepper. "password" renderiza um campo de senha com ícone de cadeado e botão de mostrar/ocultar.
size"md" | "lg""lg"Altura do input e escala do ícone e do label. "md" usa 40px de altura, ícones de 20px, label de placeholder de 14px e steppers numéricos menores.
minnumber-Quando o type é numeric, define o valor mínimo permitido. Atributo HTML padrão. Com o campo vazio, as setas do teclado e os botões de aumentar e diminuir vão para min quando ele é maior que zero (nunca acima de max); caso contrário, começam do zero.
maxnumber-Quando o type é numeric, define o valor máximo permitido. Os steppers e as setas do teclado param nesse limite.
stepnumber1Quando o type é numeric, define o incremento aplicado pelos steppers e pelas teclas ArrowUp/ArrowDown.
readOnlybooleanfalseQuando o type é numeric, os steppers ficam desabilitados e as setas do teclado deixam de mudar o valor.
iconLeftReact.ReactElement-Ícone ou elemento no início do input. No type "numeric", só o slot da esquerda é usado (os steppers ficam à direita). É ignorado no type "password", que sempre mostra o ícone de cadeado (Lock).
iconRightReact.ReactElement-Ícone ou elemento no fim do input. Não é usado nos types "numeric" e "password". Nos types "text" e "email", quando invalid é true, o ícone de alerta embutido substitui qualquer iconRight personalizado. O texto e o rótulo em repouso param a 12px do ícone no "lg" e a 10px no "md", espelhando o espaço do ícone do início. Clicar num ícone comum foca o campo; um button, um link ou um elemento com role="button" passado aqui continua recebendo o clique.
showPasswordLabelstring"Mostrar senha"Label acessível do botão de visibilidade quando a senha está oculta. Só para o type "password".
hidePasswordLabelstring"Ocultar senha"Label acessível do botão de visibilidade quando a senha está visível. Só para o type "password".
disabledbooleanfalseDesabilita o input e os steppers (numeric). Atributo HTML padrão.
invalidbooleanfalseQuando true, ativa o estilo de estado de erro. Nos types "text" e "email", também mostra um ícone de triângulo de alerta à direita.

InputWrapper

Wrapper de layout para o input e os elementos relacionados (label e texto de ajuda).

PropriedadeTipoPadrãoDescrição
classNamestring-Classes CSS adicionais aplicadas ao wrapper.

InputField

Wrapper relativo para InputLabel + Input. Use ao combinar um label flutuante com InputText, para o label continuar centralizado na vertical.

PropriedadeTipoPadrãoDescrição
classNamestring-Classes CSS adicionais aplicadas ao container do campo.

InputLabel

Label flutuante (como o SelectLabel do Select). Use dentro de InputWrapper; com InputText, envolva o label e o input em InputField. Use um placeholder com o mesmo texto do label (ex.: placeholder="E-mail").

PropriedadeTipoPadrãoDescrição
htmlForstring-Associa o label ao id do input.

InputText

Texto de ajuda ou de validação abaixo do input. Aceita os atributos HTML padrão de um span (ex.: className).

PropriedadeTipoPadrãoDescrição
invalidbooleanfalseQuando true, usa as cores de erro no texto.
classNamestring-Classes CSS adicionais.

InputPassword

Campo de senha usado pelo Input com type="password". Sempre mostra o ícone de cadeado (Lock) à esquerda e o botão de mostrar/ocultar senha à direita; não aceita iconLeft nem iconRight. Aceita as demais props nativas de input, exceto type.

PropriedadeTipoPadrãoDescrição
size"md" | "lg""lg"Altura do input e tamanho dos ícones.
invalidbooleanfalseQuando true, ativa o estilo de estado de erro.
showPasswordLabelstring"Mostrar senha"Label acessível do botão de visibilidade quando a senha está oculta.
hidePasswordLabelstring"Ocultar senha"Label acessível do botão de visibilidade quando a senha está visível.
disabledbooleanfalseDesabilita o input e o botão de visibilidade.
classNamestring-Classes CSS adicionais aplicadas ao input.

InputNumeric

Campo numérico usado pelo Input com type="numeric". Aceita só números, um ponto como separador decimal e o sinal de menos quando min é negativo. Outros caracteres, inclusive a vírgula, são removidos: digitar 1,5 vira 15. Tem role="spinbutton" e mostra os botões de aumentar e diminuir à direita. Aceita as demais props nativas de input, exceto type.

PropriedadeTipoPadrãoDescrição
size"md" | "lg""lg"Altura do input e tamanho dos ícones.
invalidbooleanfalseQuando true, ativa o estilo de estado de erro.
iconLeftReact.ReactElement-Ícone ou elemento no início do input. Não há slot à direita, que é ocupado pelos steppers.
value / defaultValuestring | number-Valor no modo controlado ou valor inicial no modo não controlado.
onChange(e: ChangeEvent<HTMLInputElement>) => void-Função chamada quando o valor muda, pela digitação, pelos steppers ou pelas setas do teclado. Nos steppers e nas setas, recebe um evento sintético com o novo valor em e.target.value.
minnumber-Valor mínimo. Com o campo vazio, os steppers e as setas vão para min quando ele é maior que zero.
maxnumber-Valor máximo. Os steppers e as setas param nesse limite.
stepnumber1Incremento aplicado pelos steppers e pelas teclas ArrowUp/ArrowDown.
readOnlybooleanfalseDesabilita os steppers e as setas do teclado.
disabledbooleanfalseDesabilita o input e os steppers.
classNamestring-Classes CSS adicionais aplicadas ao input.

InputAdornment

Container (div) que posiciona um input com InputStartIcon e/ou InputEndIcon, ajustando o espaçamento interno do input para os ícones. Use quando montar o campo manualmente. Aceita todas as props nativas de div.

PropriedadeTipoPadrãoDescrição
classNamestring-Classes CSS adicionais aplicadas ao container.

InputStartIcon

Slot (span) do ícone no início do input, dentro de um InputAdornment. Não recebe cliques (pointer-events: none). Aceita todas as props nativas de span.

PropriedadeTipoPadrãoDescrição
classNamestring-Classes CSS adicionais aplicadas ao slot.

InputEndIcon

Slot (span) do ícone ou ação no fim do input, dentro de um InputAdornment. Diferente do InputStartIcon, recebe cliques, então pode conter um botão. Aceita todas as props nativas de span.

PropriedadeTipoPadrãoDescrição
classNamestring-Classes CSS adicionais aplicadas ao slot.