T2 EducaçãoMidas

Input

Campo de texto de 32px. Aceita todos os tipos de <input> (text, email, password, file...), estados disabled e inválido (aria-invalid). Use dentro de Field para label, descrição e erro.

Código-fonte

Exemplos

Interaja com o componente e copie o código de cada exemplo.

Básico

Desabilitado

Este campo está desabilitado.

Inválido

Arquivo

Escolha uma foto para o perfil.

Com botão

import { Input } from "@t2-educacao/midas";

Uso

<Input type="email" placeholder="voce@email.com" aria-label="E-mail" />

Quase sempre o Input vai dentro de um Field, que traz label, descrição e mensagem de erro:

<Field>
  <FieldLabel htmlFor="email">E-mail</FieldLabel>
  <Input id="email" type="email" placeholder="voce@email.com" />
  <FieldDescription>Usamos para enviar seu certificado.</FieldDescription>
</Field>

Props

Aceita todas as props de <input> (type, value, onChange, placeholder, disabled, required...). type é "text" por padrão.

PropTipoDescrição
aria-invalidbooleanMostra o estado de erro (borda e anel vermelhos)
classNamestringClasses extras (as suas vencem)
refRef<HTMLInputElement>Encaminhada ao <input>

Estados

EstadoComo ativar
FocoAutomático: borda e anel na cor ring
Desabilitadodisabled
Inválidoaria-invalid (e invalid no Field para o label ficar vermelho)

Exemplos

Arquivo

<Input id="foto" type="file" />

Com botão ao lado

<div className="flex gap-2">
  <Input placeholder="Buscar" aria-label="Buscar" />
  <Button>Buscar</Button>
</div>

Para ícone, prefixo ou botão dentro do campo, use InputGroup. Para um campo e um botão encostados, use ButtonGroup.

Acessibilidade

  • Todo campo precisa de um nome: FieldLabel com htmlFor, ou aria-label.
  • Para ligar a descrição ou o erro ao campo, use aria-describedby com o id do FieldDescription/FieldError.
  • placeholder não substitui label.

Não faça

  • Usar o Input sem label visível em formulários.
  • Mudar a altura com className para "caber" no layout: use os componentes de grupo.

On this page