Navegar componentes
← Componentes

NumberInput

MiscExemplo
Um form input para valores numéricos com validação integrada, restrições min/max e controles de step. Use NumberInput para quantidades, medidas, porcentagens e inputs similares.
Importação
import {NumberInput} from '@pharos-ds/core/NumberInput';

Exemplos

Área interativa

size
isDisabled
isIntegerOnly
units
Código
import {NumberInput} from '@pharos-ds/core/NumberInput';

<NumberInput
  size="md"
  isDisabled={false}
  isIntegerOnly={false}
  units="none"
 />

Boas práticas

  • Faça: Defina min, max e step para orientar usuários a valores válidos.
  • Faça: Mostre units (ex.: "%" ou "GB") para que usuários saibam o que o número representa.
  • Evite: Use NumberInput para texto livre que por acaso contém números; use TextInput em vez disso.
  • Evite: Defina isOptional e isRequired no mesmo campo.
  • Evite: Envolva um NumberInput desabilitado em Tooltip para explicar por que está desabilitado; controles desabilitados engolem os eventos de hover que o wrapper precisa. Use a prop disabledMessage em vez disso.

Props

PropTipoPadrãoDescrição
label *stringTexto do label do input (sempre renderizado para acessibilidade).
value *number | null | undefinedValor atual do input.
onChange *(value: number) => voidCallback disparado quando o valor do input muda (apenas em input válido).
size'sm' | 'md' | 'lg''md'Variante de size.
isLabelHiddenbooleanOculta visualmente o label (ainda acessível a leitores de tela).
descriptionstringTexto de description exibido entre o label e o input.
isOptionalbooleanSe o campo é opcional (mutuamente exclusivo com isRequired).
isRequiredbooleanSe o campo é obrigatório (mutuamente exclusivo com isOptional).
isDisabledbooleanSe o input está desabilitado.
disabledMessagestringExplica por que o input está desabilitado. Com isDisabled, exibe um tooltip no hover/foco via teclado e mantém o input focável via aria-disabled (o campo torna-se read-only). Use isto em vez de envolver um NumberInput desabilitado em Tooltip.
placeholderstringTexto placeholder.
labelTooltipstringTexto de tooltip a exibir em um ícone de info no final do label.
startIconIconTypeÍcone a exibir no início do input. Veja `pharos docs icons` para nomes semânticos válidos.
labelIconIconTypeÍcone a exibir antes do texto do label. Veja `pharos docs icons` para nomes semânticos válidos.
status{type: 'error' | 'warning' | 'success', message?: string}Status de validação com mensagem opcional.
statusVariant'attached' | 'detached' | 'tooltip''attached'Como a mensagem de status é posicionada em relação ao input. attached sobrepõe diretamente abaixo do input (tratamento com borda); detached flutua abaixo como elemento separado com espaçamento; tooltip oculta a caixa de mensagem e a exibe em um tooltip no ícone de status.
minnumber | nullValor mínimo permitido.
maxnumber | nullValor máximo permitido.
stepnumber | null1Incremento de step do input.
unitsstring | nullTexto de units a exibir no final do input (ex.: "%" ou "GB").
isIntegerOnlybooleanPermite apenas valores inteiros (sem ponto flutuante).
hasClearbooleanfalseExibe um botão de limpar (×) quando o input tem um valor. Quando true, o callback onChange também aceita null para sinalizar que o usuário limpou o input.
htmlNamestringAtributo HTML name para submissões de formulário.
autoCompletestringAtributo HTML autocomplete.
widthSizeValueLargura do campo (número = pixels, string usada como está, ex.: "100%"). Dimensiona o campo inteiro (label, controle e status) para que permaneçam alinhados.
hasAutoFocusbooleanSe deve focar o input ao montar.
onFocus(e: FocusEvent<HTMLInputElement>) => voidCallback disparado quando o input recebe foco.
onBlur(e: FocusEvent<HTMLInputElement>) => voidCallback disparado quando o input perde foco.
onEnter() => voidCallback disparado quando o usuário pressiona a tecla Enter.
Pacote: @pharos-ds/core · Import: @pharos-ds/core/NumberInput
NumberInput · Pharos