Browse docs
Browse docs
Numeric input built on Material-UI. Validates as a number automatically, supports min/max/step constraints, and integrates with DashForm without any wiring.
<NumberField name="price" label="Price" inputProps={{ min: 0, step: 0.01 }} rules={{ required: 'Required' }} />A numeric field bound to the form by name.
<NumberField name="amount" label="Amount" fullWidth />Decimal input — slotProps.htmlInput forwards native attributes like step.
Enter price with cents
<NumberField
name="price"
label="Price"
placeholder="0.00"
slotProps={{ htmlInput: { step: 0.01, min: 0 } }}
helperText="Enter price with cents"
fullWidth
/>min / max constrain the native input.
Between 0 and 120
<NumberField
name="age"
label="Age"
helperText="Between 0 and 120"
slotProps={{ htmlInput: { min: 0, max: 120 } }}
fullWidth
/>Error state with helper text.
Value must be greater than zero
<NumberField
name="qty"
label="Quantity"
error
helperText="Value must be greater than zero"
fullWidth
/>| Prop | Type | Default | Description |
|---|---|---|---|
name | string | — | Field name. Required. |
label | string | — | Field label. |
helperText | string | — | Hint text below the field. |
placeholder | string | — | Placeholder text. |
inputProps | { min?, max?, step? } | — | Native input constraints. |
disabled | boolean | false | Disables the field. |
error | boolean | false | Error visual state. |
fullWidth | boolean | false | Fill container width. |
variant | 'outlined' | 'filled' | 'standard' | 'outlined' | MUI variant. |
access | AccessRequirement | — | RBAC access requirement. Controls visibility, disabled, and readonly state based on role permissions. |
rules | RegisterOptions | — | React Hook Form validation rules. |
visibleWhen | VisibleWhenCondition | — | Conditional visibility expression. |
number | null in the form state.inputProps.min/max enforce browser-level constraints; use rules.min/max for RHF validation.NumberField is purpose-built for numeric input scenarios. It provides built-in validation, boundary enforcement, and proper null handling while maintaining consistency with Material Design patterns.
Core Feature
NumberField inherits MUI TextField variants (outlined, filled, standard) providing a familiar and consistent visual system across all numeric inputs.
<NumberField
name="quantity"
label="Quantity"
variant="outlined"
/>Built-in
Built-in handling of min/max constraints, step increments, and proper numeric parsing. Stores number | null internally, never allows NaN.
<NumberField
name="age"
label="Age"
inputProps={{ min: 0, max: 120 }}
/>NumberField can participate in engine-driven visibility rules through visibleWhen. Use it when numeric input depends on other form state.
<NumberField
name="quantity"
label="Quantity"
visibleWhen={(engine) =>
engine.getNode('orderType')?.value === 'bulk'
}
/>