number-field

Number Field

Lets the shopper type a number or step it up and down with buttons at either end, within a minimum and maximum, such as a quantity. Fills its Field like other controls; never narrower than its two buttons and three digits.

States: Default, Focus, Disabled, Invalid

Parts

PartFileDoes
NumberFieldNumberField.vueGroups all parts of the number field.
NumberFieldContentNumberFieldContent.vueGroups the number input with its decrement and increment buttons.
NumberFieldDecrementNumberFieldDecrement.vueLowers the value of the number field by one step.
NumberFieldIncrementNumberFieldIncrement.vueRaises the value of the number field by one step.
NumberFieldInputNumberFieldInput.vueLets the user type a number into the number field.

Anatomy

<NumberField>
  <NumberFieldContent>
    <NumberFieldDecrement />
    <NumberFieldInput />
    <NumberFieldIncrement />
  </NumberFieldContent>
</NumberField>

Styling

PartRecipe
NumberFieldnumber-field
NumberFieldContentnumber-field-content
NumberFieldDecrementnumber-field-step
NumberFieldIncrementnumber-field-step
NumberFieldInputnumber-field-input

Install

Writes 6 files into components/ui/number-field/. For agents, npx @frontic/ui docs number-field prints this reference as markdown; the MCP server serves the same.

Installs with it
use-field-control
npm packages
@lucide/vue
@vueuse/core
reka-ui

API reference

NumberField NumberField.vue

Groups all parts of the number field. Renders a <div>.

PropTypeDefault
defaultValuenumber—
modelValuenumber | null—
minnumber—
maxnumber—
stepnumber1
stepSnappingbooleantrue
allowInvalidbooleanfalse
focusOnChangebooleantrue
formatOptionsIntl.NumberFormatOptions—
localestring—
disabledbooleanfalse
readonlybooleanfalse
disableWheelChangebooleanfalse
invertWheelChangebooleanfalse
idstring—
startingValuenumber—
asChildbooleanfalse
asAsTag | Component'div'
namestring—
requiredbooleanfalse
classClassValue—
EventPayload
update:modelValueval: number | undefined
SlotSlot props
default{ modelValue: number | undefined; textValue: string; readonly: boolean; }
Data attributeValues
data-disabled—
data-readonly—
Recipe number-fieldSets
base: number-field 2 properties

NumberFieldContent NumberFieldContent.vue

NumberFieldDecrement NumberFieldDecrement.vue

NumberFieldIncrement NumberFieldIncrement.vue

NumberFieldInput NumberFieldInput.vue

Example
State