adn-ui
Components

Number Field

A high-quality, styled React number field component built with @base-ui/react with stepping controls and scrub interactions.

The NumberField component provides accessible controls for adjusting numeric values via input typing, stepper buttons, arrow keys, or dragging the scrub area label.

Usage

import { NumberField } from "@/components/ui/number-field";

export function ExampleNumberField() {
  return (
    <NumberField.Root defaultValue={10} min={0} max={100}>
      <NumberField.ScrubArea>Quantity</NumberField.ScrubArea>
      <NumberField.Group>
        <NumberField.Decrement />
        <NumberField.Input />
        <NumberField.Increment />
      </NumberField.Group>
    </NumberField.Root>
  );
}

Preview

Anatomy

import { NumberField } from "@base-ui/react/number-field";

<NumberField.Root>
  <NumberField.ScrubArea>
    <NumberField.ScrubAreaCursor />
  </NumberField.ScrubArea>
  <NumberField.Group>
    <NumberField.Decrement />
    <NumberField.Input />
    <NumberField.Increment />
  </NumberField.Group>
</NumberField.Root>;

API Reference

NumberField.Root Props

PropTypeDefaultDescription
valuenumber | nullundefinedControlled numeric value.
defaultValuenumberundefinedInitial uncontrolled numeric value.
minnumberundefinedMinimum allowed value.
maxnumberundefinedMaximum allowed value.
stepnumber | 'any'1Increment and decrement step amount.
smallStepnumber0.1Step value when holding Alt key.
largeStepnumber10Step value when holding Shift key.
onValueChange(value: number | null) => voidundefinedCallback fired when value changes.

On this page