Skip to content
FormsInteractive playground

Input

Text input with sizes, validation and masks.

Preparing the playground…
Text and Markdown example
Input · Example
1<div style={{ display: "grid", gap: 16, width: "100%", maxWidth: 360 }}> 2 <Label htmlFor="demo-email">Email</Label><Input id="demo-email" type="email" placeholder="[email protected]" /> 3</div>
Read documentation in Markdown

How to use it

Associate a label using htmlFor and id. Use invalid for the visual error state and aria-describedby to explain how to fix it.

Import

React / Next.js
1import { Input } from "@kivora/nextjs";

Interactive examples run inside a component with "use client". The playground's Copy button includes the imports needed for the current example.

API reference 0.2.0

Types from the installed published version, including component properties and common HTML attributes. “Optional” does not imply a default value; omitting a property lets the component decide.

PropertyTypeDescription
altstringAlternative text for the image.
aria-labelstringAccessible name of the control.
autoCompleteHTMLInputAutoCompleteAttributeTell the browser which autocomplete type to use.
checkedbooleanControlled selection state.
childrenReactNodeContent or child elements of the component.
classNamestringAdditional CSS classes to customize the element.
defaultCheckedbooleanInitial selection of the control.
defaultValuestring | number | readonly string[]Initial value when the component manages its own state.
definitionsRecord<string, RegExp>Configures definitions. The type describes the supported values and structure.
disabledbooleanDisable interaction with the control.
idstringElement identifier; associates labels and descriptions.
invalidbooleanEnable the visual error state.
lazybooleanConfigures lazy. The type describes the supported values and structure.
maskstring | RegExpMask or regular expression applied to input.
maxstring | numberMaximum allowed value.
maxLengthnumberMaximum number of characters.
minstring | numberMinimum allowed value.
namestringName used to identify the control in forms.
onAccept((value: string, maskRef: unknown, event?: InputEvent) => void)Receives changes accepted by the mask.
onChangeChangeEventHandler<HTMLInputElement, HTMLInputElement>Change event. Check the type: some controls return an object, others a DOM event.
onClickMouseEventHandler<HTMLInputElement>Action performed when the element is activated.
onComplete((value: string, maskRef: unknown, event?: InputEvent) => void)Callback when input or an operation is complete.
onSubmitSubmitEventHandler<HTMLInputElement>Form submission event.
overwritebooleanConfigures overwrite. The type describes the supported values and structure.
placeholderstringShort hint displayed when there is no value.
placeholderCharstringConfigures placeholderChar. The type describes the supported values and structure.
requiredbooleanIndicates that a value is required.
roleAriaRoleSemantic role of the element. Keep the default role unless a change is justified.
size"default" | "sm" | "lg" | nullVisual size of the component.
srcstringResource path or URL.
stepstring | numberIncrement between values.
styleCSSPropertiesReact inline styles.
tabIndexnumberKeyboard focus order and availability.
titlestringTitle or supplementary information.
typeHTMLInputTypeAttributeOperation type or mode; values depend on the component.
unmaskboolean | "typed"Control the format of the value returned by the mask.
valuestring | number | readonly string[]Controlled value. Update it from the change callback.

TypeScript definition

Review each component's properties and published declaration. Native and accessibility attributes are inherited from the element specified by its type.

Input37 properties
Input · TypeScript
1Input: React.ForwardRefExoticComponent<InputProps & React.RefAttributes<HTMLInputElement>>
API generated from @kivora/nextjs 0.2.0View package