FormField
@stellaria/nebula-webFormFieldPropsPreview
Props
11| Prop | Type | Default |
|---|---|---|
children | ReactNode | ((control: FormFieldControlProps) => ReactNode) | — |
className Composes with the classes `Box` computes instead of replacing them. | string | — |
component | (ElementType & C) | — |
description | ReactNode | — |
error | string | boolean | — |
errorDisplay | ErrorDisplay | "tooltip" |
id | string | — |
label | ReactNode | — |
required | boolean | false |
reveal Animates the element in when it first scrolls into view. `true` takes the catalogue entrance; an object tunes it — `preset`, `distance`, `spring`, `duration`, `once`, `amount`, `rootMargin` and `index` for a stagger. It lives here rather than on each surface so that `Card`, `Paper`, `GradientBorder`, `Section` and anything else built on `Box` inherit one implementation. Without it `Box` stays a server component; with it the root swaps for a client shell and the children keep rendering on the server. The entrance is a CSS transition, not a JavaScript animation: it is the only motion in the catalogue that fires WHILE the user scrolls, and the compositor should own it. | boolean | UseRevealOptions | — |
status | FieldStatus | — |
Slot props
6Each one spreads over an inner element, so you can restyle a region without forking the component.
| Prop | Type | Default |
|---|---|---|
bodyProps Wrapper for the control. | BoxSlotProps | — |
descriptionProps Help text below the label. Only rendered with `description`. | TextSlotProps | — |
errorProps Configures the `FieldError`. With `errorDisplay="tooltip"` it spreads whole; with `"text"` there is no `FieldError` to configure — it is a `Text` with `role="alert"` — and only `className` is honoured. | Omit<FieldErrorProps, "children"> | — |
headerProps The label and description row. Not rendered when the field has neither. | BoxSlotProps | — |
labelProps The field label. It lands on the `<label>`, which already carries the control `htmlFor`. | TextSlotProps | — |
requiredProps The required asterisk, which lives inside the label. Only rendered with `required`. | BoxSlotProps | — |
Also accepts
On top of its own props, this component forwards these groups.