Sora UI

Input · Radix UI

A shadcn/ui-compatible native input with a smooth Motion-powered caret.

Made by Axyl
Loading...

Default animated Radix UI input with a smooth spring caret.

Installation

npx shadcn@latest add @soralabs/radix-input

File Structure

input.tsx

Usage

Controlled Input

Input Types

Use the native type prop for common field variants:

RTL

Loading...

Radix 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.

PropTypeDefault
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

On this page

Help keep SoraLabs moving.

Every contribution helps us build and maintain open-source tools for the community.

Sponsor on GitHub