A shadcn/ui-compatible input with a smooth Motion-powered caret.
Made by AxylA shadcn/ui-style input with a smooth spring caret.
Installation
File Structure
Usage
Controlled Input
Input Types
Use the native type prop for common field variants:
RTL
Base UI Input animates a mirror caret through right-to-left text.
Set dir="rtl" on the input or an ancestor. The animated mirror caret follows the browser's bidirectional text layout, so clicks and selections remain aligned.
Styling and Motion
The component keeps native input behavior while rendering a Motion-powered caret for text, search, url, tel, and password. email, number, date, time, file, and other input types keep the browser's native caret. Pass className to override the default shadcn/ui styles. Animated caret movement respects text selection, horizontal scrolling, and prefers-reduced-motion.
Props
Input supports all native <input> props, including name, value, defaultValue, placeholder, disabled, validation attributes, event handlers, and ref.
| Prop | Type | Default |
|---|---|---|
type? | string | "text" |
className? | string | - |
Accessibility
Associate the input with a visible label using htmlFor and id. Use aria-invalid when the current value fails validation.
Built by Axyl. A motion-first component registry for React.
Last updated: 9/21/2026