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.
Exemplos
Interaja com o componente e copie o código de cada exemplo.
Básico
Desabilitado
Este campo está desabilitado.
Inválido
Este cupom expirou.
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.
| Prop | Tipo | Descrição |
|---|---|---|
aria-invalid | boolean | Mostra o estado de erro (borda e anel vermelhos) |
className | string | Classes extras (as suas vencem) |
ref | Ref<HTMLInputElement> | Encaminhada ao <input> |
Estados
| Estado | Como ativar |
|---|---|
| Foco | Automático: borda e anel na cor ring |
| Desabilitado | disabled |
| Inválido | aria-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:
FieldLabelcomhtmlFor, ouaria-label. - Para ligar a descrição ou o erro ao campo, use
aria-describedbycom oiddoFieldDescription/FieldError. placeholdernão substitui label.
Não faça
- Usar o Input sem label visível em formulários.
- Mudar a altura com
classNamepara "caber" no layout: use os componentes de grupo.
Field
Estrutura de campo de formulário: Field, FieldLabel (com required e badge), FieldDescription, FieldError e FieldGroup. Orientação vertical ou horizontal, estados inválido e desabilitado.
InputGroup
Campo com ícones, textos ou botões dentro da mesma borda (ex.: prefixo https://, ícone de busca, botão de copiar). InputGroup, InputGroupAddon (start ou end), InputGroupInput, InputGroupTextarea, InputGroupText e InputGroupButton.