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.
Dropdown Menu
An accessible dropdown menu component built on Base UI with smooth Motion spring scale and submenu slide animations.
Switch
An accessible toggle switch component built on Base UI with spring layout physics and full customization.
Built by Axyl. A motion-first component registry for React.
Last updated: 9/21/2026