Input

A text input built on Base UI. Works automatically with Base UI Field for labels, validation, and messages.

tsx
import { Input } from "@/registry/seam/ui/input"

export default function InputDemo() {
  return <Input type="email" placeholder="Email" className="max-w-xs" />
}
bunx --bun @seamui/cli@latest add input

Notes

  • Stays still by design — text entry is calm; the focus ring is the feedback, and depth animation is reserved for pressable and floating surfaces.
  • Pair with seamui's Field for labels, descriptions, and shaking error messages; invalid state flows in via data-[invalid] (see the Invalid example).
  • File inputs center their row through a line-height tied to the default h-10; if you resize one, override it with the same [&[type=file]]:leading-* variant.

Press feedback, reduced motion, and haptics follow the global policy — see Motion and Haptics.