idrequired Ties the label to the field. Required, and must be unique on the page. | string | — |
label Floats above the value once the field is focused or filled. | string | — |
placeholder Shown while the field is empty. Not a substitute for a label. | string | — |
size Field height and type scale. | xl•l•m•s•xs | m |
error Put the field in its error state. | boolean | false |
errorMessage Message shown under the field when error is set. | ReactNode | — |
description Helper text under the field, for the rule the label cannot carry. | ReactNode | — |
corners Round only some corners — for stacking fields into one block. | none•top•right•bottom•left•top-left•top-right•bottom-right•bottom-left | — |
| string | — |
| React.CSSProperties | — |
prefix Rendered before the value: an icon, a currency symbol, a select. | ReactNode | — |
suffix Rendered after the value: a unit, a clear button, a Kbd hint. | ReactNode | — |
variant "ghost" drops the border and background, for a field inside a surface that already has them. | default•ghost | default |
| boolean | false |
characterCount Show how much has been typed, against maxLength. | boolean | — |
cursor Set "interactive" for a read-only field that opens something on click. | undefined•interactive | — |
validate Run on a debounce; return a message to show, or null to clear. | (value: ReactNode) => ReactNode | null | — |
loading Show a spinner in the suffix while something resolves. | boolean | false |
| …and every React.InputHTMLAttributes prop | inherited | — |