NumberField
Campo numérico com botões de incremento, formatação e limites.
O NumberField recebe um número com validação de limites e formatação por locale, como o prazo de uma rota ou o frete. Para escolher aproximadamente com o dedo, use Slider; os dois combinam bem lado a lado.
import { Label, NumberField } from "@rastreio-x/ui";
Padrão
Informe minValue e maxValue quando existirem limites reais. O grupo reúne os botões e o campo.
Passo e formato
step define o incremento; formatOptions aceita opções de Intl.NumberFormat, como moeda em reais.
Estados
Desabilitado e inválido. A mensagem de erro cita o intervalo permitido.
Anatomia
NumberField.Group: o conjunto de campo e botões.NumberField.DecrementButtoneNumberField.IncrementButton: subtrai e soma umstep.NumberField.Input: o campo editável.
Propriedades
Raiz (NumberField):
Campo (NumberField.Input):
Animações
Sem animação própria além da troca de cor no hover e no foco dos botões. A folha global da fachada reduz as transições com prefers-reduced-motion.
Acessibilidade
- Papel
spinbuttoncomaria-valuemin,aria-valuemaxearia-valuenow. - Setas para cima e para baixo incrementam; Page Up e Page Down saltam; Home e End vão aos limites.
- Os botões de incremento têm nome acessível localizado (pelo
I18nProvider pt-BR). - Número digitado respeita o formato do locale (vírgula decimal em pt-BR).
Boas práticas
Faça
Limites reais, unidade no rótulo e erro que cita o intervalo: Use um valor entre 25 e 40 dias.
Evite
Campo numérico sem unidade, ou limites que só aparecem depois do erro.
- Mostre a unidade no rótulo ou no formato (dias, R$).
- Ofereça
Sliderquando a precisão não for crítica. - Para códigos e identificadores (CEP, telefone), use
TextFieldcominputMode.