Componentes
Field
betaA anatomia de um campo: rótulo, controle, texto de apoio e erro. Existe para que nenhuma tela remonte essa relação por conta própria.
Ainda não é estável porque Rota não varrida pelo sensor. Ausência de medição não é aprovação. O contrato de maturidade explica o que cada requisito exige.
@voxmente/ui/components/ui/field
Orientação
A anatomia de um campo de formulário: rótulo, controle, texto de apoio e erro, já ligados entre si. Existe para que nenhuma tela remonte essa relação por conta própria — e erre.
Quando usar
- Qualquer controle de formulário que tenha rótulo. Input, Select, Textarea, Checkbox, Switch: todos entram por aqui.
- O campo precisa de texto de apoio explicando o formato esperado antes de o usuário errar.
- O campo tem estado de erro e o erro precisa ser anunciado, não só pintado de vermelho.
Quando não usar
- Para agrupar campos relacionados — isso é FieldSet com FieldLegend, que é outra parte da mesma família.
- Para leitura. Pares de rótulo e valor de um registro salvo são Description List, não formulário desabilitado.
- Para um controle sem rótulo visível nem acessível: aí o problema é a falta do rótulo, e o Field não conserta isso sozinho.
<Field>
<FieldLabel htmlFor="campo">Nome do aluno</FieldLabel>
<Input id="campo" />
</Field>Anatomia
FieldSet
└─ FieldLegend
└─ FieldGroup
└─ Field
└─ FieldLabel
└─ Field
└─ FieldLabelUso
Como aparece no boletim e na chamada.
Orientação
Envia um resumo da sessão por e-mail ao final da aula.
Grupo com legenda
Outros controles
Ajusta o ritmo das próximas lições.
Switch e checkbox
Avisa a família uma hora antes da aula marcada.
Layout responsivo
Desabilitado
Gerado pela secretaria, não editável aqui.
Cartão selecionável
Erro de validação
Separador
Acessibilidade
- O
Fieldaplicarole="group": rótulo, apoio e erro são anunciados como uma unidade. FieldErrortemrole="alert", então o erro é anunciado quando aparece, sem o usuário precisar voltar ao campo.- O vínculo entre rótulo e controle continua sendo responsabilidade de quem monta:
FieldLabelprecisa dehtmlForapontando para oiddo controle.
Em contexto de produto
No login, os dois campos usam o texto de apoio para dizer o que a plataforma espera antes de o usuário errar a primeira tentativa.
Ver o bloco de autenticaçãoComponentes relacionados
Referência da API
Field
| Prop | Tipo | Padrão |
|---|---|---|
| orientation | "horizontal" | "vertical" | "responsive" | null | "vertical" |
Também aceita as props de React, incluindo className e os atributos de DOM.
FieldError
| Prop | Tipo | Padrão |
|---|---|---|
| errors | ({ message?: string | undefined; } | undefined)[] | — |
Também aceita as props de React, incluindo className e os atributos de DOM.
FieldLegend
| Prop | Tipo | Padrão |
|---|---|---|
| variant | "label" | "legend" | "legend" |
Também aceita as props de React, incluindo className e os atributos de DOM.
FieldContent, FieldDescription, FieldGroup, FieldLabel, FieldSeparator, FieldSet, FieldTitle não têm props próprias — aceitam apenas as props herdadas, incluindo className e os atributos de DOM.
- Anatomia: exemplo desta página
- Demonstrações e playground: componente real de @voxmente/ui
- Referência da API: TypeScript do pacote
- Cor, espaçamento e raio das demonstrações: tokens de theme.css