jatui

TextInput

Text input with label, floating label, error shake, and helper text

Basic usage

This field is required

Compact, no visible label

Omit label and pass aria-label: any native input attribute passes through to the <input>.

Floating Label

The label sits inside the field at rest and lifts on focus or when filled. Pure CSS — no JS, no layout shift. Uses --motion-glide + --motion-fast.

This field is required

Error Shake

When error transitions from empty to set, the input shakes with a decaying oscillation. Retriggerable — click "Submit invalid" again to re-shake. Motion tokens: cubic-bezier(0.36, 0.07, 0.19, 0.97) over 450ms.

Props

PropTypeDefaultDescription
labelstring-Input label text
valuestring""Input value (bindable)
placeholderstring-Placeholder text
errorstring-Error message (triggers shake on set)
floatingLabelbooleanfalseLabel floats on focus/fill
typestring"text"HTML input type
disabledbooleanfalseDisable the input
requiredbooleanfalseMark as required
helpTextstring-Helper text below input