Skip to content

Number Field

Campo numérico com controles de incremento/decremento, formatação PT-BR e hold-to-repeat.

Uso

vue
<script setup lang="ts">
import { NumberField } from '@halfbyte-labs/maka'
import { ref } from 'vue'

const quantidade = ref(1)
</script>

<template>
  <NumberField v-model="quantidade" label="Quantidade" :min="1" :max="100" />
</template>

Exemplos

Padrão (steppers right)

vue
<NumberField label="Padrão" :default-value="5" />
<NumberField label="Com limites" :default-value="3" :min="1" :max="10" />
<NumberField label="Passo 0,5" :default-value="2.5" :step="0.5" />
<NumberField label="Prefixo R$" prefix="R$" :default-value="49.90" :step="0.01" />
<NumberField label="Sufixo %" suffix="%" :default-value="75" :min="0" :max="100" />

Layouts de stepper

vue
<NumberField label="right"   steppers="right"   :default-value="5" />
<NumberField label="split"   steppers="split"   :default-value="3" />
<NumberField label="stacked" steppers="stacked" :default-value="10" />
<NumberField label="none"    steppers="none"    placeholder="Digite um número" />

Tamanhos

vue
<NumberField size="sm" :default-value="1" />
<NumberField size="md" :default-value="1" />
<NumberField size="lg" :default-value="1" />

Cores de stepper

vue
<NumberField stepper-color="black" :default-value="1" />
<NumberField stepper-color="blue"  :default-value="1" />
<NumberField stepper-color="lime"  :default-value="1" />
<NumberField :ghost="true" stepper-color="blue" :default-value="1" />

Estados

vue
<NumberField label="Desabilitado"  :disabled="true" :default-value="5" />
<NumberField label="Somente leitura" :read-only="true" :default-value="42" />
<NumberField label="Erro"   :error="true" error-message="Valor fora do intervalo" />
<NumberField label="Sucesso" :success="true" hint="Código válido" :default-value="7" />

Props

PropTipoPadrão
modelValuenumber | null
defaultValuenumber | nullnull
minnumber-Infinity
maxnumberInfinity
stepnumber1
precisionnumberinferido de step
size'sm' | 'md' | 'lg''md'
steppers'right' | 'split' | 'stacked' | 'none''right'
stepperColor'black' | 'blue' | 'lime''black'
ghostbooleanfalse
prefixstring
suffixstring
labelstring
hintstring
errorMessagestring
disabledbooleanfalse
readOnlybooleanfalse
errorbooleanfalse
successbooleanfalse
placeholderstring
inputMode'numeric' | 'decimal'inferido
namestring
idstring
formatValue(n: number) => stringPT-BR locale
parseValue(s: string) => number | nullPT-BR parser

Events

EventoPayloadDescrição
update:modelValuenumber | nullEmitido ao alterar o valor
change(value, { source })Inclui a origem: 'input', 'stepper', 'keyboard', 'wheel', 'blur'

Teclado

TeclaAção
/ ±step
PageUp/Down±step × 10
HomeVai para min
EndVai para max
EnterConfirma e desfoca
EscRestaura valor anterior e desfoca