Scrub label
Drag the W to scrub; the arrow keys still step.
<Field>
<Field.Label>Width</Field.Label>
<NumberField defaultValue={240} min={0} scrub="W" unit="px" size="sm" />
</Field>Collects numeric values with arrow-key stepping, label scrubbing and optional units.
<Field>
<Field.Label>Width</Field.Label>
<NumberField defaultValue={320} min={0} max={1440} unit="px" />
</Field>pnpm add @usefragments/uiImport styles once from @usefragments/ui/styles. See the installation guide for framework and theme setup.
Drag the W to scrub; the arrow keys still step.
<Field>
<Field.Label>Width</Field.Label>
<NumberField defaultValue={240} min={0} scrub="W" unit="px" size="sm" />
</Field>The danger edge with the reason under the field.
<Field invalid>
<Field.Label>Seats</Field.Label>
<NumberField defaultValue={0} min={0} invalid />
<Field.Error match>Add at least one seat.</Field.Error>
</Field>Prop | Type | Default | Description |
|---|---|---|---|
defaultValue | number | undefined | Not set | Initial value for uncontrolled use |
disabled | boolean | undefined | Not set | Dims the field and blocks input |
form | string | undefined | Not set | — |
format | Intl.NumberFormatOptions | undefined | Not set | Intl.NumberFormat options for the shown value |
invalid | boolean | undefined | false | The danger edge and aria-invalid; say why in a Field.Error |
largeStep | number | undefined | 10 | The Shift + arrow step |
max | number | undefined | Not set | Highest value; steps and scrubs clamp to it |
min | number | undefined | Not set | Lowest value; steps and scrubs clamp to it |
name | string | undefined | Not set | Form field name |
onValueChange | ((value: number | null) => void) | undefined | Not set | Called with the new value as it changes; null when cleared |
onValueCommitted | ((value: number | null) => void) | undefined | Not set | Called once the value settles: on blur, Enter, a step or the end of a scrub |
readOnly | boolean | undefined | Not set | Shows the value without letting it change |
required | boolean | undefined | Not set | Marks the field required for form validation |
scrub | React.ReactNode | Not set | A short label at the start that scrubs the value when dragged |
size | NumberFieldSize | undefinedxssmmdlg | "md" | Field height on the shared control track: 24, 28, 32 or 40 |
step | number | undefined | 1 | The arrow-key step |
unit | string | undefined | Not set | A unit shown after the figures and read with the value |
value | number | null | undefined | Not set | Controlled value; null is empty |