Input

A text input with built-in label, helper text, and error state handling.

Use Input when you want a ready-made field surface with labeling, helper copy, and error messaging built in.

Used in your dashboard and generated URLs.
Use this for immutable values or generated fields.
A project name is required before publishing.
import { defineComponent, ref } from 'vue';
import { Input } from '@tile-ui/vue';
 
export default defineComponent({
	name: 'InputDemo',
	setup() {

Registry install

pnpm dlx shadcn@latest add @tile-ui/input

Package usage

import { Input } from '@tile-ui/vue';
<Input label="Display name" helperText="Shown on your public profile." />

Use modelValue with onUpdate:modelValue for two-way binding. The label and helperText props render the field anatomy without an extra form wrapper. When error is set, it replaces the helper text and wires aria-invalid and aria-describedby automatically:

<Input label="Username" error="Username already exists" modelValue="tile" />

Highlights

  • Works with modelValue
  • Label and helper text built in
  • Error-state messaging with ARIA wiring
  • Matches Textarea anatomy for form consistency

Registry dependencies

Item Purpose
input Component source and module styles
core Framework-agnostic logic helpers
utils Shared utility helpers
styles Shared SCSS tokens and globals

API reference

Input

Prop Type Default Notes
label string Optional field label rendered above the input.
helperText string Displayed below the field when there is no error.
error string Displays invalid state and error messaging.
required boolean false Adds required styling to the label.
modelValue string The bound input value.
placeholder string Placeholder text for the input.
type string text The native input type.
disabled boolean false Disables the input.